怎样远程监控Jboss
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、简言
Java 6.x采用JMX方式提供了一系列监视和管理虚拟机的API,随SDK一起发布的JConsole则是采用这些API实现监控虚拟机的使用工具。
JConsole能够提供被监控虚拟机的内存、线程、类的加载以及MBean等信息,从而能够对服务器的运行情况进行实时监控。
二、运行环境
服务器:Redhat Linux ES 5.4 + JDK 1.6.07 + Jboss 4.2.2
ip地址:192.168.100.86
客户机:Windows + JDK 1.6.10
三、参数配置
1> 修改java虚拟机启动参数
jboos需要修改的文件是在bin目录下的run.sh[Linux]或者run.bat[Windows]
Config代码
1.Linux下的修改方式:分以下两种方式(不需要身份认证与需要身份认证)
A 不需要身份认证
在%JBOSS_HOME%\bin\run.sh ($JBOSS_HOME=/home/jboss/jboss-5.1.0.GA) 文件中将JAVA_OPTS="$JAVA_OPTS =$PROGNAME "
修改为:
JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.port=9999" #此端口可自定义
JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.authenticate=false" (如果jconsole连接时不需要身份认证,可加上这一句!)
JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.ssl=false"
JAVA_OPTS="$JAVA_OPTS -Djava.rmi.server.hostname=192.168.100.86" #Server ip
B,使用身份认证连接的方式
a.新建一个目录保存密码文件
mkdir $JAVA_HOME/jconsole
b. 将密码文件的模板复制到第一步创建的目录
cp $JAVA_HOME/jre/lib/management/jmxremote.password.template
$JAVA_HOME/jconsole/jmxremote.password
c. 若需要,可以修改文件 $JAVA_HOME/jre/lib/management/jmxremote.access , 修改原来角色的权限,或新建角色,比如新建 myMonitorRole readonly
d. 在$JAVA_HOME/jconsole/jmxremot
e.password, 修改原角色的密码, 如把# monitorRole QED 前的注释去掉,并且把密码QED修改为你的密码.
或为第3步新建的角色设置密码 -- 增加一行 myMonitorRole mypassword
($JAVA_HOME/jre/lib/management/jmxremote.access (添加用户,并指定权限的角色,比如只读,或是可读可写)
$JAVA_HOME/jconsole/jmxremote.password (设置上一步所加用户的密码)
#JAVA_OPTS="$JAVA_OPTS =$PROGNAME" 带#号为注释的项
JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.port=9999"
JAVA_OPTS="$JAVA_OPTS
-Dcom.sun.management.jmxremote.password.file=$JAVA_HOME/jconsole/jmxremote.password "
#JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.authenticate=false"
JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.ssl=false"
JAVA_OPTS="$JAVA_OPTS -Djava.rmi.server.hostname=192.168.100.86"
四,如果要监控的jboss为 Windows 服务器(我尚未测试)
Config代码
1.windows下的修改方式:
2.rem -------- 增加jconsole监控
---------------------------------------------------------------------------
3.set JAVA_OPTS=%JAVA_OPTS% =%PROGNAME%
4.set JAVA_OPTS=%JAVA_OPTS% -Dcom.sun.management.jmxremote.port=9999
5.set JAVA_OPTS=%JAVA_OPTS% -Dcom.sun.management.jmxremote.authenticate=false
6.set JAVA_OPTS=%JAVA_OPTS% -Dcom.sun.management.jmxremote.ssl=false
7.set JAVA_OPTS=%JAVA_OPTS% -Djava.rmi.server.hostname=192.168.100.86
注意:
1、9999表示监控的端口号,确保指定的端口不被占用;
2、可以采用netstat -an来查看已经占用的端口;
3、配合lsof -i:portnum 来查看占用端口的具体应用程序;
4、另外如果开启了防火墙服务,请确保端口能够透过防火墙访问;
5、192.168.100.86为当前服务器的IP;
五,重启动JBoss服务器
./run.sh -b192.168.1.5,必须通过-b参数指定Jboss服务器绑定的地址;
允许所有用户连接则为 -b 0.0.0.0
nohup sh shutdown.sh –S
ps -aux |grep jboss
nohup sh run.sh -b 0.0.0.0 &
六,如果无法连接有可能是linux服务器的hostname存在问题
执行hostname -i ,如果显示的是127.0.0.1,则需要修改/etc/hosts文件
vi /etc/hosts,修改如下:
#127.0.0.1 localhost localhost.localdomain localhost
服务器的真实IP地址 localhost localhost.localdomain localhost
七. 在windows 端启动java程序Jconsole
连接远程虚拟机
启动%JAVA_HOME%\bin目录下的JConsole,
在弹出对话框的“远程进程:”一栏中,输入192.168.100.86:9999,然后点击“连接”,就能查看到远程Jboss服务器的运行情况了。