文章目录
1.1 zabbix如何监控jvm
zabbix本身无法之间监控jvm,需要使用JMX协议的监控方式来获取jvm的数据;而JMX获取数据是由专门的代理程序实现,即Zabbix-Java-Gateway来负责JMX协议的java进程数据,以达到监控的目的。
1.2 zabbix监控jvm流程
- 1、Zabbix-Server通知Zabbix-Java-Gateway需要获取监控主机的哪些指标数据
- 2、Zabbix-Java-Gateway通过jmx协议获取Java进程数据
- 3、Java程序通过jmx协议返回数据给Zabbix-Java-Gateway
- 4、Zabbix-Java-Gateway返回数据给Zabbix-Server
- 5、Zabbix-Server对数据进行存储,然后展示
1.3 tomcat数据监控实践
1.3.1 场景实现步骤
1、安装Tomcat,并开启jmx协议
2、安装Zabbix-Java-Gateway
3、配置Zabbix-Java-Gateway
4、配置Zabbix-Server链接Zabbix-Java-Gateway
5、登录zabbix-web添加主机,通过jmx方式
1.3.2 场景环境规划
角色 | IP |
---|---|
Zabbix-Server | 192.168.20.46 |
zabbix-java-gateway | 192.168.20.46 |
tomcat | 192.168.20.47 |
1.3.3 配置Tomcat服务
安装java环境
#安装
[root@web01 ~]# tar xf jdk-8u291-linux-x64.tar.gz -C /usr/local/
[root@web01 ~]# ln -s /usr/local/jdk1.8.0_291/ /usr/local/jdk
#配置环境变量
[root@web01 ~]# cat /etc/profile.d/jdk.sh
export JAVA_HOME=/usr/local/jdk
export PATH=$PATH:$JAVA_HOME/bin
export JRE_HOME=$JAVA_HOME/jre
export
CLASSPATH=$JAVA_HOME/lib/:$JRE_HOME/lib/
#验证
[root@web01 ~]# source /etc/profile.d/jdk.sh
[root@web01 bin]# java -version
java version "1.8.0_291"
Java(TM) SE Runtime Environment (build 1.8.0_291-b10)
Java HotSpot(TM) 64-Bit Server VM (build 25.291-b10, mixed mode)
安装tomcat
[root@web01 ~]# tar xf apache-tomcat-8.5.73.tar.gz -C /home/app/
[root@web01 ~]# ln -s /home/app/apache-tomcat-8.5.73/ /home/app/tomcat
开启远程JMX
#头部添加如下内容
[root@web01 ~]# vim /home/app/tomcat/bin/catalina.sh
#!/bin/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.20.47"
#填写本机IP地址
#配置Tomcat的JVM堆内存,以及GC算法(年轻代:ParNew、年老代:CMS)
JAVA_OPTS="$JAVA_OPTS -Xms200m -Xmx200m -XX:+UseConcMarkSweepGC"
启动服务
[root@web01 ~]# /home/app/tomcat/bin/startup.sh
[root@web01 ~]# netstat -tnlp | grep java
tcp 0 0 ::ffff:127.0.0.1:8005 ::😗 LISTEN 7207/java
tcp 0 0 :::8080 ::😗 LISTEN 7207/java
tcp 0 0 :::35986 ::😗 LISTEN 7207/java
tcp 0 0 :::12345 ::😗 LISTEN 7207/java
tcp 0 0 :::35934 ::😗 LISTEN 7207/java
1.3.4 配置JavaGateway
[root@zabbix-server ~]# yum -y localinstall https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-java-gateway-5.0.26-1.el7.x86_64.rpm
[root@zabbix-server ~]# systemctl enable zabbix-java-gateway
[root@zabbix-server ~]# systemctl start zabbix-java-gateway
1.3.5 配置ZabbixServer
#配置zabbix-server 告诉zabbix-java-gateway节点IP
[root@zabbix-server ~]# vim /etc/zabbix/zabbix_server.conf
JavaGateway=127.0.0.1 #告诉server java-gateway节点的ip地址
JavaGatewayPort=10052 #告诉server java-gateway节点端口
StartJavaPollers=5 #启动多少个javagateway进程
[root@zabbix-server ~]# systemctl restart zabbix-server
1.3.6 Web页面创建主机
1.3.7 Web页面展示数据