jconsole工具监控java运行情况
2024-10-19 11:40:28
jconsole是jdk自带的工具。所以要先安装jdk
1.jconsole工具的路径:
通过which jconsole来查看
/usr/local/jdk1.7.0_79/bin/jconsole
2.使用方式:
在linux监控端的图形界面执行:/usr/local/jdk1.7.0_79/bin/jconsole 将出现图形化java监控和管理控制台。
3.执行后出现JConsole新建连接,有两个选择:
1.本地进程(可以监控本机的java)
——》org.apache.catalina.startup.Bootstartup start
2.远程进程(用于监控其他主机的java)
——》填写需要被监控的主机名:监控端口,输入监控专用的用户名/密码(可选)
步骤1:需在被监控的主机上修改catalina.sh配置文件:
vi /opt/tomcat/conf/catalina.sh
1) 开启JVM远程监控
-Dcom.sun.management.jmxremote=true
2) 监控的IP地址
-Djava.rmi.server.hostname=192.168.91.166,远程进程所在主机的IP。
3) 监控的端口
-Dcom.sun.management.jmxremote.port=50013,这个端口值可以任意设置,但在之后用Jconsole连接这个远程进程的时候,远程进程中的port一定要和此处的设置一致,并且一定不要和远程进程的服务端口区分开。
4) 是否禁用ssl验证
-Dcom.sun.management.jmxremote.ssl,false为禁用,true为启用。
5) 是否需要用户密码验证
-Dcom.sun.management.jmxremote.authenticate,false为不需要验证,true为需要验证。但我在Win7(32位、64位)中tomcat5.5.23下试着将该选项设置为true,tomcat无法启动,命令行窗口一闪而过。
-Dcom.sun.management.jmxremote=true
2) 监控的IP地址
-Djava.rmi.server.hostname=192.168.91.166,远程进程所在主机的IP。
3) 监控的端口
-Dcom.sun.management.jmxremote.port=50013,这个端口值可以任意设置,但在之后用Jconsole连接这个远程进程的时候,远程进程中的port一定要和此处的设置一致,并且一定不要和远程进程的服务端口区分开。
4) 是否禁用ssl验证
-Dcom.sun.management.jmxremote.ssl,false为禁用,true为启用。
5) 是否需要用户密码验证
-Dcom.sun.management.jmxremote.authenticate,false为不需要验证,true为需要验证。但我在Win7(32位、64位)中tomcat5.5.23下试着将该选项设置为true,tomcat无法启动,命令行窗口一闪而过。
如不需密码验证,则在第二行开始添加下面3行:
JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.port=12345"
JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.authenticate=false"
JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.ssl=false"
保存退出 //“12345”为监控端口号
如需密码验证,则改为下面4行:
JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.port=12345"
JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.authenticate=true"
JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.ssl=false"
JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.pwd.file=/usr/local/jdk1.7.0_79/jre/lib/management/jmxremote.password"
保存退出
步骤2:将/usr/local/jdk1.7.0_79/jre/lib/management/jmxremote.password.template复制一份:
cp /usr/local/jdk1.7.0_79/jre/lib/management/jmxremote.password.template \
/usr/local/jdk1.7.0_79/jre/lib/management/jmxremote.password
步骤3:添加用于远程监控的用户名和密码:
vi jmxremote.password //用于添加用户名和密码
monitorRole 12345678 //用户名:monitorRole,这个名字系统是预先设置好的
admin 123456 //自定义了用户名:admin
root 123456 //自定义了用户名:root
强制保存退出
vi jmxremote.access //自定义监控的用户名具有哪些权限
添加:
admin readonly //定义只读帐号,名字任意
root readwrite \ //定义读写帐号,名字任意
create javax.management.monitor.*,javax.management.timer.* \
保存退出
chmod 600 jmxremote.password
chown uucp:uucp jmxremote.password //先用ls -l /usr/local/jdk1.7.0_79看看是属于哪个用户和组,再设置成相同的。
注:如果JConsole不能访问本机的程序的话,添加如下内容:
JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote"
好了,可以连接了:
输入要被监控的主机名cen01,端口:12345,
最新文章
- WPF 自定义BarChartControl(可左右滑动的柱状图)
- 转载:Tomcat的JVM设置和连接数设置
- ACM/ICPC 之 数论-斐波拉契●卢卡斯数列(HNNUOJ 11589)
- hdu 1548 楼梯 bfs或最短路 dijkstra
- linux服务器如何设置目录权限,让开发只能在测试目录下开发,不在线上目录上开发
- metaq
- 得到内网域管理员的5种常见方法<;转>;
- iscroll横向滑动(当前页状态标记自动变化)
- 谈谈 css 的各种居中——读编写高质量代码有感
- ruby操作mongo DB
- pt-show-grants
- C#:MVC引用Log4Net生成错误日志
- 重装@angular/cli reason: write EPROTO 139955972261696:error:1408F10B:SSL routines:ssl3_get_record:wrong version number:../deps/openssl/openssl/ssl/record/ssl3_record.c:252:
- org.activiti.engine.activitiexception:version of activiti database(5.22) is more recent than the engine(5.12)
- Ubuntu pkg_resources.DistributionNotFound: The &#39;Scrapy==1.0.3&#39; distribution was not found and is required by the application
- Swift udp实现根据端口号监听广播数据(利用GCDAsyncUdpSocket实现)
- Python操作MySql --Python3
- async/await学习笔记
- Cordova+Angularjs+Ionic 混合开发入门讲解
- 分布式一致性协议之:Gossip(八卦)算法