资讯动态

Telegraf 指标采集容器化部署实战指南:Docker 与 K8s 3 步跑通

发布时间:2026/9/9 15:06:31 来源:尧图企业网站定制
Telegraf 指标采集容器化部署实战指南Docker 与 K8s 3 步跑通【免费下载链接】telegrafAgent for collecting, processing, aggregating, and writing metrics, logs, and other arbitrary data.项目地址: https://gitcode.com/GitHub_Trending/te/telegrafTelegraf 是 InfluxData 的插件式指标采集代理Agent负责收集、处理并写入系统与服务指标。本文带你完成 Telegraf 容器化部署先在 Docker 里用最小配置跑通第一次采集再把它以 DaemonSet 形式部署到 Kubernetes 集群并处理好最常见的锁内存告警与指标过滤问题。为什么容器化先选对基础镜像Telegraf 提供两种官方 Docker 镜像维护策略是 InfluxData 为最近三个次要版本持续提供安全更新见 docs/DOCKER.md镜像拉取命令特点适用场景Debiandocker pull telegraf依赖完整兼容性好生产环境稳定性优先Alpinedocker pull telegraf:alpine体积小资源占用低边缘设备、资源受限节点选型决策点只有一个是否依赖 glibc 生态下的系统工具。没有特殊需求就选 Debian节点资源紧张、只需采集指标时选 Alpine。第一次跑起来用 telegraf config 生成最小配置让 Telegraf 自己生成配置不要手写配置先让程序打印出厂配置docs/COMMANDS_AND_FLAGS.mddocker run --rm telegraf config telegraf.conf加过滤参数可以只导出你需要的插件段落telegraf config --input-filter cpu:mem --output-filter file最小可用配置长什么样一个能启动的配置只需要三行至少一个输入、一个输出docs/QUICK_START.md[[inputs.cpu]] [[inputs.mem]] [[outputs.file]][[outputs.file]]的默认值是把指标写到stdout和/tmp/metrics.out见 plugins/outputs/file/sample.confstdout 输出到容器日志正好用来肉眼验证数据流。Docker 启动三步验证指标真的在流动拉镜像docker pull telegraf生成配置docker run --rm telegraf config telegraf.conf删掉不需要的插件段保留上面的最小三段挂载配置启动docker run --rm \ --volume $PWD/telegraf.conf:/etc/telegraf/telegraf.conf \ telegraf启动日志会先打印加载的配置路径、版本和已加载插件几秒后 stdout 开始输出 InfluxDB 行协议格式的指标如cpu,hostxxx,cpucpu0 usage_system...。看到这一行采集链路就算通了。踩坑处理锁内存告警与 --unprotectedDocker 部署中最常见的告警是W! Insufficient lockable memory 64kb when 72kb is required原因是 Telegraf 默认把密钥保存在锁定内存中而容器内默认的可锁定内存memlock配额往往不够。两种处理方式docs/DOCKER.md推荐启动时用--ulimit提高配额docker run --rm --ulimit memlock8192:8192 \ --volume $PWD/telegraf.conf:/etc/telegraf/telegraf.conf telegraf备选给容器追加--unprotected参数放弃内存锁定。密钥可能随页面交换写入磁盘安全性降低仅建议在测试环境使用。如果告警升级成panic: could not acquire lock ... limit reached?导致容器退出按同样方式处理即可。部署到 Kuberneteskubernetes 插件为什么要求 DaemonSetTelegraf 的 kubernetes 插件 通过 kubelet API 读取每个节点上 Pod 与容器的指标。插件官方说明明确要求它必须作为 DaemonSet 运行在集群的每个节点上并且 URL 指向本节点的 kubelet[[inputs.kubernetes]] url http://127.0.0.1:10255 bearer_token /var/run/secrets/kubernetes.io/serviceaccount/token对应的部署骨架是一个 DaemonSet 加一个 ConfigMap 卷kind: DaemonSet spec: template: spec: containers: - name: telegraf image: telegraf两个容易忽略的点高基数警告该插件会按 Pod 维度产出大量标签组合官方 README 明确提示要先做指标过滤否则会给数据库带来高基数压力。过滤配置见 docs/CONFIGURATION.md 的 Metric filtering 一节。敏感信息走环境变量配置里可用${VAR}引用环境变量字符串需带引号把输出地址、Token 等通过 K8s Secret 注入避免写死在 ConfigMap 里。按需调整过滤指标与自监控跑通之后再考虑三件事减少数据量用namepass/tagpass等过滤选项只保留关心的指标与标签规则在 docs/CONFIGURATION.md 中有完整说明。监控 Telegraf 自身启用[[inputs.internal]]并打开collect_memstats true可采集其内存与 goroutine 指标。拆分配置用--config-directory指向一个目录目录内所有.conf文件都会被合并加载适合按插件逐个拆文件管理主配置默认位置是/etc/telegraf/telegraf.conf。到这里单机验证和集群部署两条路径都走完了。下一步建议阅读 docs/CONFIGURATION.md 了解全局标签与插件排序以及 docs/DOCKER.md 中的 Nightly 镜像与镜像构建细节。【免费下载链接】telegrafAgent for collecting, processing, aggregating, and writing metrics, logs, and other arbitrary data.项目地址: https://gitcode.com/GitHub_Trending/te/telegraf创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

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

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

免费获取报价