zoukankan      html  css  js  c++  java
  • dbclient python ---influxdb -install -relay--http write--read.[create db]

     influxdb是一个时间序列数据库。centos下载和安装命令

        wget https://dl.influxdata.com/influxdb/releases/influxdb-1.2.4.x86_64.rpm

      sudo yum localinstall influxdb-1.2.4.x86_64.rpm

      service influxdb start // 启动

      netstat -an | grep 8086 

      netstta -an | grep 8088

      如果这两个端口都启动则表示influxdb启动成功。influxdb的管理端口8083在1.2.4默认是关闭的,需要手动配置下才能访问。

        配置文件默认为/etc/influxdb/influxdb.conf。可以配置端口号,控制管理台。数据存储目录。

        #是否上报。默认允许上报,可能类似于windows的采集用户数据

        reporting-disabled = true

        #集群数据通信端口。全局配置
        bind-address = ":8088"

         #meta

        dir = "/var/lib/influxdb/meta"

        #时间序列数据

         dir = "/var/lib/influxdb/data"

         

          写数据和查数据官网有例子比较简单。 https://docs.influxdata.com/influxdb/v1.2/introduction/installation/。

          写数据需要注意的地方是时间序列单位是UTC纳秒,刚开始在这绕了很大一圈,写数据可以成功但是查询不到,因为时间不对。java并没有直接获UTC纳秒的方法,只有   System.currentTimeMillis()获取毫秒的方法。其实根据毫秒和纳秒的换算单位,直接在   System.currentTimeMillis()加六个0就可以。考虑到实际会有并发写入的情况,一毫秒内可能会有相同的数据写入,可以把6位0改成加6位的随机数。进一步减少并发带来的数据冲突。

    curl -POST http://localhost:8086/query --data-urlencode "q=CREATE DATABASE mydb"
    

    I get an Method Not Allowed in return.

    Nevertheless, doing the same with get works perfectly:

    curl http://localhost:8086/query?q=CREATE+DATABASE+"db"

    
    
    

    身份验证与授权(权限管理)

    Authentication and Authorization

    注意:身份授权与验证不能用于阻止恶意用户。如果有额外的做合理性和安全性的需求,InfluxDB可以运行在第三方服务内。

    身份验证


    InfluxDB的HTTP API和CLI(command line interface),通过简单的基于证书的内建权限控制,使用API链接数据库。启动身份验证后,http请求只有加入证书才能被接受。 
    注意:身份验证适用于http请求的范围。插件不适用(Graphite, collectd, etc.)

    设置身份验证

    1. 创建一个admin用户
    2. 默认情况下,在配置文件中,身份验证是关闭的。可以通过设置 [http] 中的 auth-enabled=true 来开启
    3. 重启应用

    现在,InfluxDB会检查身份证书,并且只处理验证成功的request请求。 
    注意:如果打开了身份验证功能,而且没有用户,InfluxDB会强制创建admin用户,并且只接受创建admin用户的query

    身份验证请求


    HTTP API

    基本上控制台是可以这样的。 
    Query:

    curl -v -G "http://login1.org:8086/query?db=test&u=admin&p=admin" --data-urlencode "q=select * from table"
    • 1

    Write:

    curl -v -XPOST "http://login1.org:8086/write?db=test&u=admin&p=admin" --data-binary "table dd=44"
    • 1

    用户名密码明文嵌入url即可。

    CLI

    有两种操作方式:

    • 启动控制台后,再设置用户 auth <username> <password>
    $ influx
    Connected to http://localhost:8086 version 0.9.4.1
    InfluxDB shell 0.9.4.1
    > auth admin admin
    >
    • 1
    • 2
    • 3
    • 4
    • 5
    • 以用户名密码启动:
    influx -username todd -password influxdb4ever
    • 1

    身份授权


    默认情况下,身份验证是关闭的,并且所有的用户有所有的权限,相关认证都会被忽略。只有打开情况下才会验证授权信息。

    用户类型及其权限


    管理员

    所有管理员有所有数据库的读写权限,并且可以执行以下所有的管理类查询语句: 
    数据库管理:

    ◦ CREATE DATABASE, 和 DROP DATABASE 
    ◦ DROP SERIES 和 DROP MEASUREMENT 
    ◦ CREATE RETENTION POLICYALTER RETENTION POLICY, 和 DROP RETENTION POLICY 
    ◦ CREATE CONTINUOUS QUERY 和 DROP CONTINUOUS QUERY

    用户管理: 
    ◦ Admin user management: 
    CREATE USERGRANT ALL PRIVILEGESREVOKE ALL PRIVILEGES, 和 SHOW USERS 
    ◦ Non-admin user management: 
    CREATE USERGRANT [READ,WRITE,ALL], REVOKE [READ,WRITE,ALL], 和 SHOW GRANTS 
    ◦ General user management: 
    SET PASSWORD 和 DROP USER

    非管理员用户:

    非管理员用户可以赋一种权限: 
    ◦ READ 
    ◦ WRITE 
    ◦ ALL (READ 和 WRITE ) 
    这三种情况可以赋给每个用户,每个数据库。

    用户管理命令


    管理员用户管理:

    • 创建一个新的管理员用户
    CREATE USER <username> WITH PASSWORD '<password>' WITH ALL PRIVILEGES
    • 1
    • 为一个已有用户授权管理员权限
    GRANT ALL PRIVILEGES TO <username>
    • 1
    • 取消用户权限
    REVOKE ALL PRIVILEGES FROM <username>
    • 1
    • 展示用户及其权限
    SHOW USERS
    • 1

    非管理员用户管理:

    • 创建一个新的普通用户
    CREATE USER <username> WITH PASSWORD '<password>'
    • 1
    • 为一个已有用户授权
    GRANT [READ,WRITE,ALL] ON <database_name> TO <username>
    • 1
    • 取消权限
    REVOKE [READ,WRITE,ALL] ON <database_name> FROM <username>
    • 1
    • 展示用户在不同数据库上的权限
    SHOW GRANTS FOR <user_name>
    • 1

    普通用户账号功能管理

    • 重设密码
    SET PASSWORD FOR <username> = '<password>'
    • 1
    • 删除用户
    DROP USER <username>
    • 1

    用户验证与授权的http错误


    当验证失败时http会返回:

    HTTP 401 Unauthorized
  • 相关阅读:
    检查两个单链表是否有交点
    检查链表中是否有环
    [转]根据二叉树的先序、中序遍历结果重建二叉树
    背包问题
    硬币问题
    部分和问题
    斐波那契计算
    最大公因数和最小共倍数
    计算一年中的第几天
    利用递归反向输出字符串
  • 原文地址:https://www.cnblogs.com/SZLLQ2000/p/9266616.html
Copyright © 2011-2022 走看看