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

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

1、背景shell

    公司系統平臺有10幾個tomcat服務,因爲須要服務保持整年無間斷服務,特在tomcat中嵌入專門的監控頁面,在curl 專用頁面返回值爲200時,則認定服務正常運行,不然報警發送專門的監控運維的郵箱。tomcat

2、原理bash

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

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
curl

假若返回值不爲200,則判定服務異常,報警tcp

3、具體自動發現操做部署以下ide

一、首先定義須要監控自動發現的tomcat的URLurl

以下內容

一、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

二、監控腳本以下圖所示

一、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
EOF

三、增長zabbix配置文件監控項目

一、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  #此項打開

一、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調用

四、增長自動發現模板

模板詳見附件

直接在模板裏導入附件模板

啓動zabbix-agent

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

中止6003端口的服務,咱們會發現以下圖所示報警

wKioL1nIXdLwLCujAAAa0tTIw-M734.png

而後啓動6003服務後,服務監控正常

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

相關文章
相關標籤/搜索