需要知道某個重要的ip或者網站響應時間以及ping包的丢包率,這就可以用到Zabbix的Template Module ICMP Ping子產品來監控
背景
日常運維過程中,需要知道某個重要的ip或者網站響應時間以及ping包的丢包率,這就可以用到Zabbix的Template Module ICMP Ping子產品來監控,需要監控多個第三方的ip位址,一個個去添加我是拒絕的,是以有了這篇文章。
Zabbix 簡單檢查
https://www.zabbix.com/documentation/current/zh/manual/config/items/itemtypes/simple_checks。
簡單檢查通常用于檢查遠端未安裝Zabbix agent的服務。
用到的是 fping 。這個沒有内置,需要自己安裝下
apt install fping -y
自動發現腳本
#!/bin/bash
# function:monitor tcp connect status from zabbix
web_ip_discovery () {
WEB_IP=($(cat /etc/zabbix/alertscripts/webip.txt|grep -v "^#"))
printf '{\n'
printf '\t"data":[\n'
for((i=0;i<${#WEB_IP[@]};++i))
{
num=$(echo $((${#WEB_IP[@]}-1)))
if [ "$i" != ${num} ];
then
printf "\t\t{ \n"
printf "\t\t\t\"{#SITENAME}\":\"${WEB_IP[$i]}\"},\n"
else
printf "\t\t{ \n"
printf "\t\t\t\"{#SITENAME}\":\"${WEB_IP[$num]}\"}]}\n"
fi
}
}
web_site_code () {
ip=`echo $1|awk -F ':' '{print $1}'`
#echo $ip
/usr/bin/fping ${ip}|grep -c 'alive'
}
case "$1" in
web_ip_discovery)
web_ip_discovery
;;
web_site_code)
web_site_code $2
;;
*)
echo "Usage:$0 {web_ip_discovery|web_site_code [URL]}"
;;
esac
要監控的檔案記錄
root@zabbix-server:/etc/zabbix/alertscripts# cat /etc/zabbix/alertscripts/webip.txt
1.1.1.1:xx
2.2.2.2:yy
zabbix 用戶端配置
root@zabbix-server:/etc/zabbix/zabbix_agentd.d# cat /etc/zabbix/zabbix_agentd.d/web_ip_discovery.conf
UserParameter=web.ip.discovery,/etc/zabbix/alertscripts/webip_status.sh web_ip_discovery
UserParameter=web.ip.code[*],/etc/zabbix/alertscripts/webip_status.sh web_site_code $1
重新開機zabbix
systemctl restart zabbix-server zabbix-agent apache2
Zabbix 配置
配置 --> 主機 --> 建立主機
建立自動發現規則
建立監控項
建立觸發器