zabbix自動發現監控tomcat健康頁面
一、背景
公司系統平臺有10幾個tomcat服務,由于需要服務保持全年無間斷服務,特在tomcat中嵌入專門的監控頁面,在curl 專用頁面返回值為200時,則認定服務正常運行,否則報警發送專門的監控運維的郵箱。
二、原理
正常的tomcat健康狀態監控頁面如下圖

我們利用如下命令判斷返回值是否為200
shell>/usr/bin/curl -o /dev/null -s --connect-timeout 5 -w '%{http_code}' http://10.0.0.107:9100/sms-app/health
倘若返回值不為200,則斷定服務異常,報警
三、具體自動發現操作部署如下
1、首先定義需要監控自動發現的tomcat的URL
如下內容
1、cat >/etc/zabbix/WEB.txt <<EOF 10.0.0.107:9000/sms-admin/health 10.0.0.107:9100/sms-app/health 10.0.0.107:9090/auditServer/health 10.0.0.107:7711/pushControl/health 10.0.0.107:7700/sendService/health 10.0.0.107:6003/pa/health 10.0.0.107:8513/sms/health 10.0.0.107:7712/pushControl/health 10.0.0.107:7725/reply-server/health 10.0.0.107:2222/mdnServer/health EOF
2、監控腳本如下圖所示
1、cat >/etc/zabbix/scripts/web_site_code_status.sh <<EOF
#!/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 /etc/zabbix/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 -s --connect-timeout 5 -w '%{http_code}' $1
}
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
EOF3、增加zabbix配置文件監控項目
1、root@DL-test2:zabbix# grep '^[a-Z]' zabbix_agentd.conf PidFile=/var/run/zabbix/zabbix_agentd.pid LogFile=/var/log/zabbix/zabbix_agentd.log LogFileSize=0 Server=10.0.0.113 ServerActive=10.0.0.113 Hostname=DL-test2 Include=/etc/zabbix/zabbix_agentd.d/*.conf #此項打開 1、cat >/etc/zabbix/zabbix_agentd.d/web_site_discovery.conf <<EOF UserParameter=web.site.discovery,/bin/bash /etc/zabbix/scripts/web_site_code_status.sh web_site_discovery UserParameter=web.site.code[*],/bin/bash /etc/zabbix/scripts/web_site_code_status.sh web_site_code $1 EOF #/bin/bash 此項必須要加上,不然有可能找不到命令,導致腳本命令無法被zabbix-agent調用
4、增加自動發現模板
模板詳見附件
直接在模板里導入附件模板
啟動zabbix-agent
會在被監控主機的觸發器中發現我們需要監控的tomcat
停止6003端口的服務,我們會發現如下圖所示報警

然后啟動6003服務后,服務監控正常
至此自動發現tomcat服務狀態,部署完畢
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。