Telegraf 采集配置是什么
Telegraf 是常用的指标采集代理,配置由 inputs、processors、outputs 三部分组成:inputs 定义采集对象(cpu、mem、disk、nginx、mysql、kafka、prometheus 抓取等),processors 做过滤与改写,outputs 决定写入目标。对接 InfluxDB 2.x 使用 outputs.influxdb_v2,需要 token、organization 与 bucket 三项。启动前用 --test 参数把采集结果打印一次,确认连得上、字段符合预期。
基本信息
| 最小结构 | [[inputs.xxx]] → [[processors.xxx]](可选)→ [[outputs.influxdb_v2]] |
|---|---|
| 验证方式 | telegraf --config /etc/telegraf/telegraf.conf --test |
| 关键配置 | urls、token、organization、bucket |
| 常用输入 | cpu、mem、disk、net、nginx、mysql、kafka、prometheus 抓取 |
| 所属系统 | Telegraf(InfluxData 采集代理) |
典型使用场景
- 主机监控:采集 CPU、内存、磁盘与网络指标
- 中间件采集:从 MySQL、Nginx、Kafka 等服务拉取指标
- 复用已有端点:用 prometheus 输入插件接已有的指标接口
- 字段改写:用 processors 统一标签命名,便于统一查询
- 灰度验证:先用 --test 验证配置,再交给 systemd 常驻运行
最小配置
最小配置
[[inputs.cpu]] # 采集输入
percpu = false
totalcpu = true
[[outputs.influxdb_v2]] # 写入 2.x 的输出配置
urls = ["http://127.0.0.1:8086"]
token = "${INFLUX_TOKEN}" # 用环境变量注入令牌,不要直接写死
organization = "my-org"
bucket = "metrics"配置段读法
| 配置段 | 作用 | 注意 |
|---|---|---|
| [[inputs.*]] | 定义采集对象 | 采集间隔与超时要显式设置 |
| [[processors.*]] | 过滤与改写 | 按出现先后顺序生效 |
| [[outputs.influxdb_v2]] | 写入 InfluxDB 2.x | 需要 token、organization、bucket |
| token | 写入凭证 | 用环境变量注入,别写进仓库 |
| --test | 打印一次采集结果 | 验证配置最直接的方式 |
启动前先用 --test 看是否连得上、字段是否符合预期;生产用 systemd 管理并限制日志大小,避免日志把磁盘写满。
outputs 配错时 Telegraf 会缓冲重试,指标看似在采集但数据没有落库,监控必须覆盖写入失败计数。
配置文件里出现重复的 section 时后出现的会生效,排查时用 --test 明确当前结果,不要只看文件内容。
采集间隔与 flush 间隔要一起看:采集密而 flush 稀会让指标看起来滞后,flush 密而批次小又增加服务端写入压力,通常让 flush 与采集间隔保持同一量级更容易理解。
同一台机器上运行多个 Telegraf 实例时要区分运行目录与日志路径,否则日志互相覆盖,排查时拿不到完整线索。