欢迎光临
我们一直在努力

Telegraf 快速上手指南:从安装到服务器指标采集的完整流程

Telegraf 快速上手指南:从安装到服务器指标采集的完整流程

【免费下载链接】telegraf Agent for collecting, processing, aggregating, and writing metrics, logs, and other arbitrary data. 【免费下载链接】telegraf 项目地址: https://gitcode.com/GitHub_Trending/te/telegraf

上线一台新服务器后,你大概希望 CPU、内存、磁盘的状态被自动上报,而不是等告警来了再手工登录排查。Telegraf 是一个单文件的指标采集代理,把采集、加工、投递做在同一进程里,支持 200 多种插件。这篇文章带你走完安装、配置到看到第一批指标的全过程。

项目定位:一个插件化指标代理

Telegraf 负责采集、处理、聚合各类数据并写入下游存储。它的设计取向是"低运维成本":

特性说明
单一静态二进制 编译产物即一个可执行文件,无需安装运行时依赖
插件生态 200+ 输入/输出插件,覆盖系统指标到数据库、消息队列
资源开销 典型部署占 CPU 低于 5%,常驻内存约 10MB
数据流向 支持处理器/聚合器做中途加工,多格式输入输出

Telegraf 插件化指标采集代理

从零到第一条指标

选安装方式。 三种主流路径按环境选:

方式命令适用场景
包管理器 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. 【免费下载链接】telegraf 项目地址: https://gitcode.com/GitHub_Trending/te/telegraf

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

赞(0)
未经允许不得转载:171主机测评 » Telegraf 快速上手指南:从安装到服务器指标采集的完整流程
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址