@Zabbix使用JMX监控Tomcat
一、zabbix部署安装
二、服务端部署
zabix服务端安装Java工具
#下载安装包
wget http://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-java-gateway-5.0.17-1.el7.x86_64.rpm
#安装zabbix-java-gateway
yum localinstall zabbix-java-gateway-5.0.17-1.el7.x86_64.rpm
#配置文件修改zabbix-server
vim zabbix_server.conf
JavaGateway=127.0.0.1 #指定java gateway的地,zabbix-java-gateway安装在了zabbix-server上,所以使用本地地址
JavaGatewayPort=10052 #指定java gateway的服务器监听端口,端口号和javagateway要对应
StartJavaPollers=5 #启动多少个进程去轮训 java gateway, 要和java gateway的配置一致
Timeout=30 #启动多少个进程去轮训 java gateway, 要和java gateway的配置一致
#配置文件修改 zabbix_java_gateway
vim zabbix_java_gateway.conf
LISTEN_IP="0.0.0.0" #监听的地址默认是0.0.0.0,表示监听本机的所有地址
LISTEN_PORT=10052 #监听的端口
PID_FILE="/var/run/zabbix/zabbix_java.pid" #指定pid文件
START_POLLERS=5 #启动的工作线程数量,默认是5个。这里配置和serve.conf一样
TIMEOUT=20 #连接超时时长,默认是3秒,因此JAVA程序比较慢,如果超时时间太短,会导致数据获取不到
#启动服务
systemctl restart zabbix-server #重启zabbix-server
systemctl start zabbix-java-gateway #启动zabbix-java-gateway
systemctl enable zabbix-server #加入开机自启
#检查服务
netstat -lntp |grep java
tcp6 0 0 :::10052 :::* LISTEN 1413/java
三、客户端部署
#查看是否安装
java -version
yum -y remove java-*
#查看库
yum -y list java*
#jdk环境安装
yum -y install java-1.8.0-openjdk*
#Tomcat安装(安装步骤)
1、首先确保已经安装好了jdk,并且jdk版本能够满足当前Tomcat的版本要求
2、解压缩:tar -zxvf apache-tomcat-9.0.7.tar.gz
3、将tomcat移到安装软件位置:mv apache-tomcat-9.0.7 /usr/local/
#环境变量配置
vim /etc/profile
export CATALINA_HOME=/usr/local/apache-tomcat-9.0.7
#重载配置
source /etc/profile
#字符集配置(找到配置8080端口的位置,在节点末尾添加URIEncoding="UTF-8")
vim /usr/local/apache-tomcat-9.0.7/conf/server.xml
#启动及停止tomcat
/usr/local/apache-tomcat-9.0.7/bin/startup.sh #启动
/usr/local/apache-tomcat-9.0.7/bin/shutdown.sh #停止
#检查状态
[root@agent ~]# netstat -lntp |grep java
tcp6 0 0 :::40994 :::* LISTEN 2414/java
tcp6 0 0 127.0.0.1:8005 :::* LISTEN 2414/java
tcp6 0 0 :::8009 :::* LISTEN 2414/java
tcp6 0 0 :::9999 :::* LISTEN 2414/java
tcp6 0 0 :::8080 :::* LISTEN 2414/java
#配置JMX( 添加以下,获取tomcat服务器的IP地址)
vim /usr/local/apache-tomcat-9.0.7/bin/catalina.sh
CATALINA_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=本机IP地址" #客户端地址
#端口配置(暴露一个端口给zabbix获取数据)
vim /usr/local/apache-tomcat-9.0.7/conf/server.xml
<Listener className="org.apache.catalina.mbeans.JmxRemoteLifecycleListener" rmiRegistryPortPlatform="8888" rmiServerPortPlatform="8888"/>
#重启tomcat
/usr/local/apache-tomcat-9.0.7/bin/shutdown.sh #停止
/usr/local/apache-tomcat-9.0.7/bin/startup.sh #启动
#检查状态jmx状态
netstat -lntp |grep 8888
tcp6 0 0 :::8888 :::* LISTEN 40961/java
#测试:
#下载catalina-jmx-remote.jar包,到tomcat安装目录下的lib目录
wget -O /usr/local/apache-tomcat-9.0.7/lib/catalina-jmx-remote.jar http://archive.apache.org/dist/tomcat/tomcat-8/v8.0.23/bin/extras/catalina-jmx-remote.jar
#重启tomcat(以防万一)
/usr/local/apache-tomcat-9.0.7/bin/shutdown.sh #停止
/usr/local/apache-tomcat-9.0.7/bin/startup.sh #启动
#监控测试
1、下载cmdline-jmxclient-0.10.3.jar文件,下载地址:http://crawler.archive.org/cmdline-jmxclient/downloads.html
2、本地执行如下命令查看tomcat的堆内存信息,如下所示
java -jar cmdline-jmxclient-0.10.3.jar - 127.0.0.1:8888 java.lang:type=Memory HeapMemoryUsage
10/26/2021 10:06:30 +0800 org.archive.jmx.Client HeapMemoryUsage:
committed: 24461312
init: 16777216
max: 247332864
used: 18623984
四、监控项测试
1、jmx获取内存
#Tomcat本地查看堆内存信息
java -jar cmdline-jmxclient-0.10.3.jar controlRole:tomcat 127.0.0.1:8888 java.lang:type=Memory HeapMemoryUsage
10/26/2021 10:08:09 +0800 org.archive.jmx.Client HeapMemoryUsage:
committed: 24461312
init: 16777216
max: 247332864
used: 19293056
#zabbix监控堆内存键值
堆内存最大值: jmx["java.lang:type=Memory","HeapMemoryUsage.max"]
已用堆内存: jmx["java.lang:type=Memory","HeapMemoryUsage.used"]
已提交堆内存: jmx["java.lang:type=Memory","HeapMemoryUsage.committed"]
主机添加
监控项添加
图形添加使用
本文来自博客园,作者:ଲ一笑奈&何,转载请注明原文链接:https://www.cnblogs.com/zeny/p/15657644.html