如何用jmx监控tomcat 服务器

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用jmx监控tomcat 服务器相关的知识,希望对你有一定的参考价值。

使用jmx监控tomcat

1、在tomcat启动过程中,开启相应的参数配置:

-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=9999
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false

  其中:  com.sun.management.jmxremote.port 是jmx端口 这个很重要 在使用jconsole连接tomcat jmx时候使用。

2、启动tomcat并使用jconsole来连接tomcat jmx接口

连接界面如下:

  连接进去以后,在MBean一栏便是jmx接口。

关于jmx相关接口信息如下(主要包括java jmx接口和tomcat jmx接口两个部分)
参考技术A 使用JMX监控Tomcat示例代码
Java代码
String jmxURL = "service:jmx:rmi:///jndi/rmi://192.168.10.93:8999/jmxrmi";
JMXServiceURL serviceURL = new JMXServiceURL(jmxURL);

Map map = new HashMap();
// 用户名密码,在jmxremote.password文件中查看
String[] credentials = new String[] "monitorRole", "tomcat" ;
map.put("jmx.remote.credentials", credentials);
JMXConnector connector = JMXConnectorFactory.connect(serviceURL, map);
MBeanServerConnection mbsc = connector.getMBeanServerConnection();

// 端口最好是动态取得
ObjectName threadObjName = new ObjectName("Catalina:type=ThreadPool,name=http-8080");
MBeanInfo mbInfo = mbsc.getMBeanInfo(threadObjName);

// tomcat的线程数对应的属性值
String attrName = "currentThreadCount";
MBeanAttributeInfo[] mbAttributes = mbInfo.getAttributes();
System.out.println("currentThreadCount:" + mbsc.getAttribute(threadObjName, attrName));

以上是关于如何用jmx监控tomcat 服务器的主要内容,如果未能解决你的问题,请参考以下文章

Zabbix JMX Tomcat 监控

如何用zabbix 监控 tomcat

Zabbix 3.0 监控Tomcat

zabbix jmx监控tomcat 无数据显示

zabbix使用jmx监控tomcat

zabbix 3.0 利用jmx监控 tomcat