在使用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脚本在这监控香港服务器!