中间件与驱动
Telegraf
厂商/来源:
InfluxData (开源)
核心功能:
数据的“搬运工”。你不需要写代码去读取 CPU 温度、读取 Docker 状态或读取 Modbus,配置一下 Telegraf 就能全部自动采集并写入数据库。
| 适用场景 | 服务器性能监控、Modbus/MQTT 数据清洗与转发、ETL (提取-转换-加载) |
| 架构支持 | 全平台单二进制文件 (Go 语言编写,无需运行库)。 |
| 资源开销 | 极低。内存占用通常 < 50MB。 |
| 核心价值 | 插件丰富 (Plugin System) Inputs: 自带 300+ 采集插件 (System, Docker, MQTT, Modbus, OPC UA)。 Outputs: 支持写入 InfluxDB, Kafka, MySQL, HTTP 等。<br> Processors: 支持在采集端直接过滤、重命名、转换数据类型。 |
| 对接情报 | 缓冲机制 (Buffer):当网络断开时,Telegraf 会把采集到的数据缓存在内存中 (metric_buffer_limit),等网络恢复后自动补传。这是边缘计算刚需。 |
| 避坑指南 | [类型冲突与风暴] 1. 数据类型地狱:写入 InfluxDB 时,如果第一次写入字段 value 是整数 (Integer),后续写入浮点数 (Float) 会直接被丢弃报错。对策:在 inputs 插件中强制指定转换器 data_type = "float"。 2. 惊群效应 (Thundering Herd):如果你的 1000 台设备都配置了 interval = "10s",它们会在第 00, 10, 20 秒同时向服务器发请求,打爆数据库。对策:务必配置 collection_jitter = "2s",让采集时间随机抖动分散压力。 |
| 推荐搭配 | [InfluxDB] [Grafana] [SNMP 设备] |