1、需要安装的软件:
2、Zabbix的JMX监控架构
3、组件关系示意图:
当Zabbix-Server
需要知道java应用程序的某项性能的时候,会启动自身的一个Zabbix-JavaPollers进程
去连接Zabbix-JavaGateway
请求数据,而ZabbixJavagateway
收到请求后使用“JMXmanagementAPI”
去查询特定的应用程序,而前提是应用程序这端在开启时需要“-Dcom.sun.management.jmxremote”
参数来开启JMX远程查询就行。Java程序会启动自身的一个简单的小程序端口12345
向Zabbix-JavaGateway
提供请求数据。
配置Zabbix监控Java应用程序的关键点在于:配置Zabbix-JavaGateway、让Zabbix-Server能够连接Zabbix-JavaGateway、Tomcat开启JVM远程监控功能等
主机名(IP) | 服务 |
---|---|
server1(172.25.2.1) | zabbix-server ,zabbix-web,zabbix-agent,java-gateway |
server2(172.25.24.2) | zabbix-agent,tomcat |
我们可以看到此时,zabbix平台还没有监控server2上面的java应用
1、在server2上,下载tomcat和jdlk。
[root@server2 ~]# tar zxf apache-tomcat-8.5.24.tar.gz -C /usr/local/
[root@server2 ~]# rpm -ivh jdk-8u121-linux-x64.rpm
[root@server2 ~]# cd /usr/local/
[root@server2 local]# ln -s apache-tomcat-8.5.24/ tomcat
[root@server2 ~]# cd /usr/local/tomcat/webapps/ROOT/
[root@server2 ROOT]# vim test.jsp
[root@server2 ROOT]# cat test.jsp
The time is:<%=new java.util.Date() %>
3、向tomcat中添加JVM的参数(Java Management Extensions)
。
[root@server2 bin]# pwd
/usr/local/tomcat/bin
[root@server2 bin]# vim catalina.sh
CATALINA_OPTS='-Dcom.sun.management.jmxremote #开启远程监控
-Dcom.sun.management.jmxremote.port=8888 #远程监控端口
-Dcom.sun.management.jmxremote.ssl=false #远程ssl验证为false
-Dcom.sun.management.jmxremote.authenticate=false'
[root@server2 bin]# ./startup.sh
[root@server2 bin]# netstat -ntlp
zabbix-server通过zabbix-java-gateway 监控tomcat:8888
4、此时,端口开启,可以在浏览器中访问tomcat指定访问我刚才编辑的测试文件
5、在server1上配置,安装zabbix-java-gateway
,开启服务并设置服务开机自启动
[root@server1 ~]# yum install zabbix-java-gateway -y
##我自建的yum仓库
[root@server1 ~]# systemctl start zabbix-java-gateway
[root@server1 ~]# systemctl enable zabbix-java-gateway
[root@server1 ~]# netstat -antlp | grep 10052
6、编辑zabbix-server
的配置文件,添加javagateway
的相关信息,重启服务
[root@server1 ~]# vim /etc/zabbix/zabbix_server.conf
288 JavaGateway=172.25.2.1
296 JavaGatewayPort=10052
304 StartJavaPollers=5
[root@server1 ~]# systemctl restart zabbix-server
7、在web界面进行设置
配置—> 主机—> server2—> 主机—> 添加JMX接口的信息(端口要和配置文件中写的一样) —> 添加
主机 —> 模板—> 选择图中的模板 —> 添加 —> 更新
等几分钟,刷新,可以看到server2的JMX变绿