xuanxi 发表于 2018-12-2 12:17:22

监控zabbix使用jmx监控tomcat

  1.在zabix服务端安装java工具(服务器已安装zabbix)
  # rpm -ivh
http://repo.zabbix.com/zabbix/2.4/rhel/6/x86_64/zabbix-java-gateway-2.4.7-1.el6.x86_64.rpm

  # vim /etc/zabbix/zabbix_server.conf
JavaGateway=127.0.0.1
JavaGatewayPort=10055
StartJavaPollers=5
# vim /etc/zabbix/zabbix_java_gateway.conf
  LISTEN_IP="0.0.0.0"
LISTEN_PORT=10055START_POLLERS=5
  # /etc/init.d/zabbix-server restart
Shutting down Zabbix server:         
Starting Zabbix server:                     
# /etc/init.d/zabbix-java-gateway restart
Shutting down zabbix java gateway:      
Starting zabbix java gateway:               

  # netstat -antulp | grep 10055
tcp      0      0 :::10055                  :::*                        LISTEN      15958/java         
#

  

  2.在tomcat端添加一个端口,供zabbix获取数据
  jmxcmd下载地址:
  https://sourceforge.net/projects/jmxcmd/files/latest/download?source=typ_redirect
  # 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地址"
  # vim /usr/local/tomcat-7.0.67Html/conf/server.xml      --暴露一个端口给zabbix获取数据
# /usr/local/tomcat-7.0.67/bin/shutdown.sh      --关闭tomcat服务
# /usr/local/tomcat-7.0.67/bin/startup.sh          --启动tomcat服务
  # netstat -antulp | grep 9999
tcp      0      0 :::9999            :::*               LISTEN      12469/java               
# 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
#

  

  3.在zabbix中添加分类,项目,键
  (1).启用jmx模块

http://s1.运维网.com/wyfs02/M02/7F/75/wKiom1cfJgSCSHdEAACA7AzeKks185.png
  (2).创建分类
http://s4.运维网.com/wyfs02/M00/7F/75/wKiom1cfJjGSl_CoAABlmiGbCLY160.png
  

  

  错误处理:
  # 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的端口被占用了
  http://s4.运维网.com/wyfs02/M01/7F/EE/wKiom1cxsiXTbzUcAABVS0T9WGI540.png




页: [1]
查看完整版本: 监控zabbix使用jmx监控tomcat