Akemi

zabbix监控——JMX客户端

2024/09/16

环境准备

准备一个tomcat

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
192.168.10.102 test
wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.93/bin/apache-tomcat-9.0.93.tar.gz
tar -xf apache-tomcat-9.0.93.tar.gz
cp -R apache-tomcat-9.0.93 /usr/local/tomcat

tar -xf jdk-8u421-linux-x64.tar.gz
cp -R jdk1.8.0_421 /usr/local/jdk1.8
echo 'export JAVA_HOME=/usr/local/jdk1.8' >> /etc/profile
source /etc/profile

#测试
/usr/local/tomcat/bin/startup.sh
ps -ef | grep java

curl 192.168.10.102:8080

tomcat开启远程消息

修改catalina.sh中CATALINA_OPT java启动参数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
/usr/local/tomcat/bin/catalina.sh

CATALINA_OPTS="$CATALINA_OPTS \
-Dcom.sun.management.jmxremote \
-Dcom.sun.management.jmxremote.port=12345 \
-Dcom.sun.management.jmxremote.authenticate=false \
-Dcom.sun.management.jmxremote.ssl=false \
-Djava.rmi.server.hostname=192.168.10.102"

pkill java
/usr/local/tomcat/bin/startup.sh
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: /usr/local/jdk1.8
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS: -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=12345 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=192.168.10.102
Tomcat started.

ss -tunlp | grep java
tcp LISTEN 0 50 [::]:39105 [::]:* users:(("java",pid=3539,fd=22))
tcp LISTEN 0 1 [::ffff:127.0.0.1]:8005 [::]:* users:(("java",pid=3539,fd=70))
tcp LISTEN 0 50 [::]:41100 [::]:* users:(("java",pid=3539,fd=20))
tcp LISTEN 0 100 [::]:8080 [::]:* users:(("java",pid=3539,fd=63))
tcp LISTEN 0 50 [::]:12345 [::]:* users:(("java",pid=3539,fd=21))

tomcat主机添加zabbix-agent

略过

zabbix-server部署java-gateway

java-gateway本身就相当于一个服务端

需要单独为其配置zabbix-server,java-gateway通过zabbix-server连接数据库

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
yum -y install zabbix-java-gateway.x86_64

修改zabbix配置文件
cp /etc/zabbix/zabbix_java_gateway.conf /etc/zabbix/zabbix_java_gateway.conf.bak
echo "JavaGatewayPort=10052" >> /etc/zabbix/zabbix_java_gateway.conf

echo "JavaGateway=127.0.0.1" >> /etc/zabbix/zabbix_server.conf
echo "JavaGatewayPort=10052" >> /etc/zabbix/zabbix_server.conf
echo "StartJavaPollers=5" >> /etc/zabbix/zabbix_server.conf

其实默认端口都是10052,不需要修改

systemctl enable zabbix-java-gateway.service --now
systemctl restart zabbix-java-gateway.service zabbix-server.service

ss -tunlp | grep 10052
tcp LISTEN 0 50 [::]:10052 [::]:* users:(("java",pid=3588,fd=12))

测试获取

1
2
3
4
5
6
使用cmdline这个包
wget https://github.com/qiueer/zabbix/blob/master/Tomcat/cmdline-jmxclient-0.10.3.jar

java -jar cmdline-jmxclient-0.10.3.jar - 192.168.10.102:12345
echo $?
0

网页端添加主机

配置-主机-新建主机

添加客户端为agent与jmx

添加模板Template App Apache Tomcat JMX,Template App Generic Java JMX

CATALOG
  1. 1. 环境准备
  2. 2. zabbix-server部署java-gateway