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 @   海口-熟练工  阅读(2617)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示