我在JBoss 7上工作,我想监视JBoss进程: (此进程使用的内存,CPU百分比......) ,使用JMX功能。 我试试这段代码:
Process p = Runtime.getRuntime().exec
("C:\\Users\\*****\\Downloads\\PSTools\\pslist -m");
Process p = Runtime.getRuntime().exec(
"C:\\Users\\olawzi\\Downloads\\PSTools\\pslist.exe -s 2");
它给出了一个好结果, 但它不是JMX的方式。 我想使用JMX。 有没有办法做到这一点? 谢谢大家...
答案 0 :(得分:0)
你可以使用Nagios非常有效地监视JBoss和其他进程。你只需要一个jmx插件和mbean类,它们已经是here
通过一个小型Collector MBean和一个基于Perl的Nagios插件将JBoss集成到Nagios监控中。允许您非常有效地从JBoss服务器读取和监视JMX值。在Nagios服务器上,不需要安装JDK或JBoss。
<强>安装强>:
使用JBoss:
将collector.sar(从mbean /目录)复制到JBoss 部署目录。然后打开端口5566以使插件访问它。 与Tomcat或其他任何东西:
将collector.sar放在文件系统中的某处并添加 -javaagent:/path/to/collector.sar到要监视的JVM的选项。 Nagios服务器:
将插件check_mbean_collector(来自插件/目录)复制到 Nagios服务器上的Nagios插件目录。编辑你的Nagios config使用check_mbean_collector来监视的任何属性 任何MBean。您可能会检查插件和MBean是否正常工作 通过在Nagios服务器上进行测试运行:
./check_mbean_collector -H jbossserver -p 5566 -m jboss.system:type=ServerInfo -a ActiveThreadCount -w 200 -c 400<p>
使用nagios的好处是: 你不必每次都写定制的mbeans。 成千上万的现成插件。 可以通过集中式服务器以非常少的工作来监视大量分布式进程。 当然还有社区支持。
注意:你可以从here安装nagios但是如果你不想安装nrpe和nagios,那么使用op5 monitor和check_jmx plugin.you然后可以简单地使用它像
./check_jmx -U service:jmx:rmi:///jndi/rmi://'app-server':'1090'/jmxrmi -O jboss.jca:name=JmsXA,service=ManagedConnectionPool -A AvailableConnectionCount