龙空技术网

基于zabbix4.0自定义脚本监控tomcat--多个tomcat端口处理

波波说运维 903

前言:

眼前姐妹们对“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端口号配置

上一篇Java spring cloud

下一篇文件IO操作