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
  • 相关阅读:
    高斯消元学习
    HDU 4596 Yet another end of the world(解一阶不定方程)
    Codeforces Round #318 div2
    HDU 4463 Outlets(一条边固定的最小生成树)
    HDU 4458 Shoot the Airplane(计算几何 判断点是否在n边形内)
    HDU 4112 Break the Chocolate(简单的数学推导)
    HDU 4111 Alice and Bob (博弈)
    POJ 2481 Cows(线段树单点更新)
    HDU 4288 Coder(STL水过)
    zoj 2563 Long Dominoes
  • 原文地址:https://www.cnblogs.com/SZLLQ2000/p/9266616.html
Copyright © 2011-2022 走看看