以下内容来自 尚硅谷,写这一系列的文章,主要是为了方便后续自己的查看,不用带着个PDF找来找去的,太麻烦!
第 15 章 InfluxDB服务进程参数(influxd命令的用法)
15.1 influxd命令罗列
1、我们的InfluxDB下载好后,解压目录下的influxd就是我们InfluxDB服务进程的启动命令。本文不会介绍influxd的全部命令,通过下面的命令列表,大家可以窥探InfluxDB的一些可配置的能力。详情可以参考:https://docs.influxdata.com/influxdb/v2.4/reference/cli/influx/
命令 | 直译 | 解释 |
---|---|---|
downgrade | 降级 | 将元数据格式降级以匹配旧的发行版 |
help | 帮助 | 打印influxd命令的帮助信息 |
inspect | 检查 | 检查磁盘上数据库的数据 |
print-config | 打印配置 | (此命令 2 .4已被废弃)打印完整的influxd在当前环境的配置信 |
息 | ||
recovery | 恢复 | 恢复对InfluxDB的操作权限,管理token、组织和用户 |
run | 运行 | 运行influxd服务(默认) |
upgrade | 升级 | 将InfluxDB从 1 .x升级到InfluxDB2.4 |
version | 版本 | 打印InfluxDB的当前版本 |
2、不一定必须通过influxd命令来查看InfluxDB的当前配置。你还可以使用influx-cli的命令:
influx server-config
15.2 influxd的两个重要命令
1、在生产条件下最有可能用到的两个命令就是inspect和recovery。下面,我们对这两个命令做一下详细的介绍。
15.2.1 inspect命令
1、你可以使用下面的命令来查看inspect这个子命令的帮助信息。
./influxd inspect -h
2、你会发现inspect这个子命令下还有很多子命令。这里出现的tsi、tsm、wal都跟InfluxDB底层的存储引擎相关,本文并不涉及这一部分的内容。这里可以稍微点一下,你可以使用下面的命令查看InfluxDB中数据存储的大概情况。
./influd inspect report-tsm
3、执行结果如下图所示。展示出来的信息中包含了InfluxDB的数据存储情况,比如当前整个InfluxDB有多少序列,每个存储桶中又有多少序列等等。
4、另外,还有一个比较重要的 export-tsm命令,它可以将某个存储桶中的数据全部导出为InfluxDB行协议。后面我们会在一个示例中详细演示它的使用。
15.2.2 recovery命令
1、recovery是恢复的意思。可以先用下面的命令查看recovery这一子命令的帮助信息。
./influd recovery -h
2、如图所示,influxd recovery 命令的作用主要是用来修复或者重新生成对InfluxDB进行操作所需的operator(操作者) 权限的。
3、recovery下面还有 3 个子命令,分别是auth、org和user。它们分别与token、组织和用户有关。下面主要是讲解auth子命令的用法,使用下面的命令可以进一步查看auth子命令的帮助信息。
./influxd recovery auth -h
4、返回的结果如下图所示:
5、可以看到它有两个子命令。
- create-operator:为一个用户创建一个新的操作者token。
- list:列出当前数据库中的全部token。
6、使用下面的命令就可以为tony用户再次创建一个operator-token了。
.atguigu/influxd recovery auth create - operator --username tony --org
7、命令执行后,终端会显示如下图所示的内容,可以看到这里创建了一个名为 tony’sRecovery Token的操作者token。
15.3 influxd常用配置项
1、influxd的可用配置项超多,本文不会全部讲解。详细可以参考:https://docs.influxdata.com/influxdb/v2.4/reference/config-options/#assets-path
2、以下是一些常用的参数
- bolt-path:BoltDB文件的路径。
- engine-path:InfluxDB文件的路径
- sqlit-path:sqlite的路径,InfluxDB里面还用到了sqllite,它里面会存放一些关于任务执行的元数据,
- flux-log-enabled:是否开启日志,默认是false。
- og-level:日志级别,支持debug、info、error等。默认是info。
15.4 如何对influxd进行配置
1、有 3 种方式可以对influxd的配置。这里以http-bind-address进行操作,为大家演示。
15.4.1 命令行参数
1、进行如下操作前,记得关闭当前正在运行的influxd。你可以使用下面的命令来杀死当然的influxd进程。否则,原先的influxd进程会锁住BoltDB数据库,别的进程不能访问。当然你也可以修改BlotDB路径,但是那样太过麻烦。
ps -ef | grep influxd | grep -v grep | awk '{print $2}' | xargs kill
2、用户influxd命令启动InfluxDB时,通过命令行参数来传递一个配置项。比如:
./influxd --http-bind-address=:8088
3、可以尝试访问 8088 端口,看服务有没有挂到端口上
15.4.2 环境变量
1、同样,还是先杀死之前的influxd进程。运行下面的命令。
ps -ef | grep influxd | grep -v grep | awk '{print $2}' | xargs kill
2、用户可以声明一个环境变量,对influxd进行配置比如:现在,我们启动一下influxd看下效果。
export INFLUXD_HTTP_BIND_ADDRESS=:8089
3、最后,因为我们用的是export命令,临时搞了一个环境变量,如果你觉得当前shell会话不重要,可以关闭当前shell会话。否则,你可以使用unset命令来销毁这个环境变量。
unset INFLUXD_HTTP_BIND_ADDRESS
15.4.3 配置文件
1、你还nfluxd所在的目录下放一个 config文件,它可以是 config.json,config.toml,config.yaml。这 3 种格式influxd都能识别,不过文件中的内容一定要合法。influxd启动时会自动检测这个文件。
2、在InfluxDB的安装目录下创建一个config.json文件。
vim /opt/module/influxdb2_linux_amd64/config.json
3、编辑如下内容。
{
"http-bind-address": ":9090"
}
4、启动之前记得停掉之前的InfluxDB进程。
ps -ef | grep influxd | grep -v grep | awk '{print $2}' | xargs kill
5、现在再启动一下,看看效果。
./influxd
6、可以看到端口已经变成 9090 。配置同样是生效的。
15.4.4 小结
1、最后,如果要做配置的修改,建议一定要参考InfluxDB的官方文档,这一部分写的非常清楚,而且官网已经给出了进行配置的各种模板。用好官方文档,可以大大提高开发效率.