监控tomcat

架构图:

 

 

 

 

 

 

 

JMX(Java Management Extensions,即Java管理扩展)是一个为应用程序、设备、系统等植入管理功能的框架。JMX可以跨越一系列异构操作系统平台、系统体系结构和网络传输协议,灵活的开发无缝集成的系统、网络和服务管理应用。


JMX在Java编程语言中定义了应用程序以及网络管理和监控的体系结构、设计模式、应用程序接口以及服务。通常使用JMX来监控系统的运行状态或管理系统的某些方面,比如清空缓存、重新加载配置文件等.

JMX一个JAVA程序服务管理框架,也是一个JAVA程序因此让其监听在某个端口上Client可以通过这个端口连接JMX获取JMX监控到的数据。

1.通过JMX监控Tomcat
1)找到安装Tomcat的catalina脚本打开并通过下列选项开启JMX功能。

vim /usr/local/tomcat/bin/catalina.sh
CATALINA_OPTS="$CATALINA__OPTS
-Dcom.sun.management.jmxremote                       #启用远程监控JMX 
-Djava.rmi.server.hostname=<JAVA主机IP>               #是Tomcat主机自己的IP地址,不是zabbix服务器的地址
-Dcom.sun.management.jmxremote.port=XXXXX            #默认启动的JMX服务的端口号,要和zabbix添加主机时候的端口一致即可
-Dcom.sun.management.jmxremote.authenticate=false    #不使用账号密码验证
-Dcom.sun.management.jmxremote.ssl=false"            #不使用ssl认证

2)在长横线下面添加JMX的配置,值得注意的是要指定本机(Tomcat服务器)的哪个IP监听在"12345"端口上提供对外服务。
<注意格式严格安装图中所示,否则Tomcat服务会无法启动>
<修改完配置后重启Tomcat>

 

 3)可以看到JMX对外提供服务的12345端口已经处于监听状态。

 

2.客户端通过 cmdline-jmxclient-0.10.3.jar(需下载),连接Tomcat上的JMX获取监控到的数据。<客户端需具备JDK环境>


apt install openjdk-8-jdk -y   #安装开源jdk使用该工具进行测试(效率)

 java -jar cmdline-jmxclient-0.10.3.jar - 10.0.0.202:12345 'Catalina:name="http-nio-8080",type=ThreadPool' maxThreads  #测试能否获取到java最大线程数。

 <连接JMX和IP和port如果出错则无法连接并报以下错误>

 

3.部署 Java gateway 服务器(这里博主选择以包安装的方式将 Java gateway 部署到一台独立的机器上<IP:10.0.0.203>)



wget https://repo.zabbix.com/zabbix/5.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.0-1+bionic_all.deb  #搭建zabbix仓库
apt update  #更新包源
apt -y install zabbix-java-gateway  #安装java-gateway

 sed -ri.bak 's@.*(START_POLLERS=).*@\160@' /etc/zabbix/zabbix_java_gateway.conf  #指定线程个数,根据JAVA JXM客户端数量适当调大,用于接收zabbix-server连接JMX请求。
 systemctl restart zabbix-java-gateway.service

4.返回zabbix-server服务器并修改配置文件后重启

sed -ri.bak 's@.*(JavaGateway=).*@\110.0.0.203@' /etc/zabbix/zabbix_server.conf   #指向JAVA gateway主机,zabbx-server连接JavaGateway
sed -ri.bak 's@.*(StartJavaPollers=).*@\150@' /etc/zabbix/zabbix_server.conf   #指定开启的javapollers进程数(zabbix-server想要接收java数据需要开启javapoller进程),默认为0,即不开启,所以必须修改此行.

 

 


5.将Tomcat的主机列入监控主机列表当中
1)<创建主机>
2)通过JMX进行监控所以类型该改为JMX,zabbix-server通过JavaGateway连接JMX指定IP(hostname,JMX配置文件中有声明)监听的端口号以此来连接JMX获取JAVA程序的监控数据。

6.添加模板,虽然有Tomcat的内置模板,但请不要添加只因版本过于老旧,添加图中模板即可。

 

 

 

 

 

 























































































posted on 2021-08-12 00:16  1251618589  阅读(11)  评论(0编辑  收藏  举报

导航