首页 > 其他分享 >zabbix监控Tomcat服务器操作指引

zabbix监控Tomcat服务器操作指引

时间:2024-08-28 16:18:28浏览次数:3  
标签:jmx java Tomcat tomcat jar zabbix 线程 服务器

作者:乐维社区(forum.lwops.cn)许远

Tomcat是一个流行的Java Servlet容器,用于开发和部署Java Web应用程序,广泛应用于中小型系统、开发与测试环境、集成环境等场合。

Zabbix是一个开源的监控解决方案,广泛用于监控各种网络参数、服务器健康状态以及应用程序的性能,而JMX(Java Management Extensions)是一个提供管理接口的标准,允许从Java应用程序中提取运行时信息,通过结合Zabbix和JMX,我们就可以对Tomcat服务器进行深入的监控。

 

前提:编译zabbix server时需要提供java支持,即添加--enable-java该选项

一、zabbix server配置java支持

此处编译安装zabbix的目录为/opt/zabbix

编辑/opt/zabbix/sbin/zabbix_java/settings.sh,修改完成之后内容如下:

    LISTEN_IP="0.0.0.0"            //监听的服务器地址

    LISTEN_PORT=10052            //监听的端口

    PID_FILE="/tmp/zabbix_java.pid"    //指定zabbix_java的pid文件地址

    START_POLLERS=5

    TIMEOUT=3

 

二、修改zabbix server配置文件

编辑/opt/zabbix/etc/zabbix_server.conf,修改完成之后,内容如下:

LogFile=/tmp/zabbix_server.log    //指明zabbix_server的日志文件地址

DBHost=localhost                //连接的数据库地址

DBName=zabbix                //连接的数据库名称

DBUser=zabbix                //连接数据库的用户名

DBPassword=zabbix            //连接数据库密码

JavaGateway=192.168.10.103        //java网关地址,即server端ip地址

JavaGatewayPort=10052            //java网关监听端口

Timeout=20                    //超时时间

FpingLocation=/usr/sbin/fping    //fping命令绝对地址

LogSlowQueries=3000

AllowRoot=1                    //允许root启动

User=root                    //zabbix服务的启动用户

StartPollers=50

StartPingers=100

StartJavaPollers=5

AlertScriptsPath=/opt/zabbix/share/zabbix/alertscripts    //zabbix额外的脚本地址

 

三、启动zabbix java服务

重启zabbix server服务,以及启动zabbix java支持服务

service zabbix_server restart

cd /opt/zabbix/sbin/zabbix_java && sh startup.sh

四、修改tomcat配置文件

在zabbix agent部署的服务器上更改配置文件,修改tomcat配置文件

目录:/data/tomcat/tomcat-8080/bin

vim /data/tomcat/tomcat-8080/bin/catalina.sh 编辑catalina.sh,提供jmx端口如下:

CATALINA_OPTS="

-Dcom.sun.management.jmxremote 

-Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false 

-Dcom.sun.management.jmxremote.port=12345 

-Djava.rmi.server.hostname=192.168.10.100"

 

其中,hostname=192.168.10.100需要修改为agent部署的服务器地址更改完成需要重启tomcat应用服务器,同时查看端口12345是否处于监听状态

五、复制jar包

在zabbix agent部署的tomcat服务器上,copy对应的java jmx监控的相关jar包到tomcat对应的目录下

cp catalina-jmx-remote.jar /data/tomcat/tomcat-8080/lib

cp cmdline-jmxclient-0.10.3.jar /data/tomcat/tomcat-8080/bin

六、修改zabbix agent配置文件

编辑zabbix agent配置文件,配置完成如下:

LogFile=/tmp/zabbix_agentd.log    //zabbix agent日志文件地址

Server=192.168.10.103            //zabbix server地址

ListenPort=10050                //zabbix agent监听端口

Timeout=20                    //超时时间

