在使用Zabbix监控网络主机丢包率的时候在Zabbix中有自带模版ping,当有些情况我们并不能直接使用或者不合适我们环境,这时候就需要我们手动写一个Agent
[root@office-test-op-monitor-01 zabbix_agentd.d]# more /etc/zabbix/zabbix_agentd.d/bin/ping.sh
#!/bin/bash
#lost in % or rtt (ms)
case $2 in
lost)
lost=`ping -q -c 10 -W 1 $1|grep 'loss'|awk -F'%' '{print $1}'|awk '{print $NF}'`
echo $lost
;;
rtt)
rtt=`ping -q -c 10 -W 1 $1 |grep rtt |awk -F '/' '{print $5}'`
echo $rtt
;;
esac
调用ping.sh脚本($1是我们要ping的主机或者ip地址$2是定义lost)
[root@office-test-op-monitor-01 zabbix_agentd.d]# more /etc/zabbix/zabbix_agentd.d/ping.conf
UserParameter=ping[*],/etc/zabbix/zabbix_agentd.d/bin/ping.sh $1 $
Shell中直接执行命令
[root@office-test-op-monitor-01 zabbix_agentd.d]# /etc/zabbix/zabbix_agentd.d/bin/ping.sh www.baidu.com lost
0
[root@office-test-op-monitor-01 zabbix_agentd.d]# systemctl restart zabbix_agentd
Zabbix前台调用
Zabbix触发器构建
注:说一下我的环境,本地办公网络ipsec连接阿里云,阿里云ecs部署Zabbix Server监控本地办公网络一台Centos主机,Centos主机连接香港open***,故ping lost脚本在这监控香港服务器!