1. 程式人生 > 實用技巧 >zabbix自動發現監控tomcat健康頁面

zabbix自動發現監控tomcat健康頁面

zabbix自動發現監控tomcat健康頁面

一、背景

公司系統平臺有10幾個tomcat服務,由於需要服務保持全年無間斷服務,特在tomcat中嵌入專門的監控頁面,在curl 專用頁面返回值為200時,則認定服務正常執行,否則報警傳送專門的監控運維的郵箱。

二、原理

正常的tomcat健康狀態監控頁面如下圖

wKiom1nIVAvTnU-YAABVk1f5aH4822.png

我們利用如下命令判斷返回值是否為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:monitortcpconnectstatusfromzabbix

source/etc/bashrc>/dev/null2>&1
source/etc/profile>/dev/null2>&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-timeout5-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
EOF

3、增加zabbix配置檔案監控專案

1、[email protected]: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.shweb_site_discovery
UserParameter=web.site.code[*],/bin/bash/etc/zabbix/scripts/web_site_code_status.shweb_site_code$1
EOF
#/bin/bash此項必須要加上,不然有可能找不到命令,導致指令碼命令無法被zabbix-agent呼叫

4、增加自動發現模板

模板詳見附件

直接在模板裡匯入附件模板

啟動zabbix-agent

會在被監控主機的觸發器中發現我們需要監控的tomcatwKiom1nIXSai4SalAAG19aOztDg748.png

停止6003埠的服務,我們會發現如下圖所示報警

wKioL1nIXdLwLCujAAAa0tTIw-M734.png

然後啟動6003服務後,服務監控正常

至此自動發現tomcat服務狀態,部署完畢

轉載於:https://blog.51cto.com/412166174/1968322