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 配置
配置 --> 主机 --> 新建主机
新建自动发现规则
新建监控项
新建触发器
完成