對公司的jira訪問狀態進行監控,當訪問狀態返回值是200的時候,指令碼執行結果為1;其他訪問狀態返回值,指令碼執行結果是0。然後將該指令碼放在zabbix進行監控,當非200狀態時發出報警。
jira訪問狀態的監控指令碼為:
在jira部署機(比如是192.168.1.21)的zabbix監控指令碼目錄下編寫監控指令碼(jira的埠為8080): [root@jira ~]# cd /data/zabbix/monitor_scripts/ [root@jira monitor_scripts]# cat jira.sh #!/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin TomcatID=$(ps -ef | grep tomcat|grep -w 'jira'|grep -v grep|awk '{print $2}') StartTomcat=/home/jira/bin/start-jira.sh TomcatCache=/home/jira/work #WebUrl="http://127.0.0.1:8080/secure/Dashboard.jspa" WebUrl="http://127.0.0.1:8080" #GetPageInfo=/tmp/TomcatMonitor.Info #TomcatMonitorLog=/tmp/TomcatMonitor.log Monitor() { if [ $TomcatID ];then TomcatServiceCode=$(curl -Is --connect-timeout 5 $WebUrl|grep "HTTP/1.1"|awk '{print $2}' ) if [ $TomcatServiceCode -eq 200 ];then echo "1" else echo "0" #echo "[error]頁面訪問出錯,開始重啟tomcat" #kill -9 $TomcatID #sleep 3 #rm -rf $TomcatCache #$StartTomcat fi else echo "[error]tomcat程式不存在!tomcat開始自動重啟..." #echo "[info]$StartTomcat,請稍候......" #rm -rf $TomcatCache #$StartTomcat fi } Monitor 檢視jira是否啟動 [root@jira monitor_scripts]# lsof -i:8080 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME java 185656 root 70u IPv6 17130649 0t0 TCP *:webcache (LISTEN) java 185656 root 99r IPv6 17325465 0t0 TCP 192.168.1.21:59110->192.168.1.21:webcache (ESTABLISHED) java 185656 root 105r IPv6 17325461 0t0 TCP 192.168.1.21:59106->192.168.1.21:webcache (ESTABLISHED) [root@jira monitor_scripts]# sh jira.sh 1 [root@jira monitor_scripts]# cd ../etc/zabbix_agentd.conf.d/ [root@jira zabbix_agentd.conf.d]# cat jira.conf UserParameter=jira_code,/bin/bash /data/zabbix/monitor_scripts/jira.sh 然後在zabbix的服務端進行測試(如下,必須要返回正確結果,否則無效的鍵值,在zabbix裡新增items也是無效!): 重點是通過zabbix_get獲取jira_code的值,這個鍵值在zabbix新增items監控項的時候要填寫正確 [root@zabbix ~]# /data/zabbix/bin/zabbix_get -s 192.168.1.21 -k jira_code 1
然後登入zabbix,找到jira的部署主機,在jira主機的items裡新增監控項:
接著新增trigger觸發器。當該指令碼執行結果為0的時候觸發。
然後新增“動作”報警
這樣,當jira主機的這個監控指令碼執行結果為0的時候,就會觸發這個動作,然後就會發出報警郵件或簡訊了。
也可以對這個監控項繪製監控圖形。在jira主機的"圖形”裡新增圖形