Include=/opt/zabbix/etc/zabbix_agentd.conf.d/*.conf        //zabbix agent副配置文件目录配置

UnsafeUserParameters=1        

AllowRoot=1

User=root

ServerActive=192.168.10.103        //server地址配置

EnableRemoteCommands=1        //允许远程执行命令

Hostname=192.168.10.100        //配置agent本地hostname名称

 

UserParameter=jvm[*],/opt/zabbix/share/zabbix/alertscripts/jvm_memory.sh $1    //jvm内存监控脚本

UserParameter=system_memory[*],/opt/zabbix/share/zabbix/alertscripts/system_memory.sh $1        //系统内存监控脚本

七、命令测试

在zabbixagent端使用cmdline-jmxclient-0.10.3.jar提供的相关接口,获取jvm的监控信息此处执行相关命令的操作目录为:/data/tomcat/tomcat-8080/bin

(一)获取tomcat的最大线程数 

java -jar cmdline-jmxclient-0.10.3.jar - 192.168.1.100:12345  'Catalina:name="http-bio-8080",type=ThreadPool' maxThreads

06/09/2017 17:34:47 +0800 org.archive.jmx.Client maxThreads: 200

 

(二)获取tomcat繁忙线程数 

java -jar cmdline-jmxclient-0.10.3.jar - 192.168.1.100:12345 'Catalina:name="http-bio-8080",type=ThreadPool' currentThreadsBusy

06/09/2017 17:36:48 +0800 org.archive.jmx.Client currentThreadsBusy: 5

 

(三)获取tomcat当前已经分配线程数 

java -jar cmdline-jmxclient-0.10.3.jar - 192.168.1.100:12345  'Catalina:name="http-bio-8080",type=ThreadPool' currentThreadCount

06/09/2017 17:38:15 +0800 org.archive.jmx.Client currentThreadCount: 11

 

(四)获取活动线程的当前数目,包括守护线程和非守护线程 

java -jar cmdline-jmxclient-0.10.3.jar - 192.168.1.100:12345 java.lang:type=Threading ThreadCount

06/09/2017 17:55:34 +0800 org.archive.jmx.Client ThreadCount: 225

 

(五)获取自从 Java 虚拟机启动以来创建和启动的线程总数目 

java -jar cmdline-jmxclient-0.10.3.jar - 192.168.1.100:12345 java.lang:type=Threading TotalStartedThreadCount

06/09/2017 17:55:52 +0800 org.archive.jmx.Client TotalStartedThreadCount: 112225

 

(六)获取Java 虚拟机启动或峰值重置以来峰值活动线程计数 

java -jar cmdline-jmxclient-0.10.3.jar - 192.168.1.100:12345 java.lang:type=Threading PeakThreadCount

06/09/2017 17:56:06 +0800 org.archive.jmx.Client PeakThreadCount: 244

 

(七)获取守护线程总数 

java -jar cmdline-jmxclient-0.10.3.jar - 192.168.1.100:12345 java.lang:type=Threading DaemonThreadCount

06/09/2017 17:52:20 +0800 org.archive.jmx.Client DaemonThreadCount: 195

八、常见键值解析

键值对解析如下:

名称:tomcat已分配线程数

键值:jmx["Catalina:name=\"http-bio-8080\",type=ThreadPool",currentThreadCount]

 

名称:tomcat最大线程数

键值:jmx["Catalina:name=\"http-bio-8080\",type=ThreadPool",maxThreads]

 

名称:tomcat繁忙线程数

键值:jmx["Catalina:name=\"http-bio-8080\",type=ThreadPool",currentThreadsBusy]

 

名称:java虚拟机启动以来创建和启动的线程总数目

键值:jmx["java.lang:type=Threading","TotalStartedThreadCount"]

 

名称:tomcat活动线程的当前数目,包括守护线程和非守护线程

键值:jmx["java.lang:type=Threading","ThreadCount"]

 

名称:java虚拟机启动或峰值重置以来峰值活动线程数

键值:jmx["java.lang:type=Threading","PeakThreadCount"]

 

以上就是本期的全部内容。更多运维技巧欢迎关注乐维社区,更多运维问题也欢迎到乐维社区留言提问。

 

标签:jmx,java,Tomcat,tomcat,jar,zabbix,线程,服务器
From: https://www.cnblogs.com/lwops/p/18384988

相关文章

  • 利用api方式部署流式接口到nginx服务器,api无法流式输出,但localhost和ip可以的问题
    需要在nginx代理中,配置:proxy_cacheoff;#关闭缓存proxy_bufferingoff;#关闭代理缓冲chunked_transfer_encodingon;#开启分块传输编码tcp_nopushon;#开启TCPNOPUSH选项,禁止Nagle算法tcp_nodelayon;#开启TCPNODELAY选项,禁止延迟ACK算法keepalive_t......
  • 解决云服务器被攻击至黑洞状态的实战指南
    当云服务器遭遇大规模的DDoS攻击时,为了保护网络基础设施和其他客户的服务不受影响,云服务提供商通常会将受到攻击的服务器置于所谓的“黑洞”状态——即完全屏蔽其对外的所有网络连接。本文将详细介绍云服务器被攻击至黑洞状态的原因、识别方法以及解决策略。黑洞状态简介......
  • Java后端分布式系统的服务监控:Zabbix与Nagios
    Java后端分布式系统的服务监控:Zabbix与Nagios大家好,我是微赚淘客返利系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!在分布式系统中,服务监控是确保系统稳定性和可靠性的重要手段。Zabbix和Nagios是两款广泛使用的开源监控系统,它们提供了网络和服务器监控的功能。服务监控......
  • zabbix图形界面的字体问题
    现象,zabbixweb语言改为中文后  解决过程:1.去windows下控制面板-字体-复制(楷体-常规) find/-namedefines.inc.phpcat/usr/share/zabbix/include/defines.inc.php查看到字体及字体路径 进入字体目录:cd /usr/share/zabbix/assets/fonts上传新字体 替换字体配......
  • centos7 yum安装zabbix
    centos7yum安装zabbix国内源在安装zabbix中,使用官网的下载源会出现一些下载不完的情况,因为zabbix的官网源是在国外的现在我们安装zabbix3.4作为演示,安装其它版本可以选择对应的版本安装前,需要关闭防火墙12[root@localhost~]#systemctlstopfirewalld[root@lo......
  • 【Shell脚本】批量修改服务器用户密码
    Linux主机SSH连接信息:旧密码#catold_pass.txt192.168.18.217root12345622192.168.18.218root12345622内容格式:IPUserPasswordPortSSH远程修改密码脚本:新密码随机生成#!/bin/bashOLD_INFO=old_pass.txtNEW_INFO=new_pass.txtfor......
  • 【Shell 脚本】检测两台服务器指定目录下的文件一致性
    #!/bin/bash######################################检测两台服务器指定目录下的文件一致性######################################通过对比两台服务器上文件的md5值,达到检测一致性的目的dir=/data/webb_ip=192.168.88.10#将指定目录下的文件全部遍历出来并......
  • 数据库服务器运维最佳实践
    数据库服务器运维最佳实践  数据库服务器运维的最佳实践涵盖了多个方面,包括硬件选择、系统配置、性能优化、安全管理、数据备份与恢复、高可用性和灾难恢复等。以下将详细阐述这些方面,并给出部分可执行的代码示例,但请注意,由于环境差异,某些代码可能需要调整才能直接运行。1.......
  • 自建 NFS 服务器实现 Kubernetes 持久化存储
    1.简介在Kubernetes集群中,持久化存储是一个非常重要的组件。它允许我们保存需要长期保留的数据,即使Pod被删除或重新调度,这些数据也不会丢失。网络文件系统(NFS)是一种简单、可靠且广泛使用的存储解决方案。本文将详细介绍如何在CentOS7系统上搭建NFS服务器,并......
  • SSH弱口令爆破服务器
    一、实验背景1、概述使用kali的hydra进行ssh弱口令爆破,获得服务器的用户名和口令,通过ssh远程登录服务器。2、实验环境kali攻击机:192.168.1.107centos服务器:192.168.1.105二、前置知识1、centos设置用户并设置弱口令centos查看用户名cat/etc/passwdcentos查看密码ca......