对公司的jira访问状态进行监控,当访问状态返回值是200的时候,脚本执行结果为1;其余访问状态返回值,脚本执行结果是0。而后将该脚本放在zabbix进行监控,当非200状态时发出报警。
jira访问状态的监控脚本为:java
在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里添加监控项:web
接着添加trigger触发器。当该脚本执行结果为0的时候触发。tomcat
而后添加“动做”报警bash
这样,当jira主机的这个监控脚本执行结果为0的时候,就会触发这个动做,而后就会发出报警邮件或短信了。curl
也能够对这个监控项绘制监控图形。在jira主机的"图形”里添加图形jsp