八:web批量監控配置web
1.編寫插件腳本vim
cat zone.sh bash
#!/bin/bashcurl
a=`cat /usr/lib/zabbix/externalscripts/WEB.txt`tcp
for i in $aide
dourl
b=`/usr/bin/curl -o /dev/null -s -w %{http_code} http://$i`spa
echo $i/$b插件
donecode
2.編寫腳本
vim web_site_code_status.sh
#!/bin/bash
# function:monitor tcp connect status from zabbix
source /etc/bashrc >/dev/null 2>&1
source /etc/profile >/dev/null 2>&1
#/usr/bin/curl -o /dev/null -s -w %{http_code} http://$1/
web_site_discovery () {
WEB_SITE=($(cat /usr/lib/zabbix/externalscripts/WEB.txt|grep -v "^#"))
printf '{\n'
printf '\t"data":[\n'
for((i=0;i<${#WEB_SITE[@]};++i))
{
num=$(echo $((${#WEB_SITE[@]}-1)))
if [ "$i" != ${num} ];
then
printf "\t\t{ \n"
printf "\t\t\t\"{#SITENAME}\":\"${WEB_SITE[$i]}\"},\n"
else
printf "\t\t{ \n"
printf "\t\t\t\"{#SITENAME}\":\"${WEB_SITE[$num]}\"}]}\n"
fi
}
}
web_site_code () {
#/usr/bin/curl -o /dev/null --connect-timeout 10 -s -w %{http_code} http://$1 #肯定好http仍是https
for n in `cat /usr/lib/zabbix/externalscripts/result.txt`
do
if [ $1 == `echo $n | awk -F '/' '{print $1}'` ];then
echo `echo $n | awk -F '/' '{print $2}'`
fi
done
}
case "$1" in
web_site_discovery)
web_site_discovery
;;
web_site_code)
web_site_code $2
;;
*)
echo "Usage:$0 {web_site_discovery|web_site_code [URL]}"
;;
esac
配置WEB.txt
域名:port
Zabbix客戶端配置文件加入下列配置
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
/data/usr/local/zabbix/scripts 爲配置腳本的目錄
書寫啓動任務
*/2 * * * * /usr/lib/zabbix/externalscripts/zone.sh > /usr/lib/zabbix/externalscripts/result.txt
2.配置zabbix網頁
在自動發現裏面建立條目
在自動發現裏面建立觸發器
建立兩條不一樣觸發器
在自動發現裏面建立圖形
3. 驗證