天天看點

zabbix 6.0 使用 fping 批量監控 ip 位址

需要知道某個重要的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 配置

配置 --> 主機 --> 建立主機

zabbix 6.0 使用 fping 批量監控 ip 位址

建立自動發現規則

zabbix 6.0 使用 fping 批量監控 ip 位址

建立監控項

zabbix 6.0 使用 fping 批量監控 ip 位址

建立觸發器

zabbix 6.0 使用 fping 批量監控 ip 位址