网站首页 > 开源技术 正文
概述
zabbix监控tomcat只有一个zabbix-java-gateway,可以部署在zabbix-sever端也可以部署在其他机器上,需要和zabbix-server网络可达。
数了下目前生产的用不同的tomcat端口大概有30个,如果用一个tomcat端口对应一个Tomcat模板那我得整几十个,每个模板对应监控项和触发器也得改,想了想还是放弃了,自己写个脚本来做吧!
考虑到一台应用服务器上最多两个需要监控的tomcat,分别设定tomcat监控模板(12345)和tomcat监控模板(12346),如果一台服务器上有2个需要监控的tomcat,则添加这两个模板进去即可。
今天主要介绍一下怎么自定义脚本去监控tomcat。
1、zabbix客户端配置监控tomcat状态脚本
# cat /etc/zabbix/zabbix_agentd.d/tomcat_status.sh
================================================================================================
#!/bin/bash
#this script is used to get tomcat status
#copyright by hwb
metric=$1
#cmdline-jmxclient.jar包用来获取jmx信息
jarfile=/etc/zabbix/zabbix_agentd.d
#监控tomcat线程、流量、请求
case $metric in
version)
#这里要注意2>&1的用法,没有这个无法输出想要的结果
output=$(java -jar $jarfile/cmdline.jar - 127.0.0.1:12345 Catalina:type=Server serverInfo 2>&1 | awk '{print $NF}')
if [ "$output" == "" ];then
echo 0
else
echo $output
fi
;;
thread_max)
#这里要注意2>&1的用法,没有这个无法输出想要的结果
output=$(java -jar $jarfile/cmdline.jar - 127.0.0.1:12345 Catalina:name=\"http-nio*\",type=ThreadPool maxThreads 2>&1 | awk '{print $NF}')
if [ "$output" == "" ];then
echo 0
else
echo $output
fi
;;
thread_current)
output=$(java -jar $jarfile/cmdline.jar - 127.0.0.1:12345 Catalina:name=\"http-nio*\",type=ThreadPool currentThreadCount 2>&1 | awk '{print $NF}')
if [ "$output" == "" ];then
echo 0
else
echo $output
fi
;;
thread_busy)
output=$(java -jar $jarfile/cmdline.jar - 127.0.0.1:12345 Catalina:name=\"http-nio*\",type=ThreadPool currentThreadsBusy 2>&1 | awk '{print $NF}')
if [ "$output" == "" ];then
echo 0
else
echo $output
fi
;;
http_received)
#单位换算,字节划算成M,代表tomcat接收了多少M流量
output=$(java -jar $jarfile/cmdline.jar - 127.0.0.1:12345 Catalina:name=\"http-nio*\",type=GlobalRequestProcessor bytesReceived 2>&1|awk '{a[$NF]}END{for(k in a)print k/1024/1024}')
if [ "$output" == "" ];then
echo 0
else
echo $output
fi
;;
http_sent)
#单位换算,字节换算成M
output=$(java -jar $jarfile/cmdline.jar - 127.0.0.1:12345 Catalina:name=\"http-nio*\",type=GlobalRequestProcessor bytesSent 2>&1|awk '{a[$NF]}END{for(k in a)print k/1024/1024}')
if [ "$output" == "" ];then
echo 0
else
echo $output
fi
;;
request_count)
output=$(java -jar $jarfile/cmdline.jar - 127.0.0.1:12345 Catalina:name=\"http-nio*\",type=GlobalRequestProcessor requestCount 2>&1 | awk '{print $NF}')
if [ "$output" == "" ];then
echo 0
else
echo $output
fi
;;
request_error)
output=$(java -jar $jarfile/cmdline.jar - 127.0.0.1:12345 Catalina:name=\"http-nio*\",type=GlobalRequestProcessor errorCount 2>&1 | awk '{print $NF}')
if [ "$output" == "" ];then
echo 0
else
echo $output
fi
;;
request_time)
output=$(java -jar $jarfile/cmdline.jar - 127.0.0.1:12345 Catalina:name=\"http-nio*\",type=GlobalRequestProcessor processingTime 2>&1 | awk '{print $NF}')
if [ "$output" == "" ];then
echo 0
else
echo $output
fi
;;
*)
echo -e "\e[033mUsage: sh $0 [version|thread_max|thread_current|thread_busy|http_received|http_sent|request_count|request_error|request_time]\e[0m"
esac
================================================================================================
2、添加自定义参数
# cat /etc/zabbix/zabbix_agentd.d/tomcat.conf
================================================================================================
UserParameter=tomcat.status[*],/etc/zabbix/zabbix_agentd.d/tomcat_status.sh $1
================================================================================================
3、授权
chown -R zabbix:zabbix /etc/zabbix
chmod -R 755 /etc/zabbix
4、重启客户端
systemctl restart zabbix-agent
5、在zabbix服务端测试
zabbix_get -s XX -p 10050 -k tomcat.status[thread_current]
zabbix_get -s xx -p 10050 -k tomcat.status[http_sent]
zabbix_get -s xx -p 10050 -k tomcat.status[request_count]
6、zabbix网页配置监控项
配置监控项后可到配置-主机-监控项(对应模板)查看是否生效
1)tomcat版本
--tomcat版本
名称:Tomcat version
类型:Zabbix客户端
键值:tomcat.status[version]
信息类型:字符
更新间隔:3h
2)tomcat线程
--tomcat最大线程数
名称:tomcat最大线程数
类型:Zabbix客户端
键值:tomcat.status[thread_max]
信息类型:浮点数
单位:
--tomcat当前线程数
名称:tomcat当前线程数
类型:Zabbix客户端
键值:tomcat.status[thread_current]
信息类型:浮点数
单位:
--tomcat繁忙线程数
名称:tomcat繁忙线程数
类型:Zabbix客户端
键值:tomcat.status[thread_busy]
信息类型:浮点数
单位:
3)网络流量统计
--tomcat接收的流量
名称:tomcat接收的流量
类型:Zabbix客户端
键值:tomcat.status[http_received]
信息类型:浮点数
单位:MB
--tomcat发送的流量
名称:tomcat发送的流量
类型:Zabbix客户端
键值:tomcat.status[http_sent]
信息类型:浮点数
单位:MB
4)tomcat请求
--tomcat请求数
名称:tomcat请求数
类型:Zabbix客户端
键值:tomcat.status[request_count]
信息类型:数字
单位:
--tomcat出错请求数
名称:tomcat出错请求数
类型:Zabbix客户端
键值:tomcat.status[request_error]
信息类型:数字
单位:
--tomcat请求时间
名称:tomcat请求时间
类型:Zabbix客户端
键值:tomcat.status[request_time]
信息类型:浮点数
单位:s
更新间隔:1m
7、图形展示如下:
觉得有用的朋友多帮忙转发哦!后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注下~
猜你喜欢
- 2024-10-25 JAR、WAR、EAR的使用和区别(jars和wars)
- 2024-10-25 mybatis-generator 初体验(mybatisplus generator)
- 2024-10-25 基于zabbix4.0监控tomcat服务及JVM内存
- 2024-10-25 01. struts2介绍(struts2入门)
- 2024-10-25 MyBatis系列-2-日志配置(mybatis 日志)
- 2024-10-25 Java初学者不得不知的概念:抽丝剥茧JDK、JRE、JVM之间的区别
- 2024-10-25 mysql-connector-java与MySQL 8.X版本建立连接
- 2024-10-25 Jmeter中间件处理-ActiveMQ(jmeter常用的组件有哪些)
- 2024-10-25 苏州众里Apache Log4j2 漏洞处置建议
- 2024-10-25 操作 PDF 文件的常用JAR包(pdfreader java)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- jdk (81)
- putty (66)
- rufus (78)
- 内网穿透 (89)
- okhttp (70)
- powertoys (74)
- windowsterminal (81)
- netcat (65)
- ghostscript (65)
- veracrypt (65)
- asp.netcore (70)
- wrk (67)
- aspose.words (80)
- itk (80)
- ajaxfileupload.js (66)
- sqlhelper (67)
- express.js (67)
- phpmailer (67)
- xjar (70)
- redisclient (78)
- wakeonlan (66)
- tinygo (85)
- startbbs (72)
- webftp (82)
- vsvim (79)
本文暂时没有评论,来添加一个吧(●'◡'●)