拓扑说明
环境:
zabbix-server 10.0.0.31
MySQL 10.0.0.32
java gateway 10.0.0.31
tomcat 10.0.0.36
一、准备JDK环境
pwd
/usr/local/src
tar xf jdk-8u221-linux-x64.tar.gz
ln -sv /usr/local/src/jdk1.8.0_221 /usr/local/jdk
'/usr/local/jdk' -> '/usr/local/src/jdk1.8.0_221'
vim /etc/profile
export JAVA_HOME=/usr/local/jdk
export TOMCAT_HOME=/apps/tomcat
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$TOMCAT_HOME/bin:$PATH
export CLASSPATH=.$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar
source /etc/profile
java -version
java version "1.8.0_221"
Java(TM) SE Runtime Environment (build 1.8.0_221-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.221-b11, mixed mode)
二、准备Tomcat
root@ubuntu1804:~# cd /apps/
root@ubuntu1804:/apps# wget https://mirrors.bfsu.edu.cn/apache/tomcat/tomcat-8/v8.5.69/bin/apache-tomcat-8.5.69.tar.gz
root@ubuntu1804:/apps# tar xvf /apps/apache-tomcat-8.5.69.tar.gz
root@ubuntu1804:/apps# cd /apps/apache-tomcat-8.5.69/webapps/
root@ubuntu1804:/apps/apache-tomcat-8.5.69/webapps# mkdir lck
root@ubuntu1804:/apps/apache-tomcat-8.5.69/webapps# echo "tomcat web page" > lck/index.html
三、Tomcat 开启 JMX 监控
root@ubuntu1804:~# vim /apps/apache-tomcat-8.5.69/bin/catalina.sh
#配置模板
CATALINA_OPTS="$CATALINA_OPTS
-Dcom.sun.management.jmxremote #启用远程监控JMX
-Dcom.sun.management.jmxremote.port=12345 #默认启动的JMX端口号,要和zabbix添加主机时候的端口 一致即可
-Dcom.sun.management.jmxremote.authenticate=false #不使用用户名密码
-Dcom.sun.management.jmxremote.ssl=false #不使用ssl认证
-Djava.rmi.server.hostname=x.x.x.x" #tomcat主机自己的IP地址,不要写zabbix服务器的地址
实际配置
root@ubuntu1804:~# vim /apps/apache-tomcat-8.5.69/bin/catalina.sh
CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=12345 -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=10.0.0.36"
root@ubuntu1804:~# /apps/apache-tomcat-8.5.69/bin/catalina.sh start
四、验证Tomcat web界面
五、zabbix server部署java gateway服务器
java gateway是一个独立于zabbix server和zabbix agent的组件,也就是java gateway可以是单独的一台服务器,但是也可以和zabbix server或者zabbix agent公用一台服务器,前提是端口不要配置冲突了。
我们选择部署在 zabbix-server 10.0.0.31
apt install -y zabbix-java-gateway
vim /etc/zabbix/zabbix_java_gateway.conf
LISTEN_IP="0.0.0.0"
LISTEN_PORT=10052
PID_FILE="/var/run/zabbix/zabbix_java_gateway.pid"
START_POLLERS=50
TIMEOUT=30
systemctl enable --now zabbix-java-gateway
ss -ntl #查看端口10052是否开启
或者可以选择编译安装
yum install gcc libxml2-devel net-snmp net-snmp-devel curl curl-devel php php- bcmath php-mbstring mariadb-devel java-1.8.0-openjdk-devel -y
./configure --prefix=/usr/local/zabbix --enable-java --with-net-snmp --with-mysql --with-ssh2
make install
/usr/local/zabbix/sbin/zabbix_java/startup.sh #编译安装的java gateway启动方式
六、zabbix server配置调用java gateway
root@ubuntu1804:~# vim /etc/zabbix/zabbix_server.conf
JavaGateway=10.0.0.31 #监听地址
JavaGatewayPort=10052 #指定java gateway的服务器监听端口,如果是默认端口可以不写
StartJavaPollers=20 #启动多少个线程去轮训 java gateway
root@ubuntu1804:~# systemctl restart zabbix-server
root@ubuntu1804:~# ps -ef | grep java #查看是否有20个java gateway线程
七、zabbix server测试监控JMX方式
root@ubuntu1804:~# java -jar cmdline-jmxclient-0.10.3.jar - 172.31.0.107:12345 'Catalina:name="http-nio-8080",type=ThreadPool' currentThreadCount
12/14/2019 15:22:38 +0800 org.archive.jmx.Client currentThreadCount: 3
root@ubuntu1804:~# java -jar cmdline-jmxclient-0.10.3.jar - 172.31.0.107:12345 'Catalina:name="http- nio-8080",type=ThreadPool' maxThreads
12/14/2019 15:23:48 +0800 org.archive.jmx.Client maxThreads: 200