Telegraf 采集设备数据写入 TDengine:完整配置步骤

丁丁智造 · 2026-07-29
Telegraf 采集设备数据写入 TDengine:完整配置步骤
导读:Telegraf 插件丰富,是把 MQTT/Modbus 数据写入 TDengine 的常用桥梁。本文给出从输入插件到 TDengine 输出插件的完整配置和验证方法。

Telegraf 扮演什么角色

Telegraf 是插件化的数据采集/转发代理:输入插件负责拿数据(MQTT、Modbus、HTTP 等),输出插件负责写目的地(TDengine、InfluxDB 等)。采集和入库用配置串起来,几乎不用写代码。

整体链路

设备 → Neuron/采集服务 → MQTT(EMQX) → Telegraf(MQTT输入) → Telegraf(TDengine输出) → TDengine

第一步:配置 MQTT 输入

在 telegraf.conf 启用 inputs.mqtt_consumer,指定 broker、主题、数据格式:

[[inputs.mqtt_consumer]]
  servers = ["tcp://127.0.0.1:1883"]
  topics = ["factory/+/+/+"]
  qos = 1
  data_format = "json"

主题用 + 通配单层,按前面定好的“厂区/产线/设备/点位”层级订阅。

第二步:配置 TDengine 输出

启用 outputs.tdengine(较新版本内置),指定 DSN、数据库和是否自动建表:

[[outputs.tdengine]]
  dsn = "root:taosdata@tcp(127.0.0.1:6030)/"
  database = "factory"
  skip_database_creation = false

第三步:数据格式对齐

Telegraf 内部用 metric 模型(measurement + tags + fields + timestamp)。要让设备、产线作为标签(tag,可索引、用于分组),温度压力等作为字段(field,实际数值)。若上游 JSON 结构不标准,可用 inputs 侧的解析或用 processor 做字段重命名。

第四步:前台调试

telegraf --config telegraf.conf --test     # 只跑一次看输出
telegraf --config telegraf.conf            # 正式运行

—test 能快速验证“输入是否解析成功、字段是否齐全”,不用真写库,是排错利器。

第五步:验证入库

USE factory;
SHOW STABLES;
SELECT * FROM 子表名 LIMIT 10;

生产化建议

  • 用 systemd 托管 Telegraf 并设开机自启
  • 采集和 TDengine 分进程/分机部署,互不影响
  • 给 MQTT 建独立账号,最小权限
  • 配合 Grafana 直接查 TDengine,形成“采集—存储—展示”闭环

这套方式几乎全配置化,新增设备只需加主题和点位,非常适合长期迭代。