zabbix 6.0 使用 fping 批量监控 ip 地址

背景

日常运维过程中,需要知道某个重要的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 配置

配置 --> 主机 --> 新建主机

新建自动发现规则

新建监控项

新建触发器
image

完成

posted @ 2022-06-07 15:35  海口-熟练工  阅读(2462)  评论(0编辑  收藏  举报