一、influxdb介绍
influxdb是目前比较流行的时间序列数据库。时间序列也就是里面的每条数据都会有一个时间戳的字段,方便基于时间的统计,查询过滤等。内置很多常见的度量函数,还能类似Nosql一样的无结构话,可以直接插入数据,新建表,随时通过插入数据改变表结构等,非常方便好用,支持http api,可以通过http协议进行连接,操作。而且其语法也非常类似与常用的sql语句。
这里,本人是将其与grafana一同使用,作为grafana的数据源,进行监控图标的绘制。
二、安装
#下载包
wget https://dl.influxdata.com/influxdb/releases/influxdb-1.2.2.x86_64.rpm
#用yum进行本地安装
yum localinstall influxdb-1.2.2.x86_64.rpm
#修改配置文件
vim /etc/influxdb/influxdb.conf
reporting-disabled = true ( 这个要设置真,关闭定时上传数据到influxdata.com)
#bind-address = ":8086"(这个需要自己手动添加,指定http的连接操作端口,默认为8086)
[admin]
# Determines whether the admin service is enabled.
enabled = true (web管理界面,1.1版本以上默认关闭。需要的话,可以手动打开)
# The default bind address used by the admin service.
bind-address = ":8083" (web服务界面的端口)
三、启动并使用influxdb
(1)命令操作
#启动influxdb
systemctl start influxdb
#设为开机启动
systemctl enable influxdb
#进入influxdb
influx
启动成功截图如下:
注意:启动时报错:
Failed to start InfluxDB is an open-source, distributed, time series database
解决方案:
1)查看8083/8086断口是否被占用
2)发现有可能是权限没有给够,在journalctl -u influxdb
执行后发现有提示权限问题,应该就是了。随后给/etc/influxdb目录权限即可。记得要给influxdb本身和子文件子目录的所有权限。
chmod 777 -R /var/lib/influxdb
(2)influxdb基本操作
>create database test_db (创建数据库test_db )
>show databases (列出所有数据库)
>drop database test_db (删除数据库)
>use test_db ( 转入test_db数据库下 )
>create measurement test_table ( 创建test_table表,measurements==table(关系型数据库中的) )
>show measurements (列出所有表)
>drop measyrement test_table (删除表test_able)
>insert test_table,host=web1 cpu=22,memory=33 (插入数据,test_table为表名,host为除了tag是,也就是方便用于度量的分类标签,可以是字符串。cpu和memory是数值,不能是字符串,只能是数值,中间用空格隔开)格式如下:
insert table_name,tags=* values=values,values=values (分别为三段
>curl -i -X POST "http://127.0.0.1:8086/write?db=testDb【&u=username&p=password】" --data-binary "test_table,host=127.0.0.1 cpu=22,memory=33"
!!利用http接口远程插入数据,最常用的功能,用密码时,通过u和P的参数进行认证,没有则去掉。也就是利用post提交,默认的连接操作的端口为8086.
> select * from test_table (查询语句,类似sql语句)
>select * from test_table where cpu = 22 ( where用法,类似sql)
>select * from test_table where host = 'web1' (同上)
>select * from test_table order by time [desc] (按时间排序,默认为顺序,加上desc为倒序)
>show users (查看用户)
>create user "username" with password 'password' (创建普通用户)
>create user "username" with password 'password' with all privileges (创建管理员用户)
>drop user "username" (删除用户)
>auth (用户认证,用于设置了密码后,登陆influxdb的认证)
username: username
password: password