本地win下JConsole监控远程linux下的JVM
环境:
服务器端: Linux + jdk1.7.0_75 + tomcat 7
本地: Win + jdk1.7.0_55
一、修改/etc/hosts文件
hostname -i 如果显示127.0.0.1时,修改/etc/hosts 将127.0.0.1替换成linux服务器的真实ip


二、修改 catalina.sh文件
vim /usr/local/tomcat7**/bin/catalina.sh #进入tomcat的bin目录下
在# OS specific support. $var _must_ be set to either true or false.下增加
#JAVA_OPTS="-Dcom.sun.management.jmxremote.port=9008 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"
三、修改jmxremote.access和jmxremote.password.template
cd /usr/java/jdk1.7.0_75/jre/lib/management
vim jmxremote.access
monitotRole 只读权限 随意添加一个用户xxxx controlRole 读写权限,添加用户admin
#monitorRole readonly
lisssss readonly
#controlRole readwrite \
admin readwrite \
create javax.management.monitor.*,javax.management.timer.* \
unregister
mv jmxremote.password.template jmxremote.password #重命名
chmod +w jmxremote.password #增加写权限
vim jmxremote.password 为只读用户和读写用户设置密码
# monitorRole QED
lisssss 1234xx
# controlRole R&D
admin 1234xx
四、打开本地jconsole,连接远程linux中jvm
1.打开jconsole
cmd----jconsole 或者双击C:\Program Files\Java\jdk1.7.0_55\bin下的jconsole.exe
2.连接远程linux中jvm
选择远程进程:远程服务器的ip:端口号 用户名、口令输入jmxremote.password中的用户名或密码---点击连接

jconsole监控成功如下图:

问题:监控后,关闭tomcat,报错:提示9008端口号被占用,原因在关闭tomcat时,也执行了Catalish中的jmxremote的端口号
[root@localhost bin]# ./shutdown.sh
/usr/local/tomcat7-java_shop/bin/catalina.sh: line : -agentpath:/opt/jprofiler7/bin/linux-x64/libjprofilerti.so=port=: No such file or directory
Using CATALINA_BASE: /usr/local/tomcat7**
Using CATALINA_HOME: /usr/local/tomcat7**
Using CATALINA_TMPDIR: /usr/local/tomcat7**/temp
Using JRE_HOME: /usr/java/jdk1..0_75
Using CLASSPATH: /usr/local/tomcat7-java_shop/bin/bootstrap.jar:/usr/local/tomcat7**/bin/tomcat-juli.jar
Error: Exception thrown by the agent : java.rmi.server.ExportException: Port already in use: ; nested exception is:
java.net.BindException: Address already in use
解决:在catalish.sh文件中,判断是否为启动命令,如果是start,就设置变量,否则,就不设置
JAVA_OPTS="$JAVA_OPTS -Xms256m -Xmx1024m -XX:PermSize=128M -XX:MaxPermSize=256m"
if [ "$1" = "start" ];then
echo "set console";
JAVA_OPTS="-Dcom.sun.management.jmxremote.port=9008 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false";
else
echo "no startup";
fi;
声明,本随笔综合了各大神的文章,就不一 一赘述了,在此表示感谢!
本地win下JConsole监控远程linux下的JVM的更多相关文章
- Jvisualvm监控远程linux下Tomcat
Jvisualvm监控远程linux下Tomcat 1.编辑tomcat/bin/catalina.sh 加入下面这段代码,中间无换行: CATALINA_OPTS="$CATALINA_O ...
- jconsole监控远程linux tomcat运行情况的配置 (转)
来自:http://zhumeng8337797.blog.163.com/blog/static/100768914201242494649455/ 步骤如下: 1.编辑tomcat/bin/cat ...
- jprofiler_监控远程linux服务器的JVM进程(转 非常棒)
几天前写了一篇文章,jprofiler_监控远程linux服务器的tomcat进程(实践),介绍了使用jprofiler怎样监控远程linux的tomcat进程,这两天想了想,除了可以监控tomcat ...
- jprofiler_监控远程linux服务器的JVM进程(实践)
几天前写了一篇文章,jprofiler_监控远程linux服务器的tomcat进程(实践),介绍了使用jprofiler怎样监控远程linux的tomcat进程,这两天想了想,除了可以监控tomcat ...
- jconsole监控上Linux上的JVM
说明: 首先JConsole这个是JDK里面自带的工具 在JAVA_HOME/bin目录下,今天主要测试远程监控JVM 第一步:设置好需要远程机器的Tomcat 修改Tomcat下的配置文件:/us ...
- Nagios的安装配置与应用之五监控远程Linux服务器
本文出自 “曹坏水” 博客,请务必保留此出处http://cao2012.blog.51cto.com/366908/1132113 NRPE是Nagios的一个功能扩展,它可在远程Linux和UNI ...
- Nagios学习笔记四:基于NRPE监控远程Linux主机
1.NRPE简介 Nagios监控远程主机的方法有多种,其方式包括SNMP.NRPE.SSH和NCSA等.这里介绍其通过NRPE监控远程Linux主机的方式. NRPE(Nagios Remote P ...
- 使用jconsole监控远程JVM
使用jconsole监控远程JVM 学习了:https://www.linuxidc.com/Linux/2015-02/113420.htm https://www.cnblogs.com/thin ...
- Linux下的tree命令 --Linux下目录树查看
Linux下的tree命令 --Linux下目录树查看 有时我们需要生成目录树结构,可以使用的有ls -R,但是实际效果并不好 这时需要用到tree命令,但是大部分Linux系统是默认不安装该命令的, ...
随机推荐
- hive中时间操作(二)
转:https://blog.csdn.net/qq646748739/article/details/77997276 --Hive中日期函数总结:--1.时间戳函数--日期转时间戳:从1970-0 ...
- node 文件上传
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...
- Java中对象的比较(学习笔记)
1)详细说明对象的比较方式有哪些? ①对象引用的比较("= ="运算符) "= ="是将对象的引用进行比较,实质是比较两个引用变量是否引用同一个对象.注意的点: ...
- [Algorithm] Bitwise Operators
"|" can be used as assign "&" can be used as check // Read, Write, Execute / ...
- 系统权限划分Liunx版
系统权限: 1. 当一个用户有两个系统的登录权限时,没有使用原来的那种系统id集合: 1,2,5形式,而是使用了这种形式 2. 杜绝重复
- Vue的数据双向绑定原理——Object-defineProperty
一.定义 ①方法会直接在一个对象上定义一个新属性,或者修改一个已经存在的属性, 并返回这个对象. ②vue.js的双向数据绑定就是通过Object.defineProperty方法实现的,俗称属性拦截 ...
- cf1191 解题报告
cf1191 解题报告 A-简单模拟 脑内算出来让计算机输出 #include <bits/stdc++.h> #define ll long long using namespace s ...
- 在vb.net中使用委托:经理 和 员工
现在开发的一个 vb.net系统,其中有两个窗体:alert窗体和 case窗体. 在alert窗体中列出了当前可以操作的若干个alert(可以理解为数据记录),用户可以选择将其中一个或几个alert ...
- 洛谷P5171 Earthquake
题面 题解 我们先把样例画出来: 看到它是一个减函数感觉很烦,考虑把函数转过来一下: 转过来的函数通过推导可得为: \[ y = \frac abx + \frac {c \bmod a}b \] 于 ...
- R语言 rds文件 和 文本文件 转换
library(data.table) ## 读取 rds 文件,然后保存为文本文件 data <- readRDS("pneumonia_pathogens.rds") w ...