Telegraf 快速上手指南:从安装到服务器指标采集的完整流程
【免费下载链接】telegraf Agent for collecting, processing, aggregating, and writing metrics, logs, and other arbitrary data. 项目地址: https://gitcode.com/GitHub_Trending/te/telegraf
上线一台新服务器后,你大概希望 CPU、内存、磁盘的状态被自动上报,而不是等告警来了再手工登录排查。Telegraf 是一个单文件的指标采集代理,把采集、加工、投递做在同一进程里,支持 200 多种插件。这篇文章带你走完安装、配置到看到第一批指标的全过程。
项目定位:一个插件化指标代理
Telegraf 负责采集、处理、聚合各类数据并写入下游存储。它的设计取向是"低运维成本":
| 单一静态二进制 | 编译产物即一个可执行文件,无需安装运行时依赖 |
| 插件生态 | 200+ 输入/输出插件,覆盖系统指标到数据库、消息队列 |
| 资源开销 | 典型部署占 CPU 低于 5%,常驻内存约 10MB |
| 数据流向 | 支持处理器/聚合器做中途加工,多格式输入输出 |

从零到第一条指标
选安装方式。 三种主流路径按环境选:
| 包管理器 | sudo apt-get install telegraf(DEB)或 sudo yum install telegraf(RPM) | 长期运行的生产服务器,走官方仓库,升级方便 |
| Docker | docker pull telegraf | 开发、测试环境,隔离干净,随时可丢 |
| 二进制包 | 下载对应架构的 tar 包,把 telegraf 放进 PATH | 无法联网装包的机器,或需要定制构建(custom builder 可裁剪出只含所需插件的小体积二进制) |
生成配置并启动。 配置是 TOML 文件,至少要有一个 input 和一个 output 才能跑起来:
telegraf config > telegraf.conf # 生成含全部插件示例的默认配置
telegraf –config minimal.conf # 启动;容器场景用 –volume 挂载配置文件
启动后先打印加载的配置、版本和已启用插件,随后每隔一个采集周期就向 output 吐指标,行格式为 measurement,tags… fields… 时间戳,例如:
cpu,host=server01,cpu=cpu0 usage_user=3.4,usage_idle=95.4 1654321098765
看懂配置文件:三层结构
docs/CONFIGURATION.md 把配置拆成三层,记住这个骨架就能读任何配置文件:
| 全局标签 | [global_tags] | 附加到该实例产出的每一条指标上 |
| 代理设置 | [agent] | 采集间隔、批量大小、flush 周期等 |
| 插件 | [[inputs.xxx]] / [[outputs.xxx]] | 双括号表示"表的数组",同名插件可写多次,用于连接不同端点 |
环境变量的用法。 任意位置可用 ${VAR} 引用环境变量,替换发生在解析文件之前——字符串要加引号("${INFLUX_TOKEN}"),数字和布尔值不加。还支持 shell 风格的默认值与必填校验,如 ${INFLUX_BUCKET:?missing bucket} 在变量缺失时直接报错退出。用包管理器安装时,变量可以集中写在 /etc/default/telegraf 里。一个输出到 InfluxDB 的最小片段:
[global_tags]
dc = "us-east-1"
[agent]
interval = "10s"
round_interval = true
[[outputs.influxdb_v2]]
urls = ["${INFLUX_HOST}"]
token = "${INFLUX_TOKEN}"
bucket = "${INFLUX_BUCKET}"
按场景做监控
场景一:服务器基础资源。 只留三行就能拿到 CPU 和内存数据:
[[inputs.cpu]]
percpu = true
[[inputs.mem]]
[[outputs.file]]
files = ["stdout"]
outputs.file 写到 stdout 时可直接在终端观察,验证链路没问题后改指向日志文件即可。
场景二:数据库。 在 [plugins/inputs/](https://link.gitcode.com/i/ee4ff7b737723003c64279bf7075baef) 下按产品选插件,各自只需端点与鉴权。例如 Redis 给一个 servers 和可选 keys,MySQL 给连接串和要查询的库。效果:每个采集周期产出一份该实例的连接、命令处理、慢查询类指标。
场景三:投递到下游。 输出插件与输入插件对称配置,[plugins/outputs/](https://link.gitcode.com/i/57164b537c5a7dcb465aa40609342253) 下选择目标(Kafka、InfluxDB 等),设置 broker 地址、topic 与 data_format。效果:指标从采集到入库不需要中间脚本,缓冲、重试由插件自身管理。
数据精加工:处理器与聚合器
处理器在指标到达输出前逐条改写,适合重命名、过滤、加派生字段:
[[processors.rename]]
[[processors.rename.replace]]
field = "usage_idle"
dest = "idle"
聚合器按周期汇总,basicstats 会对指定字段输出 mean、sum、max 等统计值,period 控制刷新节奏,drop_original = false 可保留原始明细:
[[aggregators.basicstats]]
period = "5m"
drop_original = false
两者的取舍:只想改字段名、加减字段用处理器;想要"每 5 分钟一个均值点"这种降采样效果用聚合器。
自检与排障
| 改完配置不确定是否合法 | telegraf –config telegraf.conf –test:只跑输入、打到 stdout 后退出,兼做冒烟测试 |
| 不知道有哪些插件可用 | telegraf plugins 列出全部插件及示例配置 |
| 运行时行为不符合预期 | [agent] 下开 debug = true,或用 logfile 指定落盘路径复查日志 |
| 生成配置时只想保留部分插件 | telegraf config –input-filter cpu:mem –output-file-filter file 过滤后输出 |
延伸阅读
- docs/INSTALL_GUIDE.md — 全部安装方式,含 nightly 构建
- docs/CONFIGURATION.md — 配置完整参考
- docs/AGGREGATORS_AND_PROCESSORS.md — 处理器与聚合器详解
- docs/COMMANDS_AND_FLAGS.md — 命令行参数速查
- plugins/ — 全部输入/输出/处理器/聚合器插件源码
下一步建议:先按"场景一"跑通从采集到输出的链路,再逐个替换成你实际的输入源和 InfluxDB 输出,最后按需叠加处理器——链路通了,调参只是时间问题。
【免费下载链接】telegraf Agent for collecting, processing, aggregating, and writing metrics, logs, and other arbitrary data. 项目地址: https://gitcode.com/GitHub_Trending/te/telegraf
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考


