output怎么用_详解如何用同一个zabbix监控模板来监控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================================================================================================
023c3919c72408fd5a5ca0e6013e0563.png

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
225f6511f48a102c785bd4b2f537a2cd.png

7、图形展示如下:

35f5b42cd43c00b121aecb1f4c93eacc.png
9e41fa2832de3250e68236c880e7f511.png
87e629466eeec4dbe6d57e2dd1c333c8.png

觉得有用的朋友多帮忙转发哦!后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注下~

746d8cf7a1597504230985f0ef06373c.gif
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值