系統(tǒng)運維
zabbix自動發(fā)現(xiàn)監(jiān)控tomcat健康頁面
一、背景
公司系統(tǒng)平臺有10幾個tomcat服務,由于需要服務保持全年無間斷服務,特在tomcat中嵌入專門的監(jiān)控頁面,在curl 專用頁面返回值為200時,則認定服務正常運行,否則報警發(fā)送專門的監(jiān)控運維的郵箱。
二、原理
正常的tomcat健康狀態(tài)監(jiān)控頁面如下圖
我們利用如下命令判斷返回值是否為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,則斷定服務異常,報警
三、具體自動發(fā)現(xiàn)操作部署如下
1、首先定義需要監(jiān)控自動發(fā)現(xiàn)的tomcat的url
如下內(nèi)容
1、cat>/etc/zabbix/web.txt<<eof10.0.0.107:9000/sms-admin/health10.0.0.107:9100/sms-app/health10.0.0.107:9090/auditserver/health10.0.0.107:7711/pushcontrol/health10.0.0.107:7700/sendservice/health10.0.0.107:6003/pa/health10.0.0.107:8513/sms/health10.0.0.107:7712/pushcontrol/health10.0.0.107:7725/reply-server/health10.0.0.107:2222/mdnserver/healtheof2、監(jiān)控腳本如下圖所示
1、cat>/etc/zabbix/scripts/web_site_code_status.sh<<eof#!/bin/bash#function:monitortcpconnectstatusfromzabbixsource/etc/bashrc>/dev/null2>&1source/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\\\'\\\\tdata:[\\\\n\\\'for((i=0;i<${#web_site[@]}; i)){num=$(echo$((${#web_site[@]}-1)))if[$i!=${num}];thenprintf\\\\t\\\\t{\\\\nprintf\\\\t\\\\t\\\\t\\\\{#sitename}\\\\:\\\\${web_site[$i]}\\\\},\\\\nelseprintf\\\\t\\\\t{\\\\nprintf\\\\t\\\\t\\\\t\\\\{#sitename}\\\\:\\\\${web_site[$num]}\\\\}]}\\\\nfi}}web_site_code(){/usr/bin/curl-o/dev/null-s--connect-timeout5-w\\\'%{http_code}\\\'$1}case$1inweb_site_discovery)web_site_discovery;;web_site_code)web_site_code$2;;*)echousage:$0{web_site_discovery|web_site_code[url]};;esaceof3、增加zabbix配置文件監(jiān)控項目
1、root@dl-test2:zabbix#grep\\\'^[a-z]\\\'zabbix_agentd.confpidfile=/var/run/zabbix/zabbix_agentd.pidlogfile=/var/log/zabbix/zabbix_agentd.loglogfilesize=0server=10.0.0.113serveractive=10.0.0.113hostname=dl-test2include=/etc/zabbix/zabbix_agentd.d/*.conf#此項打開1、cat>/etc/zabbix/zabbix_agentd.d/web_site_discovery.conf<<eofuserparameter=web.site.discovery,/bin/bash/etc/zabbix/scripts/web_site_code_status.shweb_site_discoveryuserparameter=web.site.code[*],/bin/bash/etc/zabbix/scripts/web_site_code_status.shweb_site_code$1eof#/bin/bash此項必須要加上,不然有可能找不到命令,導致腳本命令無法被zabbix-agent調(diào)用4、增加自動發(fā)現(xiàn)模板
模板詳見附件
直接在模板里導入附件模板
啟動zabbix-agent
會在被監(jiān)控主機的觸發(fā)器中發(fā)現(xiàn)我們需要監(jiān)控的tomcat
停止6003端口的服務,我們會發(fā)現(xiàn)如下圖所示報警
然后啟動6003服務后,服務監(jiān)控正常
至此自動發(fā)現(xiàn)tomcat服務狀態(tài),部署完畢
附件:http://down.51cto.com/data/2367009