Telegraf 上手指南:10分钟跑通第一条监控数据
【免费下载链接】telegrafAgent for collecting, processing, aggregating, and writing metrics, logs, and other arbitrary data.项目地址: https://gitcode.com/GitHub_Trending/te/telegraf
Telegraf 是一个插件驱动的 agent,负责采集、处理和写入 metrics。你只需要一个 TOML 配置文件:声明输入插件从哪采、输出插件写到哪,它就替你持续产出监控数据。全文按"装 → 配 → 验证 → 按需扩展"的任务线展开,照着做,10 分钟内能跑通第一条数据。
在 Linux 或 macOS 上安装 Telegraf
Debian / Ubuntu 用 InfluxData 官方仓库装,命令来自 docs/INSTALL_GUIDE.md:
wget -q https://repos.influxdata.com/influxdata-archive.key echo 'deb [signed-by=/etc/apt/trusted.gpg.d/influxdata-archive.gpg] https://repos.influxdata.com/debian stable main' | sudo tee /etc/apt/sources.list.d/influxdata.list sudo apt-get update && sudo apt-get install telegrafmacOS 两行搞定:
brew update brew install telegrafDocker 方式最简单,后面跑第一个例子会直接用到它:
docker pull telegraf注意:Homebrew 的构建用 CGO,和官方静态二进制有细微差异,生产环境建议用官方包或 Docker 镜像telegraf:alpine。
装完先确认版本:
telegraf version生成第一份可用的最小配置
配置是 TOML 文件,核心就三块:
[[inputs.*]]:采集什么。cpu、mem、disk 都算 input plugin[[outputs.*]]:数据写到哪。influxdb、file 都算 output plugin[agent]:全局参数。新手只需要关心interval(采集间隔)
新手要改的只有两项:输入插件写[[inputs.cpu]]、[[inputs.mem]]这类行,输出插件写files指向哪。其余参数全有默认值。
下面这份配置可以直接跑,先存为config.toml:
[[inputs.cpu]] percpu = true totalcpu = true [[inputs.mem]] [[outputs.file]] files = ["stdout"]想拿一份带全部插件注释的完整配置做参考,用 config 子命令生成:
telegraf config > telegraf.conf也可以只保留某几个插件的模板:
telegraf config --input-filter cpu:mem --output-filter file跑起来并确认采集成功
最快的验证方式是用--test:只跑输入插件、结果打到 stdout 然后退出,不需要任何后端(见 docs/COMMANDS_AND_FLAGS.md):
telegraf --config config.toml --teststdout 里出现类似这样的行,就说明采集已经通了:
cpu,cpu=cpu-total,host=hostname usage_idle=95.2,usage_user=2.1 1762000000000000000正式跑起来:
telegraf --config config.tomlDocker 版本:
docker run --rm --volume $PWD/config.toml:/etc/telegraf/telegraf.conf telegraf启动日志会列出 Loaded inputs / Loaded outputs。[[outputs.file]]配了stdout时,每隔 interval 就会刷出一批 metric。
常用插件速查
按需往配置里加行就行,每个插件的 README 都在 plugins/ 下:
[[inputs.disk]]:按挂载点采集磁盘用量,used_percent就是占用百分比[[inputs.diskio]]:按设备采集磁盘读写流量,适合看 IO 压力[[inputs.net]]:网卡收发字节数与包数,排查网络问题用[[inputs.procstat]]:盯指定进程(按 pidfile 或 exe 匹配)的 CPU、内存[[inputs.redis]]:Redis 连接数、命中、内存等状态
输出端常用的还有outputs.influxdb、outputs.prometheus_client、outputs.kafka,对应关系在 plugins/outputs/ 里都有文档。
常见问题排查
插件加载了但没有数据:先--debug前台跑,看日志里对应插件的报错,通常是地址、端口或权限问题。
配置写错了:用--test验证,语法或插件参数错误会在启动阶段直接报出来,不用等数据。
输出了数据但目标端看不到:用--test对比 stdout 是否产生了同样的数据。有,说明采集没问题,是输出端的连接、凭据或网络配置要查。
容器里采不到宿主机指标:加--net=host并挂载/proc,参考 docs/DOCKER.md。
下一步做什么
- 配置项全解:docs/CONFIGURATION.md
- 处理器与聚合器(rename、drop、统计聚合):
plugins/processors/、plugins/aggregators/ - 把输入换成数据库(mysql、postgresql)或日志类插件,改法完全一样:加一节
[[inputs.*]],按 README 填参数
【免费下载链接】telegrafAgent for collecting, processing, aggregating, and writing metrics, logs, and other arbitrary data.项目地址: https://gitcode.com/GitHub_Trending/te/telegraf
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考