Linux运维之zabbix(五)通过jmx监控tomcat
- 工作原理
当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远程监控功能等
- zabbix监控tomcat的部署
web页面监控tomcat流程:
client—>wenui—>zabbix server—>zabbix jmx:10052—>tomcat:8888
部署环境准备:
server1(172.25.254.1):作为zabbix-server ,安装java-gateway
server2(172.25.254.2):作为zabbix-agent,安装tomcat
在server2上:
官网下载jdk的安装包安装及其tomcat压缩包解压并且安装tomcat
[root@server2 ~]# rpm -ivh jdk-8u121-linux-x64.rpm
[root@server2 ~]# tar zxf apache-tomcat-8.5.24.tar.gz -C /usr/local/
[root@server2 ~]# cd /usr/local/
[root@server2 local]# ln -s apache-tomcat-8.5.24/ tomcat
[root@server2 tomcat]# cd bin/
[root@server2 bin]# vim catalina.sh
文件编辑内容如下:
109 CATALINA_OPTS='-Dcom.sun.management.jmxremote //开启远程监控
110 -Dcom.sun.management.jmxremote.port=8888 //远程监控端口
111 -Dcom.sun.management.jmxremote.ssl=false //远程ssl验证为false
112 -Dcom.sun.management.jmxremote.authenticate=false' //关闭权限认证
[root@server2 bin]# ./startup.sh //开启tomcat
[root@server2 bin]# netstat -ntlp //查看监控端口
在tomcat的文件中添加JMA参数,JMA全称Java Management Extensions,为即阿va应用提供管理扩展功能,本次实验为开启远程监控功能:
官网下载java-gateway安装包并进行安装且要开启java-gateway服务
[root@server2 ~]# ls
zabbix-java-gateway-4.0.5-1.el7.x86_64.rpm
[root@server2 ~]# yum install zabbix-java-gateway-4.0.5-1.el7.x86_64.rpm -y
[root@server2 ~]# systemctl start zabbix-java-gateway
在server1(zabbix server)上:
安装java-gateway并做相应的设置
[root@server1 4.0]# yum install zabbix-java-gateway-4.0.5-1.el7.x86_64.rpm
编辑zabbix-server配置文件添加java-gateway的配置信息
[root@server1 ~]# cd /etc/zabbix/
[root@server1 zabbix]# vim zabbix_server.conf
文件编辑内容如下:
288 JavaGateway=172.25.254.1
296 JavaGatewayPort=10052
304 StartJavaPollers=5
[root@server1 zabbix]# systemctl restart zabbix-server
[root@server1 zabbix]# zabbix_server -R config_cache_reload //检查jmx检测是否正常
zabbix_server [3656]: command sent successfully
在web界面进行设置
在配置–>主机–>server2 添加jmx的接口:
添加jmx的模版
在tomcat的图形里面查看jmx的图形
主机更新之后server2上的JMX变绿为正常,则监控tomcat成功
- END