centos 7 下离线安装 influxdb数据库
一:influxDB下载或安装
1、安装
(1)从官网下载rpm格式的安装包 或者 wget https://dl.influxdata.com/influxdb/releases/influxdb-1.5.3.x86_64.rpm 在线下载安装包
(2)在rpm文件所在的文件夹下执行 sudo yum localinstall influxdb-1.5.3.x86_64.rpm 用以安装influxDB数据库,如下所示安装完成。
服务进程
systemctl start influxdb //开始influxdb服务
systemctl stop influxdb //关闭influxdb服务
systemctl status influxdb //查看influxdb服务
systemctl enable influxdb //开机自启动influxdb
ps aux | grep influx //查看influxdb进程
服务进程启动后,便可以在本地访问 http://localhost:8086 或者 http://服务器IP地址:8086 访问到influxDB系统(一般默认为8086端口),仍无法访问时,可考虑防火墙原因
firewall-cmd --add-port=8086/tcp --permanent //开放端口
firewall-cmd --reload //重载防火墙配置
二:配置用户和数据库(以下均为influx shell命令)
1、创建用户
#创建用户
CREATE USER influx WITH PASSWORD 'influx' WITH ALL PRIVILEGES
#查看用户
SHOW USERS
2、创建数据库
#创建数据库
CREATE DATABASE test
#查看数据库
SHOW DATABASES
三:语法
1、语法说明/简介
InfluxDB里存储的数据被称为时间序列数据,InfluxDB存储方式跟传统关系型数据库不同的是:传统关系型数据库通过数据库+表+字段组织数据,InfluxDB通过指标、标签、字段组织数据,时间戳是默认的索引列,标签跟字段其实就相当于关系型数据库中的字段,只不过标签会被索引,而字段不会。
另外,InfluxDB中的表(measurement)、字段(tag、field)不用事先创建,并且不存储null值。
名次/概念 | ken.io 的解释 |
database | 数据库 |
measurement | 度量,相当于table;例如:cpu |
tags | 标签,相当于field,会被索引;例如:host |
field | 字段,不会被索引,例如:cpu_load |
将数据点写入InfluxDB,只需要满足如下的行格式:
<measurement>[,<tag-key>=<tag-value>...] <field-key>=<field-value>[,<field2-key>=<field2-value>...] [unix-nano-timestamp]
2、语法示例
通过influx命令进入cli命令行练习语法
- 插入语法
-
#Using 数据库 USE test #插入数据 INSERT cpu,host=192.168.1.1 load=0.1,usage=0.2
- 查询语法
-
#查询所有数据 SELECT * FROM "cpu" SELECT "host","load","usage" FROM "cpu" #根据条件查询 SELECT "host","load","usage" FROM "cpu" WHERE "host" = '192.168.1.1' SELECT "host","load","usage" FROM "cpu" WHERE "usage" > 0.1
- 其他语法
-
# 创建数据库 CREATE DATABASE "db_name" # 显示所有数据库 SHOW DATABASES # 删除数据库 DROP DATABASE "db_name" # 使用数据库 USE mydb # 显示该数据库中的表 SHOW MEASUREMENTS # 删除表 DROP MEASUREMENT "t_name"
四、语法#
1、语法说明/简介#
InfluxDB里存储的数据被称为时间序列数据,InfluxDB存储方式跟传统关系型数据库不同的是:传统关系型数据库通过数据库+表+字段组织数据,InfluxDB通过指标、标签、字段组织数据,时间戳是默认的索引列,标签跟字段其实就相当于关系型数据库中的字段,只不过标签会被索引,而字段不会。
另外,InfluxDB中的表(measurement)、字段(tag、field)不用事先创建,并且不存储null值。
名次/概念 | ken.io 的解释 |
---|---|
database | 数据库 |
measurement | 度量,相当于table;例如:cpu |
tags | 标签,相当于field,会被索引;例如:host |
field | 字段,不会被索引,例如:cpu_load |
将数据点写入InfluxDB,只需要满足如下的行格式:
<measurement>[,<tag-key>=<tag-value>...] <field-key>=<field-value>[,<field2-key>=<field2-value>...] [unix-nano-timestamp]
2、语法示例#
通过influx命令进入cli命令行练习语法
- 插入语法
#Using 数据库
USE test
#插入数据
INSERT cpu,host=192.168.1.1 load=0.1,usage=0.2
Insert的时候如果没有带时间戳,InfluxDB会自动添加本地的当前时间作为它的时间戳。
- 查询语法
#查询所有数据
SELECT * FROM "cpu"
SELECT "host","load","usage" FROM "cpu"
#根据条件查询
SELECT "host","load","usage" FROM "cpu" WHERE "host" = '192.168.1.1'
SELECT "host","load","usage" FROM "cpu" WHERE "usage" > 0.1
- 其他语法
# 创建数据库
CREATE DATABASE "db_name"
# 显示所有数据库
SHOW DATABASES
# 删除数据库
DROP DATABASE "db_name"
# 使用数据库
USE mydb
# 显示该数据库中的表
SHOW MEASUREMENTS
# 删除表
DROP MEASUREMENT "t_name"
五、HTTP API示例#
1、创建数据库API#
curl -i -XPOST http://localhost:8086/query --data-urlencode "q=CREATE DATABASE test"
2、写入数据API#
#写入单条
curl -i -XPOST http://localhost:8086/write?db=test --data-binary "cpu,host=192.168.1.3 load=0.1,usage=0.33"
curl -i -XPOST http://localhost:8086/write?db=test --data-binary "cpu,host=192.168.1.3 load=0.1,usage=0.33 6666666666666666666"
#写入多条
curl -i -XPOST http://localhost:8086/write?db=test --data-binary "cpu,host=192.168.1.2 load=0.1,usage=0.22 1666666666666666661
cpu,host=192.168.1.3 load=0.1,usage=0.33 1666666666666666661
cpu,host=192.168.1.2 load=0.2,usage=0.22 1666666666666666662
cpu,host=192.168.1.3 load=0.2,usage=0.33 1666666666666666662"
3、查询数据API#
curl -G http://localhost:8086/query?db=test --data-urlencode "q=SELECT * FROM \"cpu\""