通过Telegraf执行ping监控

Telegraf自带的 [[inputs.ping]] 插件可以实现ping功能监控

1、编辑Telegraf配置文件telegraf.conf,找到 [[inputs.ping]] 插件位置,修改内容如下:

说明:

  • urls:可写一个IP或者多个IP,telegraf会对这些IP发起ping探测
  • method:有两个取值,一个是exec,表示调用本机ping命令,一个是native,表示用Telegraf进程直接发icmp包,建议使用native
  • deadline:表示整体超时时间,建议设置为2s

2、重启telegraf,查看监控指标,如图:

注:聚合维度位置不要选择,即可看到ping的IP地址与结果,如图:

上图中,result_code的结果都为0,表示正常,如果非0,则是异常,可根据此结果值做告警判断

注意:如果ping监控的目标很多,会占用网络连接句柄,因此需要调大ulimit限制,如果telegraf通过systemd托管,可调整托管文件,内容如下:

通过如下命令查看ulimit,/proc/进程号/limits,如图:

如果method是native,Telegraf这个进程本身就会直接发送icmp包,在大多数系统上,需要进程具备CAP_NET_RAW的能力,可以在systemd的配置中增加如下内容:

[Service]
CapabilityBoundingSet=CAP_NET_RAW    #能力边界集,允许使用原始(raw)套接字
AmbientCapabilities=CAP_NET_RAW

标签