资讯动态

5分钟用Telegraf拿到第一组CPU指标

发布时间:2026/9/9 18:17:03 来源:尧图企业网站定制
5分钟用Telegraf拿到第一组CPU指标【免费下载链接】telegrafAgent for collecting, processing, aggregating, and writing metrics, logs, and other arbitrary data.项目地址: https://gitcode.com/GitHub_Trending/te/telegraf先说一个具体场景你手上有一台服务器或一个容器需要把它的 CPU、内存、磁盘数据定时打进时序库或画到监控面板里但又不想为此引入一整套监控栈。Telegraf 是一个专门干这件事的 agent——它按固定的采集间隔从输入插件inputs收集指标经过处理器processors和聚合器aggregators加工后再由输出插件outputs写出去。整个数据管道由一份 TOML 配置文件驱动编译产物是单个静态二进制没有外部依赖。它是什么适合谁Telegraf 的定位就是指标的采集、加工、聚合与写入官方维护了 300 多个插件覆盖系统监控、云厂商 API、消息队列、网络设备等领域。它不解释指标异常了怎么办——告警和可视化交给下游去做。所以判断标准很简单如果你的需求是从各种数据源稳定地采数并送出去它很合适如果你的需求是完整的告警引擎或可视化大盘它不是那个答案它负责的是管道不是终点。维度说明典型场景运行形态单个静态二进制无运行时依赖裸机、容器镜像、K8s DaemonSet配置方式一份 TOML 文件声明所有插件配置纳入 git 管理多环境复用插件规模300 个 inputs / outputs / processors / aggregators从系统指标到 Kafka、Modbus 等数据源资源占用低 CPU、低内存的常驻进程挂在业务机器旁不抢占业务资源生态位置InfluxData 时序数据平台的采集端上游对接采集下游对接 InfluxDB根据你的环境选一条路本地快速试用官方 Docker 镜像最快拉下来挂一个配置文件就能跑docker pull telegraf docker run --rm --volume $PWD/minimal.conf:/etc/telegraf/telegraf.conf telegraf生产长期运行用包管理器或静态二进制进程常驻且便于 systemd 管理。Debian/Ubuntu 加 InfluxData 官方源后apt-get install telegraf即可也支持 Homebrew。要编译的话克隆仓库后执行make buildgit clone https://gitcode.com/GitHub_Trending/te/telegraf cd telegraf make build 提示配置文件里至少要有一个 input 和一个 output否则 Telegraf 启动后没有任何数据流动。最小可用的插件组合是两行一个[[inputs.*]]一个[[outputs.*]]。各平台的完整安装方式、GPG 校验、Helm chart 等见 docs/INSTALL_GUIDE.md——当你需要离线安装或在非主流平台部署时翻它。从零到第一行输出第一步用官方子命令只生成 CPU 输入和文件输出两段的配置telegraf config --input-filter cpu --output-filter file minimal.conftelegraf config会打印全部插件的默认配置默认全被注释--input-filter和--output-filter只保留你要的部分。打开minimal.conf把它改成下面这样——一行输入、一行输出[[inputs.cpu]] percpu true # 按每个 CPU 核分别上报 totalcpu true # 额外上报一台机器的汇总 [[outputs.file]] files [stdout] # 写到标准输出方便直接观察保存文件然后启动telegraf --config minimal.conf终端里会先滚动一段启动日志加载了哪个配置文件、运行版本、加载了哪些插件。十几秒后开始出指标行形如# 标签: 主机名; 字段: 整型计数器(i后缀) 百分比; 末尾: 纳秒时间戳 mem,hostmy-server free1877688320i,available16818249728i,used3335778304i,used_percent15.95 1574712869000000000 cpu,hostmy-server,cpucpu-total usage_user11.39,usage_system4.14,usage_idle82.38 1568760922000000000上面两行取自两个输入插件 README 里的真实样例。第一行说明内存指标按主机标签 字段 时间戳的 line 格式输出第二行里cpucpu-total是totalcpu true产生的汇总标签。注意usage_*是占比字段第一次采样时 CPU 插件输出的是原始计时从第二次采样开始才会出现 usage 百分比因为它拿两次采样的差值计算。配置文件的三层结构Telegraf 的配置就三层顺序从上到下telegraf.conf ├── [global_tags] # 附加到所有指标上的标签 ├── [agent] # 采集间隔、批量、日志等代理设置 └── 插件区 ├── [[inputs.*]] # 采 ├── [[processors.*]] # 加工 ├── [[aggregators.*]] # 聚合 └── [[outputs.*]] # 写最常改的几个参数参数所在区块作用interval[agent]每个输入插件的采集间隔round_interval[agent]采集时刻对齐到间隔整数倍多机数据好对齐metric_batch_size[agent]攒够多少条指标再交给输出插件flush_interval[agent]不管攒没攒够到点就强制发送debug/logfile[agent]打开调试日志 / 指定日志文件完整参数列表和插件区的全局过滤、排序规则见 docs/CONFIGURATION.md。用环境变量替换敏感值配置里任意位置都可以写${VAR}字符串要带引号、数字布尔不带引号还支持${VAR:-默认值}、${VAR:?未设置时报错退出}这类 shell 风格写法。用 deb/rpm 包装的 Telegraf 可以直接把变量写进/etc/default/telegraf。原则只有一条token、密码永远不要明文写进配置文件。[[outputs.influxdb_v2]] urls [${INFLUX_HOST}] # 来自环境变量 token ${INFLUX_TOKEN:?缺少 token} # 未设置则启动报错 organization ${INFLUX_ORG:-default} # 未设置时用 default bucket ${INFLUX_BUCKET}按你的目标选插件别背插件表监控目标推荐插件关键参数一句话说明看 CPU / 内存inputs.cpu/inputs.mempercpu、totalcpu系统资源最基本的两组指标看磁盘与网络inputs.disk/inputs.netmount_points/interfaces按需圈定挂载点和网卡避免全量上报看容器inputs.docker—采集宿主机上容器的资源指标看 Redisinputs.redisservers连接实例读 INFO 指标送进 InfluxDBoutputs.influxdb_v2urls、token、bucket时序库落盘配合${}注入凭据中间加工processors.rename等namepass在采集和输出之间改标签、字段、计算新字段最小加工示例给 CPU 指标统一加个字段名映射[[processors.rename]] namepass [cpu] # 只处理 cpu 测量 [[processors.rename.replace]] field usage_idle # usage_idle 重命名为 idle dest idle执行顺序是processors 先跑然后 aggregatorsprocessors 再跑一遍——所以如果你又加缩放类处理器留意它可能被执行两次。聚合器可以用drop_original true只保留聚合结果、丢弃原始指标细节见 docs/AGGREGATORS_AND_PROCESSORS.md。完整插件目录在 plugins/ 下每个插件都有自己的 README 和样例配置。部署前过一遍这几条先跑telegraf --test --config minimal.conf只执行一轮输入并把结果打到 stdout 后退出确认配置合法、指标能采到排障时加--debug启动看每个插件的加载与数据流向确认后再关掉观察 Telegraf 进程本身的 CPU/内存占用确认它没有反客为主所有 token、密码走${}环境变量或 secret store 注入配置里不留明文生产环境用 docs/SECRETSTORES.md 里的 secret store 插件托管凭据而不是散落在环境里验证输出目标连通性正式切换前先写outputs.file到 stdout 看一眼实际格式固定镜像或二进制版本升级走灰度不直接拉 latest接下来往哪走docs/QUICK_START.md一个基于 Docker 的最小完整示例适合照着复现一遍docs/CONFIGURATION.md全部配置参数、环境变量语法、插件过滤与排序规则docs/AGGREGATORS_AND_PROCESSORS.mdprocessors 与 aggregators 的执行顺序和drop_original行为docs/DATA_FORMATS_OUTPUT.md输出支持哪些 data_format换 JSON、Kafka 等格式时先查这里docs/FAQ.md踩到具体怪问题时先来这里搜到这里你已经能在自己的环境里跑通第一条指标了剩下的事情就是按监控目标往配置文件里加插件。下一篇会讲处理器与聚合器的执行顺序细节以及如何避免数据被重复加工。【免费下载链接】telegrafAgent for collecting, processing, aggregating, and writing metrics, logs, and other arbitrary data.项目地址: https://gitcode.com/GitHub_Trending/te/telegraf创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价