Collectd
大约 3 分钟
Collectd
1. 引言
Collectd 用于定期收集系统和应用程序的性能指标,并提供多种机制来存储这些指标值。它能从多种数据源(如操作系统、应用程序、日志文件及外部设备)采集指标,并将这些信息存储到本地或通过网络传输到其他系统。通过收集的统计数据,用户可实现系统监控、发现性能瓶颈以及预测未来的系统负载。
IoTDB 支持与 Collectd 进行集成,只需将 Collectd 的配置指向运行 IoTDB_Adapter 的服务器域名(或 IP 地址)及对应端口,即可将采集数据写入 IoTDB,从而充分发挥 IoTDB 对时序数据的高效存储、查询性能及集群处理能力。
2. 前置条件
将 Collectd 采集的数据存储到 IoTDB 需要做如下的准备:
IoTDB >=V2.0.5.1,已经部署并且能够正常运行
IoTDB_Adapter 已经安装并正常运行
Collectd 已经安装
3. 配置步骤
3.1 IoTDB_Adapter 配置
联系天谋工作人员获取
IoTDB_Adapter安装包解压压缩包
# 以1.0版本为例 unzip IoTDB_Adapter-1.0.zip修改配置文件 conf/application.properties ,设置监听接口、IoTDB 的节点地址、用户名、密码和路径前缀。
# 启动 Adapter 监听的端口
port=4242
# IoTDB 的实例地址,多个 nodeUrls 用 ; 分割
iotdb.nodeUrls=127.0.0.1:6667
# 写入IoTDB的数据的路径前缀,如 root.testdb (sqlDialect不为table的时候生效)
iotdb.prefix=root.collectd
# IoTDB 用户名
iotdb.user=root
# IoTDB 密码
iotdb.password=root
# IoTDB SqlDialect(可选tree/table,默认tree)
iotdb.sqlDialect=table
# IoTDB DataBase (sqlDialect为table的时候生效)
iotdb.database=collectd
# IoTDB Table (sqlDialect为table的时候生效)
iotdb.table=test
# payload_formatter:支持 statsd 和 opentsdb(默认) 两种
payload.formatter=opentsdb
# 源数据精度(默认秒s|毫秒ms|微妙us|纳秒ns)
time.precision.source=s
# 目标 IoTDB 数据精度(默认秒)
time.precision.iotdb=ms注意:表模型下,参数 iotdb.database 中设置的数据库需要提前创建
- 重新启动
IoTDB_Adapter服务。
/sbin/start.sh3.2 Collectd 配置
下载安装 Collectd,可参考官方网站
修改 Collectd 配置文件(默认位置
/etc/collectd.conf)相关配置项
LoadPlugin cpu
LoadPlugin memory
LoadPlugin network
<Plugin network>
Server "[127.0.0.1](http://127.0.0.1)" "8080"
</Plugin>
LoadPlugin write_tsdb
<Plugin write_tsdb>
<Node>
Host "[127.0.0.1](http://127.0.0.1)"
Port "4242"
HostTags "status=production"
StoreRates false
AlwaysAppendDS false
</Node>
</Plugin>- 启动 Collectd
systemctl start collectd3.3 验证测试
通过 IoTDB CLI查询数据,验证数据是否已成功写入。
IoTDB:collectd> select * from test limit 10
+-----------------------------+-----------------------------------------------------+---------------------------+----------+---------------+
| time| metric| fqdn| status| value|
+-----------------------------+-----------------------------------------------------+---------------------------+----------+---------------+
|2025-07-23T10:21:31.008+08:00| cpu.0.cpu.steal|iot-VMware-Virtual-Platform|production| 0.0|
|2025-07-23T10:21:31.008+08:00| irq.48.irq|iot-VMware-Virtual-Platform|production| 0.0|
|2025-07-23T10:21:31.008+08:00|df.snap-snapd-desktop-integration-253.df_complex.free|iot-VMware-Virtual-Platform|production| 0.0|
|2025-07-23T10:21:31.008+08:00| disk.loop14.disk_ops.read|iot-VMware-Virtual-Platform|production| 10.0|
|2025-07-23T10:21:31.008+08:00| df.root.df_complex.used|iot-VMware-Virtual-Platform|production|2.2677823488E10|
|2025-07-23T10:23:42.080+08:00| df.root.df_complex.used|iot-VMware-Virtual-Platform|production|2.2679293952E10|
|2025-07-23T10:21:31.008+08:00| irq.IWI.irq|iot-VMware-Virtual-Platform|production| 48.0|
|2025-07-23T10:21:31.008+08:00| cpu.3.cpu.user|iot-VMware-Virtual-Platform|production| 2516.0|
|2025-07-23T10:21:31.008+08:00| df.snap-firmware-updater-167.df_complex.free|iot-VMware-Virtual-Platform|production| 0.0|
|2025-07-23T10:21:31.008+08:00| cpu.3.cpu.nice|iot-VMware-Virtual-Platform|production| 3819.0|
+-----------------------------+-----------------------------------------------------+---------------------------+----------+---------------+