zabbix 监控服务系列之--------使用JMX监控tomcat
我的环境是centOS6.5.64位、首先,我的zabbix——server服务器端,之前已经安装了zabbix,所以环境省略。
接下来,开始安装需要用于监控tomcat的一些东西:
1、
rpm -ivh jdk-8u20-linux64-x.rpm or
tar xvf jdk-8u20-linux64-tar.gz
2、
vi /etc/profile
JAVA_HOME=/usr/java/jdk1.8.0_20
PATH=$PATH:$JAVA_HOME
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME
export PATH
export CLASSPATH
source /etc/profile
java -version
3、重新编译zabbix,所以,先备份之前配置文件。(zabbix_server.conf)
cd /root/zabbix-2.0.6
./configure ./configure --enable-java -prefix=/usr/local/zabbix--enable-server --enable-agent --with-mysql --with-net-snmp --with-libcurl --with-net-snmp --with-libcurl
4、找到zabbix_java
vi /usr/local/zabbix/zabbix_java/sbin/zabbix_java/settings.sh
LISTEN_IP="0.0.0.0"
LISTEN_PORT=10052
START_POLLERS=5
5、在zabbix_server添加以下文件
vi /usr/local/zabbix/etc/zabbix_server.conf
JavaGateway=127.0.0.1
JavaGatewayPort=10052
StartJavaPollers=5
6、启动
cd /usr/local/zabbix/zabbix_java/sbin/zabbix_java
./startup.sh
在tomcat端:
1、
cd /usr/apache-tomcat-7.0.53/bin
修改tomcat catalina.sh
添加如下内容:
CATALINA_OPTS="-Dcom.sun.management.jmxremote-Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.port=12345 -Dcom.sun.management.jmxremote.ssh=false -Djava.rmi.server.hostname=192.168.18.19"
-----备注(192.168.18.19是客户端ip地址,即tomcat本身ip)
-----这里的Port要和zabbix服务器定义的监听jmx端口保持一致
2、
cd /usr/apache-tomcat-7.0.53/conf
vim server.xml
<Listener className="org.apache.catalina.mbeans.JmxRemoteLifecycleListener"rmiRegistryPortPlatform="12345" rmiServerPortPlatform="12346"/>
-----这里的Port要和zabbix服务器定义的监听jmx端口保持一致
3、 暂时不确定是不是需要
修改tomcat服务器的hostname
192.168.18.19 localhost.localdomain localhost
4、
cd /usr/apache-tomcat-7.0.53/lib
cp catalina-jmx-remote.jar /usr/apache-tomcat-7.0.53/lib
5、
重启tomcat
6;
cd /usr/apache-tomcat-7.0.53/bin
./startup.sh
回到 zabbix服务器:
在zabbix服务器端用工具测试
下载cmdline-jmxclient-0.10.3.jar工具
java -jar cmdline-jmxclient-0.10.3.jar -192.168.1.189:12345 java.lang:type=Memory NonHeapMemoryUsage
11/12/2014 15:39:30 +0800 org.archive.jmx.Client NonHeapMemoryUsage:
committed: 552665088
init: 539426816
max: 587202560
used: 75002232
回到 zabbixserver 端,我发现zabbix自带的tomcat模板,不出图,网上找到模块,直接导入即可使用。
(附件包括 cmdline-jmxclient-0.10.3.jar catalina-jmx-remote.jar tomcat模板 )
好东西学习了 真牛逼,好用啊! 不错不错,感谢楼主
为毛我执行测试就饱这个错
java -jar cmdline-jmxclient-0.10.3.jar - xxx.x.x.x.:10052 java.lang:type=Memory NonHeapMemoryUsage
Exception in thread "main" java.rmi.ConnectIOException: error during JRMP connection establishment; nested exception is:
javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure
at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:286)
at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:184)
at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:110)
at javax.management.remote.rmi.RMIServerImpl_Stub.newClient(Unknown Source)
at javax.management.remote.rmi.RMIConnector.getConnection(RMIConnector.java:2312)
at javax.management.remote.rmi.RMIConnector.connect(RMIConnector.java:277)
at javax.management.remote.JMXConnectorFactory.connect(JMXConnectorFactory.java:248)
at org.archive.jmx.Client.execute(Client.java:225)
at org.archive.jmx.Client.main(Client.java:154)
Caused by: javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure
at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:174)
at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:136)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.recvAlert(SSLSocketImpl.java:1657)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:932)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1096)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.writeRecord(SSLSocketImpl.java:623)
at com.sun.net.ssl.internal.ssl.AppOutputStream.write(AppOutputStream.java:59)
at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:65)
at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:123)
at java.io.DataOutputStream.flush(DataOutputStream.java:106)
at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:211)
... 8 more haoqiu008 发表于 2015-9-7 15:35
为毛我执行测试就饱这个错
java -jar cmdline-jmxclient-0.10.3.jar - xxx.x.x.x.:10052 java.lang:type=M ...
我的也出现这样的情况了!
请问你有没有解决啊?
CATALINA_OPTS="-Dcom.sun.management.jmxremote-Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.port=12345 -Dcom.sun.management.jmxremote.ssh=false -Djava.rmi.server.hostname=192.168.18.19"
这个应该不能加到最后,加到判断os后面即可 皮皮豆豆 发表于 2015-10-22 13:06
我的也出现这样的情况了!
请问你有没有解决啊?
端口错了,应该用12345这个端口进行测试取值 好东西,下载了 Exception in thread "main" java.io.IOException: Failed to retrieve RMIServer stub: javax.naming.ServiceUnavailableException [Root exception is java.rmi.ConnectException: Connection refused to host: 192.168.44.147; nested exception is:
java.net.ConnectException: Connection refused]
at javax.management.remote.rmi.RMIConnector.connect(RMIConnector.java:369)
at javax.management.remote.JMXConnectorFactory.connect(JMXConnectorFactory.java:268)
at org.archive.jmx.Client.execute(Client.java:225)
at org.archive.jmx.Client.main(Client.java:154)
Caused by: javax.naming.ServiceUnavailableException [Root exception is java.rmi.ConnectException: Connection refused to host: 192.168.44.147; nested exception is:
java.net.ConnectException: Connection refused]
at com.sun.jndi.rmi.registry.RegistryContext.lookup(RegistryContext.java:118)
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:1929)
at javax.management.remote.rmi.RMIConnector.findRMIServer(RMIConnector.java:1896)
at javax.management.remote.rmi.RMIConnector.connect(RMIConnector.java:286)
... 3 more
Caused by: java.rmi.ConnectException: Connection refused to host: 192.168.44.147; nested exception is:
java.net.ConnectException: Connection refused
at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:619)
at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:216)
at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:202)
at sun.rmi.server.UnicastRef.newCall(UnicastRef.java:341)
at sun.rmi.registry.RegistryImpl_Stub.lookup(Unknown Source)
at com.sun.jndi.rmi.registry.RegistryContext.lookup(RegistryContext.java:114)
... 8 more
Caused by: java.net.ConnectException: Connection refused
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:579)
at java.net.Socket.connect(Socket.java:528)
at java.net.Socket.<init>(Socket.java:425)
at java.net.Socket.<init>(Socket.java:208)
at sun.rmi.transport.proxy.RMIDirectSocketFactory.createSocket(RMIDirectSocketFactory.java:40)
at sun.rmi.transport.proxy.RMIMasterSocketFactory.createSocket(RMIMasterSocketFactory.java:147)
at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:613)
... 13 more
楼主若是看到,麻烦帮我看看呗, haoqiu008 发表于 2015-9-7 15:35
**** 作者被禁止或删除 内容自动屏蔽 ****
# java -jar cmdline-jmxclient-0.10.3.jar -10.3.6.3:12345 java.lang:type=Memory NonHeapMemoryUsage
Exception in thread "main" java.io.IOException: Failed to retrieve RMIServer stub: javax.naming.ServiceUnavailableException [Root exception is java.rmi.ConnectException: Connection refused to host: 10.3.6.3; nested exception is:
java.net.ConnectException: Connection refused]
at javax.management.remote.rmi.RMIConnector.connect(RMIConnector.java:357)
at javax.management.remote.JMXConnectorFactory.connect(JMXConnectorFactory.java:267)
at org.archive.jmx.Client.execute(Client.java:225)
at org.archive.jmx.Client.main(Client.java:154)
Caused by: javax.naming.ServiceUnavailableException [Root exception is java.rmi.ConnectException: Connection refused to host: 10.3.6.3; nested exception is:
java.net.ConnectException: Connection refused]
at com.sun.jndi.rmi.registry.RegistryContext.lookup(RegistryContext.java:118)
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:1924)
at javax.management.remote.rmi.RMIConnector.findRMIServer(RMIConnector.java:1891)
at javax.management.remote.rmi.RMIConnector.connect(RMIConnector.java:274)
... 3 more
Caused by: java.rmi.ConnectException: Connection refused to host: 10.3.6.3; nested exception is:
java.net.ConnectException: Connection refused
at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:619)
at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:216)
at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:202)
at sun.rmi.server.UnicastRef.newCall(UnicastRef.java:340)
at sun.rmi.registry.RegistryImpl_Stub.lookup(Unknown Source)
at com.sun.jndi.rmi.registry.RegistryContext.lookup(RegistryContext.java:114)
... 8 more
Caused by: java.net.
谢谢楼主分享!!!!! 各位又碰到这个模板导入到zabbix中是显示成功的但是使用的时候却死活找不到 我有问题,求解决。导入模板的时候显示成功,但是在搜索使用的时候死活找不到 好东西收藏了 我用zabbix3.0 自带tomcat,log也没抱错,但是图像不显示,改成你这个,导入进去template又找不到 挺好 还只是单端口的,用lld吧 谢谢分享,模版导入成功,使用无异常~~~
页:
[1]
2