监控zabbix使用jmx监控tomcat

1.在zabix服务端安装java工具(服务器已安装zabbix)

[[email protected] ~]# rpm -ivh 
http://repo.zabbix.com/zabbix/2.4/rhel/6/x86_64/zabbix-java-gateway-2.4.7-1.el6.x86_64.rpm

[[email protected] ~]# vim /etc/zabbix/zabbix_server.conf 
JavaGateway=127.0.0.1
JavaGatewayPort=10055
StartJavaPollers=5

[[email protected] ~]# vim /etc/zabbix/zabbix_java_gateway.conf

LISTEN_IP="0.0.0.0"
LISTEN_PORT=10055
START_POLLERS=5

[[email protected] ~]# /etc/init.d/zabbix-server restart
Shutting down Zabbix server:          [  OK  ]
Starting Zabbix server:                     [  OK  ]
[[email protected] ~]# /etc/init.d/zabbix-java-gateway restart
Shutting down zabbix java gateway:      [  OK  ]
Starting zabbix java gateway:                 [  OK  ]

[[email protected] ~]# netstat -antulp | grep 10055
tcp        0      0 :::10055                    :::*                        LISTEN      15958/java          
[[email protected] ~]# 


2.在tomcat端添加一个端口,供zabbix获取数据

jmxcmd下载地址:

https://sourceforge.net/projects/jmxcmd/files/latest/download?source=typ_redirect

[[email protected] ~]# vim /usr/local/tomcat-7.0.67/bin/catalina.sh     --添加以下行,获取tomcat服务器的IP地址
CATALINA_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=本机IP地址"

[[email protected] ~]# vim /usr/local/tomcat-7.0.67Html/conf/server.xml      --暴露一个端口给zabbix获取数据
  <Listener className="org.apache.catalina.mbeans.JmxRemoteLifecycleListener"  rmiRegistryPortPlatform="9999" rmiServerPortPlatform="9999"/>
[[email protected] ~]# /usr/local/tomcat-7.0.67/bin/shutdown.sh      --关闭tomcat服务
[[email protected] ~]# /usr/local/tomcat-7.0.67/bin/startup.sh          --启动tomcat服务

[[email protected] ~]# netstat -antulp | grep 9999
tcp        0      0 :::9999            :::*                 LISTEN      12469/java               
[[email protected] ~]# java -jar jmxcmd.jar - localhost:9999 java.lang:type=Memory NonHeapMemoryUsage
04/26/2016 16:21:38 +0800 de.layereight.jmxcmd.Client NonHeapMemoryUsage: 
committed: 136183808
init: 134676480
max: 318767104
used: 36691992
[[email protected] ~]# 


3.在zabbix中添加分类,项目,键

(1).启用jmx模块

监控zabbix使用jmx监控tomcat

(2).创建分类

监控zabbix使用jmx监控tomcat



错误处理:

[[email protected] ~]# java -jar jmxcmd.jar  - 180.178.55.82:9999 java.lang:type=Memory NonHeapMemoryUsage

Exception in thread "main" java.io.IOException: Failed to retrieve RMIServer stub: javax.naming.NameNotFoundException: jmxrmi

at javax.management.remote.rmi.RMIConnector.connect(RMIConnector.java:369)

at javax.management.remote.JMXConnectorFactory.connect(JMXConnectorFactory.java:268)

at de.layereight.jmxcmd.Client.execute(Client.java:126)

at de.layereight.jmxcmd.Client.main(Client.java:65)

Caused by: javax.naming.NameNotFoundException: jmxrmi

at com.sun.jndi.rmi.registry.RegistryContext.lookup(RegistryContext.java:116)

at com.sun.jndi.toolkit.url.GenericURLContext.lookup(GenericURLContext.java:203)

at javax.naming.InitialContext.lookup(InitialContext.java:411)

at javax.management.remote.rmi.RMIConnector.findRMIServerJNDI(RMIConnector.java:1936)

at javax.management.remote.rmi.RMIConnector.findRMIServer(RMIConnector.java:1903)

at javax.management.remote.rmi.RMIConnector.connect(RMIConnector.java:286)


解决方法:

是tomcat_java的端口被占用了

监控zabbix使用jmx监控tomcat










本文转自 z597011036 51CTO博客,原文链接:http://blog.51cto.com/tongcheng/1767930,如需转载请自行联系原作者