摘要:系统运维 zabbix自动发现监控tomcat健康页面一、背景 公司系统平台有10几个tomcat服务,由于需要服务保持全年无间断服务,特在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 <<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、监控脚本如下图所示
1、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 \'\\tdata:[\\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 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配置文件监控项目
1、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 #此项打开 1、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服务状态,部署完毕
相关文章推荐
虚拟主机的专业参数,分别都是什么意思?2022-09-09
中非域名注册规则是怎样的?注册域名有什么用处? 2022-01-10
HostEase新年活动促销 美国/香港主机全场低至五折2021-12-28
HostGator下载完整备份教程分享2021-12-28
Flink中有界数据与无界数据的示例分析2021-12-28