dbclient python ---influxdb -install -relay--http write--read.[create db]
1ms=1000 microseconds
1microsecond=1000 nanoseconds
+01:00
from influxdb import InfluxDBClient
json_body = [
{
"measurement": "bpu_load_short",
"tags": {
"host": "server01",
"region": "us-west"
},
"time": "2018-07-10T22:00:00.24624860",
"fields": {
"value": 0.64
}
}
]
client = InfluxDBClient('129.0.1.227', 8886, 'root', 'root', 'llexample')
client.create_database('llexample')
client.write_points(json_body)
result = client.query('select value from gpu_load_short;')
print("Result: {0}".format(result))
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.)
设置身份验证
- 创建一个admin用户
- 默认情况下,在配置文件中,身份验证是关闭的。可以通过设置
[http]中的auth-enabled=true来开启 - 重启应用
现在,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 POLICYDROP RETENTION POLICY
◦ CREATE CONTINUOUS 和
QUERYDROP CONTINUOUS QUERY
用户管理:
◦ Admin user management:
CREATE USER, GRANT ALL PRIVILEGES, REVOKE ALL PRIVILEGES, 和 SHOW USERS
◦ Non-admin user management:
CREATE USER, GRANT [READ,WRITE,ALL], REVOKE], 和
[READ,WRITE,ALLSHOW 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
dbclient python ---influxdb -install -relay--http write--read.[create db]的更多相关文章
- python pip install matplotlib安装模块
python pip install matplotlib安装模块,可附带安装相关的模块 程序运行提示: from . import _imaging as coreImportError: DLL ...
- 运行easy_install安装python相关程序时提示failed to create process
运行easy_install安装python相关程序时提示failed to create process,因为安装了两个python,卸载了的那个目录没删除,删除了另外的python目录后这个问题就 ...
- macosx 10.11 python pip install 出现错误OSError: [Errno 1] Operation not permitted:
Exception: Traceback (most recent call last): File , in main status = self.run(options, args) File , ...
- python lxml install
之前记得安装libxslt和libxml yum install libxml* -yyum install libxslt* -y wget http://lxml.de/files/lxml-3. ...
- python pip install mysql-connector-python
sudo pip install mysql-connector-python 报错信息:Collecting mysql-connector-python Could not find a vers ...
- python some install tips
/* wooyun的小伙伴出了神器. 但是都是打包配置的.我本机又搭建了wamp,不能混合了,那就自己动手丰衣足食咯. */ python 2.7 已经安装. pip https://pip.pypa ...
- Python package install血泪史
[前言][絮絮叨叨篇]:说实话,不是第一次安装Python库了,但是貌似没有特别顺利的时候,可能还是遇到的困难不够多咯.配置环境真是个糟心的事儿,不过作为菜鸟,还是得磨练磨练,毕竟某人云:" ...
- python influxdb
Git:https://github.com/influxdata/influxdb-python 帮助文档:http://influxdb-python.readthedocs.io/en/late ...
- python module install
1.issue: How can I bypass kivy module error: ImportError: DLL load failed: The specified module coul ...
随机推荐
- 《Essential C++》读书笔记 之 泛型编程风格
<Essential C++>读书笔记 之 泛型编程风格 2014-07-07 3.1 指针的算术运算(The Arithmetic of Pointer) 新需求1 新需求2 新需求3 ...
- ThinkPad T420 Fn+F5
关于F5,可做如下设置: 1)官网win7系统下载SIhotkey[8jvu39ww].exe:最新版本的我没测试,应该也可以用. 2)双击安装,并按程序安装,直到要你选择安装on s ...
- Java知多少(97)绘图模式概述
绘图模式是指后绘制的图形与早先绘制的图形有重叠时,如何确定重叠部分的颜色.例如,后绘制的覆盖早先绘制的:或者后绘制与早先绘制的两种颜色按某种规则混合.主要有正常模式和异或模式两种:正常模式是后绘制的图 ...
- JavaScript高级用法一之事件响应与网页交互
综述 本篇的主要内容来自慕课网,事件响应与网页交互,主要内容如下 1 什么是事件 2 鼠标单击事件( onclick ) 3 鼠标经过事件(onmouseover) 4 鼠标移开事件(onmouseo ...
- @Transactional(rollbackFor = Exception.class)
@Transactional(rollbackFor = Exception.class)这个注解只有在出异常时才会回滚,需要回滚时没有异常也要人为制造异常(自定义异常)所以,如果使用了异常捕获,很有 ...
- jquery 动画总结(主要指效果函数)
动画无非两类:帧动画frame和变形动画tween,以及3d动画.不论web还是安卓苹果app,动画原理都是这些. web app 动画实现的途径,无非这几种:1 gif动画---这就是帧动画,把若干 ...
- 嵌入式开发之hi3519---lvds ,mipi,camera sensor,/DVI/HDMI Interface
http://blog.csdn.net/mao0514/article/details/54015466
- python中,如何将字符串转换为数字(将数字转换为整型),字符串的10转换为整型的10,10.5转换为10
说明: 在实际的应用过程中,有的时候可能会遇到字符串的10,需要将字符串的10转换为数字的10 在此记录下,通过int函数转换的过程. 操作过程: 1.将字符串转换为整型的10 >>> ...
- Qt编写echart仪表盘JS交互程序支持webkit和webengine(开源)
Echart是百度研发团队开发的一款报表视图JS插件,功能十分强大,是本人用过的国产作品中最牛逼的,记得四五年前就在qt中使用过,当时用的浏览器控件是webkit,由于5.6以后的版本不再支持webk ...
- SQL Server 2012 R2升级到SQL Server 2016无法正常启动数据库服务解决方案
原定周末把公司的TFS升级到2018,由于TFS 2018需要SQL Server至少是2016以上版本,所以还需要将原来的SQL Server 2012 R2一并升级.今天早上负责的同事告诉我升级失 ...