influxdb 2.0.3 的安装与配置

安装

 1### 解压
 2[root@jyzbdb2 soft]# tar -zxf influxdb2-2.0.3_linux_amd64.tar.gz
 3
 4### 设置环境变量
 5[root@jyzbdb2 influxdb2-2.0.3_linux_amd64]# vim /etc/profile
 6...
 7export PATH=$PATH:/app/soft/influxdb2-2.0.3_linux_amd64
 8...
 9
10### 使环境变量生效
11[root@jyzbdb2 influxdb2-2.0.3_linux_amd64]# source /etc/profile

启动

方式一

直接在终端中启动(该方式启动后,退出终端进程也随之终止,原因不明):

1[root@jyzbdb2 influxdb2-2.0.3_linux_amd64]# nohup influxd >> /app/soft/influxdb2-2.0.3_linux_amd64/influx.log 2>&1 &

方式二

设置成服务启动:

 1### 添加 influxdb 用户,用于启动 influxdb 服务
 2[root@jyzbdb2 influxdb2-2.0.3_linux_amd64]# groupadd influxdb
 3[root@jyzbdb2 influxdb2-2.0.3_linux_amd64]# useradd -g influxdb -s /bin/false influxdb
 4
 5### 新增 influxdb 配置文件(这个文件主要用于 influxdb 的优化;如果没有性能问题,也可以不用配置)
 6[root@jyzbdb2 influxdb2-2.0.3_linux_amd64]# vim config.yml
 7storage-cache-max-memory-size: 4294967296
 8
 9### 修改文件的权限
10[root@jyzbdb2 influxdb2-2.0.3_linux_amd64]# chown -R influxdb:influxdb /app/soft/influxdb2-2.0.3_linux_amd64
11
12### 新增系统服务的启动文件
13### ExecStart后面的参数可以不加,也可以根据实际更改。具体参考:https://docs.influxdata.com/influxdb/v2.0/reference/config-options
14[root@jyzbdb2 influxdb2-2.0.3_linux_amd64]# vim /usr/lib/systemd/system/influxdb.service
15[Unit]
16Description=InfluxDB is an open-source, distributed, time series database
17Documentation=https://docs.influxdata.com/influxdb/
18After=network-online.target
19
20[Service]
21User=influxdb
22Group=influxdb
23LimitNOFILE=65536
24ExecStart=/app/soft/influxdb2-2.0.3_linux_amd64/influxd --storage-cache-max-memory-size=4294967296 --bolt-path=/data/influxdb-data/influxd.bolt --engine-path=/data/influxdb-data/engine
25KillMode=control-group
26Restart=on-failure
27
28[Install]
29WantedBy=multi-user.target
30
31### 启动服务
32[root@jyzbdb2 influxdb2-2.0.3_linux_amd64]# systemctl start influxdb
33
34### 查看服务状态
35[root@jyzbdb2 influxdb2-2.0.3_linux_amd64]# systemctl status influxdb
36
37### 设置为开机启动
38[root@jyzbdb2 influxdb2-2.0.3_linux_amd64]# systemctl enable influxdb

配置

 1### 初始化
 2[root@jyzbdb2 influxdb2-2.0.3_linux_amd64]# influx setup
 3Welcome to InfluxDB 2.0!
 4Please type your primary username: jygz
 5
 6Please type your password:
 7
 8Please type your password again:
 9
10Please type your primary organization name: copote
11
12Please type your primary bucket name: gps
13
14Please type your retention period in hours.
15Or press ENTER for infinite.:
16
17
18You have entered:
19Username:          jygz
20Organization:      copote
21Bucket:            gps
22Retention Period:  infinite
23Confirm? (y/n): y
24
25Config default has been stored in /root/.influxdbv2/configs.
26User	Organization	Bucket
27jygz	copote		gps
28
29### 查看 token(客户端一般通过token进行操作)
30[root@jyzbdb2 influxdb2-2.0.3_linux_amd64]# cat /root/.influxdbv2/configs
31[default]
32url = "http://localhost:8086"
33token = "qPhb-sP__WM3w0U_nhJIYIcfDB0Q1yJ26PqiqwE9_8wL0LrAXoTjm4cT1j0hC4wGWUJsu4BSN-5bev_nS4GRmA=="
34org = "copote"
35active = true

关于防火墙

1# 开放端口
2firewall-cmd --zone=public --add-port=8086/tcp --permanent
3# 配置立即生效
4firewall-cmd --reload
5# 查看防火墙所有开放的端口
6firewall-cmd --zone=public --list-ports

8086 端口:使用该端口与influxdb客户端进行数据交互。

基本操作

使用 influxdb api的方式进行操作

 1### 添加数据(多条):
 2curl --request POST 'http://200.200.200.71:8086/api/v2/write?org=copote&bucket=gps&precision=ms' \
 3--header 'Authorization: Token N6M048DSeVq6s93aZRkjX5bqqCAQKaPCbf56NjjjuO28J3EZdywx0_df7RNlGy925AYRi2NS_rRwxsfsUVaVEA==' \
 4--data '
 5test,id=1 username="tom" 1609299009330
 6test,id=1 age=12 1609299009330
 7'
 8
 9### 添加数据(单条):
10curl --request POST 'http://200.200.200.71:8086/api/v2/write?org=copote&bucket=gps&precision=ms' \
11--header 'Authorization: Token N6M048DSeVq6s93aZRkjX5bqqCAQKaPCbf56NjjjuO28J3EZdywx0_df7RNlGy925AYRi2NS_rRwxsfsUVaVEA==' \
12--data 'test,id=1 realname="汤姆" 1609299009330'
13
14
15### 查询数据:
16curl --request POST 'http://200.200.200.71:8086/api/v2/query?org=copote' \
17--header 'Authorization: Token N6M048DSeVq6s93aZRkjX5bqqCAQKaPCbf56NjjjuO28J3EZdywx0_df7RNlGy925AYRi2NS_rRwxsfsUVaVEA==' \
18--header 'Accept: application/csv' \
19--header 'Content-type: application/vnd.flux' \
20--data 'import "experimental/geo"
21from(bucket:"gps")
22|> range(start: -12h)
23|> filter(fn: (r) => r._measurement == "test")
24|> geo.toRows()'
25
26
27### 删除数据:
28curl --request POST 'http://200.200.200.71:8086/api/v2/delete?org=copote&bucket=gps' \
29--header 'Authorization: Token N6M048DSeVq6s93aZRkjX5bqqCAQKaPCbf56NjjjuO28J3EZdywx0_df7RNlGy925AYRi2NS_rRwxsfsUVaVEA==' \
30--header 'Content-Type: application/json' \
31--data '{
32"start": "2020-12-30T00:00:00Z",
33"stop": "2020-12-31T00:00:00Z",
34"predicate": "_measurement=\"test\" and id=\"1\""
35}'

使用 influxdb 客户端命令的方式进行操作

1### 删除数据:
2influx delete --bucket gps --org copote \
3--host 'http://200.200.200.71:8086' \
4--token 'N6M048DSeVq6s93aZRkjX5bqqCAQKaPCbf56NjjjuO28J3EZdywx0_df7RNlGy925AYRi2NS_rRwxsfsUVaVEA==' \
5--start '2020-12-30T00:00:00Z' \
6--stop '2020-12-31T00:00:00Z' \
7--predicate '_measurement="test" and id="1"'