Influxdb系列(一)influxdb2.7.x的部署安装

发布于:2024-01-25 ⋅ 阅读:(170) ⋅ 点赞:(0)

一、influxdb的介绍

InfluxDB 是一种时序数据库,时序数据库通常被用在监控场景,比如运维和 IOT(物联网)领域。这类数据库旨在存储时序数据并实时处理它们。
比如。我们可以写一个程序将服务器上 CPU 的使用情况每隔 10 秒钟向 InfluxDB 中写入一条数据。接着,我们写一个查询语句,查询过去 30 秒 CPU 的平均使用情况,然后让这个查询语句也每隔 10 秒钟执行一次。最终,我们配置一条报警规则,如果查询语句的执行结果>xxx,就立刻触发报警。
上述就是一个指标监控的场景,在 IOT 领域中,也有大量的指标需要我们监控。比如, 机械设备的轴承震动频率,农田的湿度温度等等。

二、influxdb行协议

InfluxDB 行协议是 InfluxDB 数据库独创的一种数据格式,它由纯文本构成,只要数据 符合这种格式,就能使用 InfluxDB 的 HTTP API 将数据写入数据库。 与 CSV 相似,在 InfluxDB 行协议中,一条数据和另一条数据之间使用换行符分隔, 所以一行就是一条数据。另外,在时序数据库领域,一行数据一行数据由下面 4 种元素构成。
image.png

三、官网下载地址

https://docs.influxdata.com/influxdb/v2/install/?t=Linux
image.png
我这里直接复制出连接下载了,会快很多。根据自己的版本自行下载

# 下载
[root@192 bin]# mkdir /root/influxdb/
[root@192 bin]# https://dl.influxdata.com/influxdb/releases/influxdb2-2.7.3-linux-amd64.tar.gz
# 解压
[root@192 bin]# tar xvzf path/to/influxdb2-2.7.3-linux-amd64.tar.gz
# 配置软连接
[root@192 bin]# pwd
/root/influxdb/influxdb2-2.7.3/usr/bin
[root@192 bin]# cp influxd /usr/local/bin/

四、配置influxdb参数

image.png

  • *根据官网介绍指定配置属性有三种方式,这里我们采用配置文件的形式,即在influxd的同级目录新建config.的文件image.png

在influxd的同级目录下新建config.yaml文件,具体的参数含义可查看官网或使用./influxd help查看。

[root@VM-24-17-centos bin]# pwd
/root/influxdb2-2.7.3/usr/bin
[root@VM-24-17-centos bin]# ll
总用量 102368
-rw-r--r-- 1 root root       292 119 10:28 config.yaml
drwxr-xr-x 5 root root      4096 119 10:39 engine
-rwxr-xr-x 1 root root 103292584 1017 23:47 influxd
-rw-r--r-- 1 root root   1280637 125 13:47 influxdb.log
-rw------- 1 root root    131072 125 09:30 influxd.bolt
-rw-r--r-- 1 root root    122880 119 10:19 influxd.sqlite
[root@VM-24-17-centos bin]# cat config.yaml 
http-bind-address : :8087
query-concurrency : 20
query-queue-size : 30
bolt-path : /root/influxdb2-2.7.3/usr/bin/influxd.bolt
sqlite-path : /root/influxdb2-2.7.3/usr/bin/influxd.sqlite
#assets-path : /root/influxdb2-2.7.3/usr/bin/assets-dir
engine-path : /root/influxdb2-2.7.3/usr/bin/engine

五、运行influxdb

# 前台运行
[root@192 bin]# influxd 
# 后台启动
[root@192 bin]#cd /root/installed/influxdb/usr/bin
[root@192 bin]#nohup ./influxd > influxdb.log 2>&1 &

image.png

六、登录web初始化信息

注意是http协议 不是https协议
http://192.168.112.130:8086/
image.png
获取授权的Token 左侧->API Tokens->All Access API Token->输入名称后->就是授权的Token了
image.png

后面会提如何使用Api token的方式使用客户端以及java api的方式操作infxludb

七、附录

unable to open boltdb: timeout

unable to open boltdb: timeout

image.png
https://github.com/influxdata/influxdb/issues/24320

这个问题通过一种奇怪的方式解决:

#  backup bolt db then delete it
cp influxd.bolt influxd.bolt.bak
rm influxd.bolt
然后重新启动influx,现在influx应该运行良好了~
现在让我们做一些神奇的事情吧😂

cp influxd.bolt.bak influxd.bolt

问题分析:
通常螺栓超时是因为其他东西(通常是另一个 influxdb 进程)也打开了该文件。如果再次发生这种情况,我会首先检查您的进程列表以确保没有发生这种情况。
当检查我的系统监视器时,我在端口 72 上看到一个名为 influxd 的进程,用户为 Root…我使用“sudo Kill -9 processId”命令终止了该进程。我只和 SUDO 合作,为了引起大家的注意。(我认为这是因为它是一个根进程)。然后就可以重新启动influxdb了

jar包启动

## 启动jar包前执行这句,避免jvm占用内存过多
[root@VM-24-17-centos dm_prometheus]#  export MALLOC_ARENA_MAX=2
## 如果机器内存比较大可调整为 -Xms128m  -Xmx1024m 
[root@VM-24-17-centos dm_prometheus]#  nohup java -jar -Xms256m  -Xmx512m sql_realtime_parse_tool-0.0.9.jar  > ./sql_realtime_parse_tool.log 2>&1 &

sql_realtime_parse_tool-0.0.7.jar