zabbix小结(十七)zabbix jmx监控
JMX(Java Management Extensions)是一个为应用程序植入管理功能的框架。JMX是一套标准的代理和服务,实际上,用户可以在任何Java应用程序中使用这些代理和服务实现管理。基本常见的java程序的监控都是基于jmx协议进行的实现。本篇就结合zabbix和tomcat实现jmx对java的监控示例。
一、zabbix server端的配置
1、安装java gateway
1yum -y install zabbix-java-gateway
同时该主机上需要部署jdk环境。
2、java gateway配置
java gateway配置文件/etc/zabbix/zabbix_java_gateway.conf,其涉及的主要配置内容有如下几项:
1LISTEN_IP="0.0.0.0" #监听服务器地址
2LISTEN_PORT=10052 #监听zabbix_java进程的端口,默认是10052
3PID_FILE="/tmp/zabbix_java.pid" #zabbix_java的pid路径
4START_POLLERS=5 #zabbix_java的进程数
5TIMEOUT=10 #zabbix_java的超时时间
3、修改zabbix_server配置文件
修改/etc/zabbix/zabbix_server.conf,主要增加如下部分内容:
1JavaGateway=10.212.52.14 #Java网关地址,即为Zabbix Server本身地址
2JavaGatewayPort=10052 #Java网关监控端口
3StartJavaPollers=5 #启动Java监控的进程数
修改完成后,重启Zabbix Server生效。并启动zabbix java gateway程序:
1systemctl start zabbix-java-gateway
二、zabbix agent端的配置
1、加载jmx-remote.jar包
通过tomcat下的version.sh脚本获取当前tomcat 的版本信息:
1sh version.sh
2----------------------------------------------------
3Server version: Apache Tomcat/8.0.33
4Server built: Mar 18 2016 20:31:49 UTC
5Server number: 8.0.33.0
6OS Name: Linux
7OS Version: 2.6.32-431.el6.x86_64
8Architecture: amd64
9JVM Version: 1.8.0_91-b14
10JVM Vendor: Oracle Corporation
下载tomcat对应版本的jmx jar包:
1cd /App/tomcat/lib
2wget http://archive.apache.org/dist/tomcat/tomcat-8/v8.0.33/bin/extras/catalina-jmx-remote.jar
注:该jar包,需要重启tomcat生效。
2、修改CATALINA_OPTS选项
这里修改方法有两种,第一种是只修改catalina.sh文件;另一种方法是修改catalina.sh和server.xml两个文件,先看第一种方法:
修改tomcat的catalina.sh配置文件,增加如下内容:
CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.port=12345 -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=本机IP地址"
两个文件处理的方法是,catalina.sh 文件写入如下内容:
CATALINA_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=本机IP地址"
server.xml 文件写入如下内容:
1<Listener className="org.apache.catalina.mbeans.JmxRemoteLifecycleListener" rmiRegistryPortPlatform="9999" rmiServerPortPlatform="9999"/>
三、使用jmxcmd验证
下载jmxcmd ,地址:https://sourceforge.net/projects/jmxcmd/
1# java -jar jmxcmd.jar - 10.212.149.204:12345 java.lang:type=Memory NonHeapMemoryUsage
203/21/2019 11:39:21 +0800 de.layereight.jmxcmd.Client NonHeapMemoryUsage:
3committed: 170053632
4init: 2555904
5max: -1
6used: 159088136
上面可以正常获取数据的话,就表示tomcat的jmx配置是正确的。
四、zabbix web页面配置
打开zabbix页面,找到配置–主机项,在配置主机的下面有jmx配置选项,输入相关信息:
切换到主机模块配置选项卡,在模板里关联上对应的java模板,生效以后等一会儿就会出数据了。
五、涉及密码认证的jmx监控
有时候出于安全考虑,我们会对jmx的访问设置访问的用户名和密码,这可以通过配置宏,并在相应的item里引用宏进行监控,宏配置如下:
在模板item配置项中引用的如下:
六、非tomcat java程序启用jmx
非tomcat类程序需要使用jmx,除需要引用相关的jar包,并在代码里进行引用之外,可以在启动的时候在参数选项里指定启用jmx,示例如下:
1java \
2-Dcom.sun.management.jmxremote \
3-Dcom.sun.management.jmxremote.port=12345 \
4-Dcom.sun.management.jmxremote.authenticate=false \
5-Dcom.sun.management.jmxremote.ssl=false \
6-jar/usr/share/doc/openjdk-6-jre-headless/demo/jfc/Notepad/Notepad.jar
捐赠本站(Donate)
如您感觉文章有用,可扫码捐赠本站!(If the article useful, you can scan the QR code to donate))
- Author: shisekong
- Link: https://blog.361way.com/zabbix-jmx/6044.html
- License: This work is under a 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议. Kindly fulfill the requirements of the aforementioned License when adapting or creating a derivative of this work.