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无法启动,命令行窗口一闪而过。
如不需密码验证,则在第二行开始添加下面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,

最新文章

  1. WPF 自定义BarChartControl(可左右滑动的柱状图)
  2. 转载:Tomcat的JVM设置和连接数设置
  3. ACM/ICPC 之 数论-斐波拉契●卢卡斯数列(HNNUOJ 11589)
  4. hdu 1548 楼梯 bfs或最短路 dijkstra
  5. linux服务器如何设置目录权限,让开发只能在测试目录下开发,不在线上目录上开发
  6. metaq
  7. 得到内网域管理员的5种常见方法<转>
  8. iscroll横向滑动(当前页状态标记自动变化)
  9. 谈谈 css 的各种居中——读编写高质量代码有感
  10. ruby操作mongo DB
  11. pt-show-grants
  12. C#:MVC引用Log4Net生成错误日志
  13. 重装@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:
  14. org.activiti.engine.activitiexception:version of activiti database(5.22) is more recent than the engine(5.12)
  15. Ubuntu pkg_resources.DistributionNotFound: The 'Scrapy==1.0.3' distribution was not found and is required by the application
  16. Swift udp实现根据端口号监听广播数据(利用GCDAsyncUdpSocket实现)
  17. Python操作MySql --Python3
  18. async/await学习笔记
  19. Cordova+Angularjs+Ionic 混合开发入门讲解
  20. 分布式一致性协议之:Gossip(八卦)算法

热门文章

  1. 嵌入式GPIO接口及操作(二)
  2. STM32F407+STemwin学习笔记之STemwin移植
  3. Anaconda下的python如何写入环境变量中
  4. Go语言中的流程控制
  5. java 中的线程池和线程 调用小demo
  6. MySQL高级-索引优化
  7. Linux命令应用大词典-第35章 终端
  8. Vue-cli 工具 / 通过 Vue-cli 工具重构 todoList
  9. OpenMPI源码剖析4:rte.h 头文件的说明信息
  10. vista x64 vs2010 win32添加资源 未能完成操作解决办法