JConsole毕竟是JDK自带的东西,功能虽然没有一些商业软件那么强大,但是稳定性好,在大压力情况下也不会发生什么问题。而且,提供了相对全面的系统监控功能,还是值得一用的。
JConsole
JConsole是一个基于JMX的GUI工具,用于连接正在运行的JVM,不过此JVM需要使用可管理的模式启动。如果要监控JAVA虚拟机,以weblogic为例,在环境变量里加上:com.sun.management.jmxremote
要启动JConsole,运行 JDK_HOME/bin/jconsole一个用于连接的对话框将会打开。对话框的Local标签列出了所有本地正在运行的JVM,还包含进程的ID等信息。
以上是监控本地的JVM。
——————————————————————————
下面来探讨一下远程实用Jconsole
1.在本地安装JDK
2.echo $JAVA_HOME,找出java安装路径
3.自己寻觅一个路径mkdir jcon_pwd,我们暂时命名为$your_path/jcon_pwd
4.执行cp $JAVA_HOME/jre/lib/management/jmxremote.pwd.template $your_path/jcon_pwd/jmxremote.pwd
5.vi jmxremote.pwd,修改monitorRole *****(your password)
6.在env.sh文件中的JAVA_OPTS参数中,加入:-Dcom.sun.management.jmxremote.port=9999 -Dcom.sun.management.jmxremote.pwd.file=$your_path/jcon_pwd/jmxremote.pwd -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false
注意port=9999,要是一个没有人使用的端口。
7.执行hostname -i ,如果显示的是127.0.0.1,需要修改/etc/hosts文件
#127.0.0.1 localhost localhost.localdomain localhost
<server ip> localhost localhost.localdomain localhost
8. 检查 vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=主机名 //在这里可以修改主机名
9.启动weblogic server
10.netstat -na|grep <listenport>, 如 netstat -na |grep 9999 查看后为listen状态
11.打开客户端%JAVA_HOME%/bin,双击打开jconsole.exe
12.指定连接参数:
远程主机: 服务器的真实IP地址
端口: port($JAVA_OPTIONS中-Dcom.sun.management.jmxremote.port指定的端口)
用户名:monitorRole
密码:your password(jmxremote.pwd中设置的密码)
13. 点击“连接”,OK
经过上述13步~你就可以通过jdk的自带工具,对服务器端jvm的各项参数进行监控
————————————————————————
官方文档:
You can use jconsole to monitor both local applications (those running on the same system as jconsole) and remote applications (those running on other systems).
Note: Using jconsole to monitor a local application is useful for development and prototyping, but is not recommended for production environments, because jconsole itself consumes significant system resources. Remote monitoring is recommended to isolate the jconsole application from the platform being monitored.
详情见:http://java.sun.com/j2se/1.5.0/docs/guide/management/jconsole.html