前言:
如今你们对“tomcat 多端口”大概比较注意,小伙伴们都想要剖析一些“tomcat 多端口”的相关文章。那么小编也在网上汇集了一些关于“tomcat 多端口””的相关文章,希望各位老铁们能喜欢,大家一起来了解一下吧!概述
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 hwbmetric=$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/zabbixchmod -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方面的内容,感兴趣的朋友可以关注下~
标签: #tomcat 多端口