InfluxDB CLI 使用笔记
什么是 InfluxDB CLI
InfluxDB CLI 是 InfluxData 官方提供的命令行客户端工具,用于与 InfluxDB 服务器进行交互。通过 CLI,用户可以执行数据查询、写入、管理配置等操作,无需使用 Web 界面或 API。
CLI 工具支持 InfluxDB 1.x 和 2.x 版本,是运维人员和开发者的必备工具。
主要功能
1. 数据操作
- 写入数据(行协议)
- 查询数据(InfluxQL/Flux)
- 删除数据
- 导入/导出数据
2. 资源管理
- 数据库管理
- 用户和权限管理
- 保留策略管理
- 连续查询管理
3. 配置管理
- 配置连接参数
- 设置默认组织
- 管理 API Token
4. 交互模式
- 交互式 shell
- 非交互式批量执行
- 支持管道输入
下载安装
Windows(x64)
从官方下载 InfluxDB CLI:
- 官方文档:https://docs.influxdata.com/influxdb/v2/tools/influx-cli/
1
2
3
4
5
6
7
8
9
|
# Windows (PowerShell)
# 下载最新版本
Invoke-WebRequest -Uri https://influxdb.com/downloads/influxdb2-client-2.7.5-windows-amd64.zip -OutFile influxdb2-client.zip
# 解压
Expand-Archive -Path influxdb2-client.zip -DestinationPath C:\InfluxCLI
# 添加到 PATH(可选)
$env:PATH += ";C:\InfluxCLI"
|
macOS
1
2
3
4
5
|
# 使用 Homebrew
brew install influxdb-client
# 或手动下载
curl -sL https://influxdb.com/downloads/influxdb2-client-stable.tar.gz | tar xzf -
|
Linux
1
2
3
4
5
6
|
# Ubuntu/Debian
sudo apt-get install influxdb-client
# 或下载二进制
curl -sL https://influxdb.com/downloads/influxdb2-client-stable.tar.gz | tar xzf -
sudo cp influxx /usr/local/bin/
|
配置连接
初始化配置
1
2
3
4
5
|
# 配置 InfluxDB 2.x
influx config create -n local \
-u http://localhost:8086 \
-o my-org \
-t my-token
|
常用配置命令
1
2
3
4
5
6
7
8
|
# 列出所有配置
influx config list
# 切换配置
influx config set local
# 查看当前配置
influx config
|
常用命令
数据写入
1
2
3
4
5
6
7
8
9
10
11
|
# 写入单行数据
influx write -b my-bucket -o my-org "cpu,host=server01 value=50"
# 从文件写入
influx write -b my-bucket -o my-org -f data.txt
# 批量写入
influx write -b my-bucket -o my-org <<EOF
cpu,host=server01 value=50 1640000000000000000
cpu,host=server02 value=30 1640000001000000000
EOF
|
数据查询
1
2
3
4
5
6
7
8
|
# 使用 InfluxQL 查询 (1.x)
influx -database mydb -execute "SELECT * FROM cpu LIMIT 10"
# 使用 Flux 查询 (2.x)
influx query 'from(bucket:"my-bucket") |> range(start: -1h)'
# 执行文件中的查询
influx query -f query.flux
|
数据库操作
1
2
3
4
5
6
7
8
|
# 创建数据库 (1.x)
influx -execute "CREATE DATABASE mydb"
# 查看数据库
influx -execute "SHOW DATABASES"
# 创建 Bucket (2.x)
influx bucket create -n my-bucket -o my-org --retention 30d
|
用户管理
1
2
3
4
5
|
# 创建用户 (1.x)
influx -execute "CREATE USER admin WITH PASSWORD 'password' WITH ALL PRIVILEGES"
# 查看用户
influx -execute "SHOW USERS"
|
使用技巧
1. 行协议格式
InfluxDB 使用行协议写入数据,格式如下:
1
|
measurement,tag_key=tag_value field_key=field_value timestamp
|
示例:
1
|
cpu,host=server01,region=us-west usage=75.5 1640000000000000000
|
2. 批量写入性能
- 使用缓冲区批量写入
- 避免频繁 small writes
- 考虑使用 gzip 压缩
3. 查询优化
- 使用时间范围限制
- 适当使用 LIMIT
- 利用 GROUP BY 聚合
4. 脚本集成
1
2
3
4
5
6
|
#!/bin/bash
# 定时写入脚本
HOST="server01"
VALUE=$(curl -s http://localhost:9090/metrics | grep cpu_usage | awk '{print $2}')
influx write -b my-bucket -o my-org "monitor,host=$HOST value=$VALUE"
|
常见问题
1. 认证失败
确保 Token 正确且有足够权限:
1
2
3
4
5
6
7
|
influx auth create \
--org my-org \
--description "CLI Token" \
--read-buckets \
--write-buckets \
--read-dashboards \
--write-dashboards
|
2. 连接超时
检查服务器地址和端口:
1
2
|
influx ping
influx health
|
3. 时区问题
InfluxDB 默认使用 UTC,查询时注意时区转换:
1
2
|
from(bucket: "my-bucket")
|> range(start: 2024-01-01T00:00:00Z, stop: 2024-01-02T00:00:00Z)
|
与其他工具对比
| 特性 |
InfluxDB CLI |
InfluxDBStudio |
API |
| 平台 |
跨平台 |
Windows |
跨平台 |
| 自动化 |
⭐⭐⭐⭐ |
⭐⭐ |
⭐⭐⭐⭐ |
| 交互体验 |
⭐⭐⭐ |
⭐⭐⭐⭐ |
⭐⭐ |
| 功能完整 |
⭐⭐⭐⭐ |
⭐⭐⭐ |
⭐⭐⭐⭐ |
适用场景
- 自动化运维:脚本化数据写入和查询
- 数据导入:批量导入历史数据
- 监控集成:集成到监控告警系统
- 快速调试:快速验证数据写入和查询
总结
InfluxDB CLI 是管理 InfluxDB 的强大工具,特别适合需要自动化操作的场景。虽然图形界面更直观,但 CLI 在批量处理、脚本集成方面具有不可替代的优势。
掌握 InfluxDB CLI 可以大大提高工作效率,建议在日常工作中多加练习。
参考链接
- 官方文档:https://docs.influxdata.com/influxdb/v2/tools/influx-cli/
- 行协议文档:https://docs.influxdata.com/influxdb/v2/reference/syntax/line-protocol/