zabbix自动发现监控tomcat健康页面

文章目录

[隐藏]

  • 一、背景
  • 二、原理
  • 三、具体自动发现操作部署如下
    • 1、首先定义需要监控自动发现的tomcat的URL
    • 2、监控脚本如下所示
    • 3、增加zabbix配置文件监控项目
    • 4、增加自动发现模板
一、背景

公司系统平台有10几个tomcat服务,由于需要服务保持全年无间断服务,特在tomcat中嵌入专门的监控页面,在curl 专用页面返回值为200时,则认定服务正常运行,否则报警发送专门的监控运维的邮箱。

二、原理

正常的tomcat健康状态监控页面如下图

我们利用如下命令判断返回值是否为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

如下内容

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、监控脚本如下所示

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 "tt{ n"          printf "ttt"{#SITENAME}":"${WEB_SITE[$i]}"},n"                  else                          printf  "tt{ n"                          printf  "ttt"{#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  

3、增加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调用  

4、增加自动发现模板

模板详见附件
直接在模板里导入附件模板
启动zabbix-agent
会在被监控主机的触发器中发现我们需要监控的tomcat

停止6003端口的服务,我们会发现如下图所示报警

然后启动6003服务后,服务监控正常。

至此自动发现tomcat服务状态,部署完毕。

原文出处:51cto -> http://412166174.blog.51cto.com/3102369/1968322

本站所发布的一切资源仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如果侵犯你的利益,请发送邮箱到 [email protected],我们会很快的为您处理。