千家信息网

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

发表于:2024-11-26 作者:千家信息网编辑
千家信息网最后更新 2024年11月26日,zabbix自动发现监控tomcat健康页面一、背景公司系统平台有10几个tomcat服务,由于需要服务保持全年无间断服务,特在tomcat中嵌入专门的监控页面,在curl 专用页面返回值为200时,
千家信息网最后更新 2024年11月26日zabbix自动发现监控tomcat健康页面

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

一、背景

公司系统平台有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

如下内容

1、cat >/etc/zabbix/WEB.txt <

2、监控脚本如下图所示

1、cat >/etc/zabbix/scripts/web_site_code_status.sh </dev/null 2>&1source /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" inweb_site_discovery)web_site_discovery;;web_site_code)web_site_code $2;;*)echo "Usage:$0 {web_site_discovery|web_site_code [URL]}" ;;esacEOF

3、增加zabbix配置文件监控项目

1、root@DL-test2:zabbix# grep '^[a-Z]' zabbix_agentd.conf PidFile=/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 <

4、增加自动发现模板

模板详见附件

直接在模板里导入附件模板

启动zabbix-agent

会在被监控主机的触发器中发现我们需要监控的tomcat

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

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

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

附件:http://down.51cto.com/data/2367009
0