这一次,介绍exec、net、netstat这三个input plugin,exec是用于执行脚本的,老版本的夜莺里有个监控插件功能,Telegraf用exec插件来实现类似功能;net就是网络相关的监控指标,主要是网卡流量之类的,netstat就是各种网络连接的统计。
exec
exec采集插件的配置如下,我这里给一个样例:
# # Read metrics from one or more commands that can output to stdout[[inputs.exec]]## Commands arraycommands = ["/opt/telegraf/scripts/collect_*"]## Timeout for each command to complete.timeout = "9s"## ## measurement name suffix (for separating different commands)# name_suffix = "_mycollector"## ## Data format to consume.# ## Each data format has its own unique set of configuration options, read# ## more about them here:# ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_INPUT.mddata_format = "influx"
这里主要修改了commands、timeout、data_format三个参数,commands是脚本列表,支持通配符,这里我会把所有监控插件脚本统一以collect_作为文件名前缀,放在/opt/telegraf/scripts目录下,便于管理。
timeout默认是5s,这里改的长一点,改成9s,防止有些脚本执行时间太长。data_format支持很多种不同的格式,个人认为influx格式已经非常方便,其他的格式暂且不用了解。
之前的文章中讲到用promql来处理diskio相关的指标,这里给一种新方案,直接用脚本采集iostat输出,用exec这个插件来搞,脚本名称collect_iostat.sh,内容如下:
#!/bin/bashwhile read -r device read_queued_sec write_queued_sec read_completed_sec write_completed_sec read_kbytes_sec write_kbytes_sec avg_sector_size avg_queue_len await_ms read_await_ms write_await_ms svctime_ms util_pct; do[ ! -z "$device" ] &

本文介绍了Telegraf的exec、net和netstat输入插件的使用。exec插件用于执行脚本收集监控数据,例如通过iostat脚本采集磁盘I/O指标。net插件默认不开启,配置后可收集网络接口的使用情况,如流量和错误统计。netstat插件则用于获取TCP连接状态,如建立、等待和关闭等。此外,还讨论了如何自定义脚本来替代netstat,以更高效地获取网络连接信息。
最低0.47元/天 解锁文章
2114

被折叠的 条评论
为什么被折叠?



