Telegraf:把服务器指标统一收集的代理
文章目录Telegraf把服务器指标统一收集的代理1、这玩意儿是干嘛的2、为什么要用它3、安装与使用4、适合哪些人用Telegraf把服务器指标统一收集的代理Telegraf 在 GitHub 上已经拿到 17,673 个 Star。InfluxData 开源了这个项目用来收集、处理、聚合和写入指标、日志以及其他任意数据。它跑成一个二进制没有外部依赖配置用 TOML 文件完成。整个设计围绕插件展开输入、处理、输出三类插件组合使用可以覆盖数据采集场景。项目用 Go 语言编写单个二进制方便分发和部署。1、这玩意儿是干嘛的就做一件事把各种来源的数据收上来处理后送到你想存的地方。服务器 CPU、内存、磁盘、网络状态Docker 容器指标MySQL、Redis、Kafka 等中间件数据云厂商接口甚至脚本输出都能接入。数据可以写入 InfluxDB、Prometheus、Kafka、Elasticsearch 等存储或消息系统。输入和输出之间还可以插入处理器完成重命名、过滤、聚合等操作。采集间隔、发送间隔、缓冲区大小都可以在配置中指定。用户也可以接入自定义代码来收集、转换和传输数据。这种设计让它既能处理标准协议也能兼容遗留系统。2、为什么要用它做监控的人常遇到这种情况每台机器要装探针配置格式不一样数据收集后还要写脚本清洗维护成本会增加。数据源一多排查问题变得困难升级时还要逐个处理采集脚本。各团队写出的采集逻辑重复质量也有差异。Telegraf 把这些步骤串起来了。通过一个配置文件定义输入、处理和输出插件启动后自动按周期采集和发送。它自带 300 多个插件覆盖系统监控、云服务、消息队列、网络设备、日志文件等场景。插件之间数据格式一致不需要在中间转换。遇到项目未内置的协议或接口可以用 exec 插件调用脚本也可以用 Go 自行开发插件。对于已经有内部脚本或 HTTP 接口的团队Telegraf 可以直接消费这些来源不需要推倒重来。由于采用插件架构新增一种数据源通常只需要启用对应插件修改几项配置即可。采集到的数据会先进入内部队列再按配置批量发送可以减少对目标存储的冲击。插件由社区维护贡献者已经超过 1,200 人。3、安装与使用编译后是一个二进制部署时只需要一个文件。安装方式包括二进制包、Docker 镜像、RPM 和 DEB 包。配置文件格式为 TOML。以 CPU 监控为例[[inputs.cpu]] percpu true totalcpu true [[outputs.file]] files [stdout]启动命令telegraf--configtelegraf.conf每个插件都有文档说明配置项、使用方式和排错方法。官方也提供快速入门和配置参考文档。处理器插件可以在数据流入存储前完成单位转换、字段选择、阈值过滤等操作不需要额外写代码。TOML 配置文件分为全局代理设置、输入插件、处理器插件和输出插件四块。修改配置后重启服务即可生效。配置文件中可以定义多个输入和输出这些数据可以同时发往多个后端比如同时写入 InfluxDB 和 Kafka。4、适合哪些人用需要收集服务器和中间件指标的运维工程师正在搭建可观测性平台、不想为每种数据源单独写采集脚本的团队有自定义采集逻辑需求、希望用插件机制扩展的开发者如果你已经在用 InfluxDB 或 PrometheusTelegraf 可以作为采集层直接接入现有栈。对于需要统一多种数据源的监控场景它提供了一种方案。它提供了一种方案。[外链图片转存中…(img-PxPR9XNQ-1783399600729)]