zabbix自動發現功能實現批量web url監控


需求:

    現在有大量url需要監控,形式如http://www.baidu.com ,要求url狀態不為200即報警。

需求詳細分析:

    大量的url,且url經常變化,現在監控用的是zabbix,如果手動添加模板,會造成大量重復工作,如果利用腳本+mail,無法圖形呈現

解決方案:

zabbix有discovery功能,即可輕松解決此問題

首先我們找一個隨便找一個zabbix客戶端來實現接下來要做的功能

首先我們從頭來,我們來裝一下zabbix客戶端

[root@test_ha_nginx ~]# yum install -y gcc gcc-c++ make pcre* openssl* cmake ncurses-devel gd-devel libjpeg-devel libpng-devel libxml2-devel bzip2-devel libcurl-devel
[root@test_ha_nginx src]# tar -xf zabbix-3.0.3.tar.gz 
[root@test_ha_nginx src]# cd zabbix-3.0.3
[root@test_ha_nginx zabbix-3.0.3]# ./configure   --prefix=/data/usr/local/zabbix  --enable-agent
[root@test_ha_nginx zabbix-3.0.3]# make && make install
[root@test_ha_nginx zabbix-3.0.3]# groupadd zabbix
[root@test_ha_nginx zabbix-3.0.3]# useradd zabbix -g zabbix
[root@test_ha_nginx init.d]# /etc/init.d/zabbix_agentd restart
[root@test_ha_nginx scripts]# pwd
/data/usr/local/zabbix/scripts
[root@test_ha_nginx scripts]# vim web_site_code_status.sh 

 腳本內容為:

 1 #!/bin/bash 
 2 # function:monitor tcp connect status from zabbix 
 3  
 4 source /etc/bashrc >/dev/null 2>&1 
 5 source /etc/profile  >/dev/null 2>&1 
 6 #/usr/bin/curl -o /dev/null -s -w %{http_code} http://$1/ 
 7  
 8 web_site_discovery () { 
 9 WEB_SITE=($(cat  /data/usr/local/zabbix/sbin/WEB.txt|grep -v "^#")) 
10         printf '{\n' 
11         printf '\t"data":[\n' 
12 for((i=0;i<${#WEB_SITE[@]};++i)) 
13 { 
14 num=$(echo $((${#WEB_SITE[@]}-1))) 
15         if [ "$i" != ${num} ]; 
16                 then 
17         printf "\t\t{ \n" 
18         printf "\t\t\t\"{#SITENAME}\":\"${WEB_SITE[$i]}\"},\n" 
19                 else 
20                         printf  "\t\t{ \n" 
21                         printf  "\t\t\t\"{#SITENAME}\":\"${WEB_SITE[$num]}\"}]}\n" 
22         fi 
23 } 
24 } 
25  
26 web_site_code () { 
27 /usr/bin/curl -o /dev/null -s -w %{http_code} https://$1 
28 } 
29  
30 case "$1" in 
31 web_site_discovery) 
32 web_site_discovery 
33 ;;
34 web_site_code) 
35 web_site_code $2 
36 ;; 
37 *) 
38  
39 echo "Usage:$0 {web_site_discovery|web_site_code [URL]}" 
40 ;; 
41 esac
View Code

[root@test_ha_nginx scripts]# chmod a+x web_site_code_status.sh

 

2.創建WEB.txt文件

[root@test_ha_nginx sbin]# pwd
/data/usr/local/zabbix/sbin

 

3.客戶端配置文件添加以下幾行內容

[root@10-19-6-138 etc]# cat zabbix_agentd.conf | grep -v "^$" | grep -v "^#"
LogFile=/tmp/zabbix_agentd.log
Server=123.20.20.20
ServerActive=123.20.20.20
Hostname=test_web_174
##新加入以下內容
Include=/data/usr/local/zabbix/etc/zabbix_agentd.conf.d/*
UnsafeUserParameters=1
UserParameter=web.site.discovery,/data/usr/local/zabbix/scripts/web_site_code_status.sh web_site_discovery  
UserParameter=web.site.code[*],/data/usr/local/zabbix/scripts/web_site_code_status.sh web_site_code $1

4.現在我們重啟一下客戶端,然后在服務端測試一下

 

我們發現我們是能夠測試成功的

此時返回狀態為200

至此,腳本,客戶端配置文件OK

接下來要做的就是zabbix 服務端的配置了

創建應用集

 

點擊add

然后去創建發現規則

 

 

現在開始創建item

 

接下來要做的就是創建trigger報警了

 

 

 

 

這里需要注意的是,web.txt中的URL地址要是寫錯了的話,這邊會一直報警,就算你給他改成正確的,我這邊還是在報哪個錯誤的URL地址的警

這里的解決方法就是

到該主機監控項下面,把那個錯誤的監控項給停了

文章摘自:http://itnihao.blog.51cto.com/1741976/1129725

參考文檔:https://www.zabbix.com/documentation/2.0/manual/discovery/low_level_discovery

此外,還可以參考我寫的文檔:http://code.google.com/p/auto-task-pe/downloads/list  zabbix自動發現監控http端口.pdf   如遇到問題,請先仔細閱讀這2個文檔

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM