1. 程式人生 > >zabbix3.2使用fping批量監控ip的連通性

zabbix3.2使用fping批量監控ip的連通性

monit discover value 好的 分享 roo agent not agen

1.在zabbix-agent端安裝fping

wget http://www.fping.org/dist/fping-3.16.tar.gz

tar zxvf fping-3.16.tar.gz

cd fping-3.16

./configure --prefix=/usr/local/fping/

make && make install


2.編寫自動發現腳本

[root@eus_dlcbs_web01:/usr/local/zabbix_agents_3.2.0/scripts]# cat webip_status.sh 
#!/bin/bash 
# 
function:monitor tcp connect status from zabbix web_ip_discovery () { WEB_IP=($(cat /usr/local/zabbix_agents_3.2.0/scripts/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 () {
/usr/local/fping/sbin/fping $1|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 3.配置編寫 vim /usr/local/zabbix_agents_3.2.0/conf/zabbix_agentd/web_ip_discovery.conf UserParameter=web.ip.discovery,/usr/local/zabbix_agents_3.2.0/scripts/webip_status.sh web_ip_discovery UserParameter=web.ip.code[*],/usr/local/zabbix_agents_3.2.0/scripts/webip_status.sh web_site_code $1 [root@eus_dlcbs_web01:/usr/local/zabbix_agents_3.2.0/scripts]# cat webip.txt 1.1.1.1 2.2.2.2 觸發器: web.ip.code {#SITENAME} is not alive # 最近5個取值最大值不為1 {ip_monitor:web.ip.code[{#SITENAME},].max(#5)}<>1 報錯處理: Received value [/usr/local/fping/sbin/fping: cant create socket (must run as root?) : Permission denied0] is not suitable for value type [Numeric (unsigned)] and data type [Decimal] (這裏遇到一個問題,在客戶端自測腳本是好的,但是到了服務端怎麽樣都執行不出來fping,因為fping必須由root執行,如果非root會報錯,這是權限問題,chmod u+s /usr/local/fping/sbin/fping 就可以解決這個問題。) [root@eus_dlcbs_web01:/usr/local/zabbix_agents_3.2.0/scripts]# ll /usr/local/fping/sbin/fping -rwxr-xr-x 1 root root 87700 Sep 11 20:54 /usr/local/fping/sbin/fping [root@eus_dlcbs_web01:/usr/local/zabbix_agents_3.2.0/scripts]# chmod u+s /usr/local/fping/sbin/fping [root@eus_dlcbs_web01:/usr/local/zabbix_agents_3.2.0/scripts]# ll /usr/local/fping/sbin/fping -rwsr-xr-x 1 root root 87700 Sep 11 20:54 /usr/local/fping/sbin/fping # 觸發報警的時候由於只是顯示IP,這樣不能快速知道是哪臺服務器出了問題,所以帶上主機名,如下 # 自動發現腳本 [root@eus_dlcbs_web01:/usr/local/zabbix_agents_3.2.0/scripts]# cat webip_status.sh #!/bin/bash # function:monitor tcp connect status from zabbix web_ip_discovery () { WEB_IP=($(cat /usr/local/zabbix_agents_3.2.0/scripts/ips.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/local/fping/sbin/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 # webip.txt 1.1.1.1:cbs_web01 2.2.2.2:cbs_web02

自動發現配置

技術分享圖片

技術分享圖片

技術分享圖片

zabbix3.2使用fping批量監控ip的連通性