首先,看本机(Windows)安装了JRE没

Win 》 CMD 打开命令窗口

如有安装,则会显示以下版本信息;若没有显示,就安装吧

 C:\Users\Administrator>java -version
java version "1.8.0_111"
Java(TM) SE Runtime Environment (build 1.8.0_111-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.111-b14, mixed mode)

1)在Windows命令窗口直接命令打开JConsole

 C:\Users\Administrator>jconsole

2)抱着碰运气的心理尝试连接一下,结果,连接失败

看来没法偷懒,还是得配置才行,那就来吧

需要的信息:

  • Linux 服务器的root账号及密码
  • 项目Tomcat路径,一般是:/usr/local/tomcat/tomcat_jdt

1、先来看一下项目的相关信息

 [root@test1 bin]# cd /usr/local/tomcat/tomcat_jdt/bin
[root@test1 bin]# ./version.sh
Using CATALINA_BASE: /usr/local/tomcat/tomcat_jdt
Using CATALINA_HOME: /usr/local/tomcat/tomcat_jdt
Using CATALINA_TMPDIR: /usr/local/tomcat/tomcat_jdt/temp
Using JRE_HOME: /usr/local/jdk1.7.0_79
Using CLASSPATH: /usr/local/tomcat/tomcat_jdt/bin/bootstrap.jar:/usr/local/tomcat/tomcat_jdt/bin/tomcat-juli.jar
Server version: Apache Tomcat/7.0.68
Server built: Feb 8 2016 20:25:54 UTC
Server number: 7.0.68.0
OS Name: Linux
OS Version: 2.6.32-431.el6.x86_64
Architecture: amd64
JVM Version: 1.7.0_79-b15
JVM Vendor: Oracle Corporation

2、通过配置Tomcat项目来开启远程监控

3、打开Tomcat项目bin目录

 [root@test1 ~]# cd /usr/local/tomcat/tomcat_jdt/bin/
[root@test1 bin]# pwd
/usr/local/tomcat/tomcat_jdt/bin

4、编辑 catalina.sh 文件

 [root@test1 bin]# vi catalina.sh

5、找到这么一句:# ----- Execute The Requested Command -----------------------------------------

并在其上方加入以下配置(配置的描述说明自己度娘)

 JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote -Djava.rmi.server.hostname=17.19.0.23 -Dcom.sun.management.jmxremote.port=9070 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"

17.19.0.23 是服务器的IP

9070是新的端口,jconsole专用

6、完成后大致如下

 …

 # org.apache.catalina.security.SecurityListener

 #JAVA_OPTS="$JAVA_OPTS -Dorg.apache.catalina.security.SecurityListener.UMASK=`umask`"

 JAVA_OPTS="$JAVA_OPTS -Ddt.base=/usr/local/tomcat/config_dt -Xmx1500m -Xms512m -XX:PermSize=1024M -XX:MaxPermSize=1600m"

 JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote -Djava.rmi.server.hostname=17.19.0.23 -Dcom.sun.management.jmxremote.port=9070 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"

 # ----- Execute The Requested Command -----------------------------------------

 …

7、OK,配置就完成了;

8、一般情况下,项目配置修改后都是需要重启才生效的;

9、关闭项目Tomcat,结果报错

 [root@test1 bin]# ./shutdown.sh
Using CATALINA_BASE: /usr/local/tomcat/tomcat_jdt
Using CATALINA_HOME: /usr/local/tomcat/tomcat_jdt
Using CATALINA_TMPDIR: /usr/local/tomcat/tomcat_jdt/temp
Using JRE_HOME: /usr/local/jdk1.7.0_79
Using CLASSPATH: /usr/local/tomcat/tomcat_jdt/bin/bootstrap.jar:/usr/local/tomcat/tomcat_jdt/bin/tomcat-juli.jar
Error: Exception thrown by the agent : java.rmi.server.ExportException: Port already in use: 9070; nested exception is: java.net.BindException: Address already in use

10、解决方法,直接杀掉Tomcat项目进程:kill -9 pid

11、再次执行 shutdown.sh 脚本,成功;

 [root@test1 bin]# ./shutdown.sh

12、执行 startup.sh 启动脚本,项目启动成功;

 [root@test1 bin]# ./startup.sh

13、Windows下JConsole再连接,又失败

14、看catalina日志,又没报错。。。没方向了?

15、查一下9070端口,没启动!

 [root@test1 bin]# netstat -an | grep 9070

 [root@test1 bin]#

16、查看一下防火墙有没有开

 [root@test1 bin]# service iptables status

17、如有防火墙开着的,就将 9070 端口给开放了

 [root@test1 bin]# vi /etc/sysconfig/iptables

18、修改 iptables 文件时需要注意的是 -A INPUT -m state --state NEW -m tcp -p tcp --dport 9070 -j ACCEPT 要放到端口 22 的下方

完成后大概是这样的

 ...
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 9070 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
...
  • 当然了,不管防火墙状态,更直接的方法是关了防火墙。。。
 [root@test1 bin]# service iptables stop
iptables: Setting chains to policy ACCEPT: filter [ OK ]
iptables: Flushing firewall rules: [ OK ]
iptables: Unloading modules: [ OK ]
[root@test1 bin]# service iptables status
iptables: Firewall is not running.

19、再查一下hostname 及其IP地址,结果是:hostname: Unknown host

 [root@test1 bin]# hostname
test1
[root@test1 bin]# hostname -i
hostname: Unknown host
[root@test1 bin]#

解决方法:将 hosts 中的 127.0.0.1 修改为服务器在局域网中的 IP,并将其指向 hostname(主机名)

 [root@test1 bin]# vi /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6

修改后,长这样

 17.19.0.23 localhost localhost.localdomain localhost4 localhost4.localdomain4 test1
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6…

20、再次重启Tomcat项目,再查一下9070端口,已经在监听:

 [root@test1 bin]# netstat -an | grep 9070
tcp 0 0 :::9070 :::* LISTEN

21、Windows下,JConsole再连接,成功

外篇:需要密码验证的配置

注:以下只列出关键步骤,未验证过

1、开启验证模式,并指定用户账号密码文件

   JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote -Djava.rmi.server.hostname=172.19.0.203 -Dcom.sun.management.jmxremote.port=9070 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=true -Dcom.sun.management.jmxremote.password.file=/usr/local/jdk1.7.0_79/jre/lib/management/jmxremote.password"

也有一说法,这个 jmxremote.access 权限设置文件也很重要,直接在 JAVA_OPTS 后面加上即可

 -Dcom.sun.management.jmxremote.access.file=/usr/local/jdk1.7.0_79/jre/lib//management/jmxremote.access

2、找到配置修改账号密码的目录

 [root@test1 bin]# cd /usr/local/jdk1.7.0_79/jre/lib/management
[root@test1 management]# ll
total 28
-rw-r--r--. 1 uucp 143 3998 Apr 11 2015 jmxremote.access
-r--r--r--. 1 uucp 143 2856 Apr 11 2015 jmxremote.password.template
-rw-r--r--. 1 uucp 143 14097 Apr 11 2015 management.properties
-r--r--r--. 1 uucp 143 3376 Apr 11 2015 snmp.acl.template

3、复制 jmxremote.password.template ,并新命名为 jmxremote.password

 [root@test1 management]# cp jmxremote.password.template jmxremote.password
[root@test1 management]# ll
total 32
-rw-r--r--. 1 uucp 143 3998 Apr 11 2015 jmxremote.access
-r--r--r-- 1 root root 2856 Mar 13 15:27 jmxremote.password
-r--r--r--. 1 uucp 143 2856 Apr 11 2015 jmxremote.password.template
-rw-r--r--. 1 uucp 143 14097 Apr 11 2015 management.properties
-r--r--r--. 1 uucp 143 3376 Apr 11 2015 snmp.acl.template

4、给两个文件 jmxremote.access jmxremote.password 加上 600 权限

 [root@test1 management]# chmod 600 jmxremote.access jmxremote.password

5、将 jmxremote.password 两行的注释去掉

 [root@test1 management]# vi jmxremote.password
...
# monitorRole QED
# controlRole R&D
...

6、注释去掉后长这样:

 ...
monitorRole QED
controlRole R&D
...

7、配置完成,重启Tomcat 项目,在 JConsole 上连接时加上账号(monitorRole )密码(QED)

The End

JConsole远程监控配置的更多相关文章

  1. 在resin配置參数实现JConsole远程监控JVM

    在Resin配置參数实现JConsole远程监控JVM 在Resin中配置中配置下列參数,就能够是实现了! <jvm-arg>-Dcom.sun.management.jmxremote& ...

  2. jvm监控工具jconsole进行远程监控配置

    [环境] SUSE linux11 + jdk1.6 + tomcat7 [场景] 最近在做性能测试,想通过我本地(win7)上的jdk来远程监控上述服务器的jvm相关信息. [配置] 配置上述服务器 ...

  3. 使用JCONSOLE远程监控JVM

    启动JMS服务 JConsole是从Java 5中开始引入的一个用于对JVM性能和资源消耗进行监控的图形化工具.JConsole可以连接本地的Java程序,也可以连接远程的Java程序.由于是GUI的 ...

  4. JConsole远程连接配置

    JConsole远程连接还是有一点坑的.这里记录一下配置过程,好记性不如烂笔头. 1.在远程机的tomcat的catalina.sh中加入配置: JAVA_OPTS="$JAVA_OPTS ...

  5. VisualVM使用Jstatd和JMX远程监控配置(转载)

    一.Jstatd远程监控服务器配置 jstat可以实时显示本地或远程JVM进程中类装载.内存.垃圾收集.JIT编译等数据.如果要显示远程JVM信息,需要远程主机开启RMI支持,详情如下: 1. 在JA ...

  6. Jconsole远程监控tomcat 的JVM内存(linux、windows)

    Jconsole是JDK自带的监控工具,在JDK/bin目录下可以找到.它用于连接正在运行的本地或者远程的JVM,对运行在java应用程序的资源消耗和性能进行监控,并画出大量的图表,提供强大的可视化界 ...

  7. windows利用jconsole远程监控linux的tomcat

    1.配置tomcat ①  编辑tomcat的catelina.sh文件,进入tomcat安装目录,使用命令:sudo vim bin/catalina.sh,如果是普通用户启动的,则修改damen. ...

  8. 【jvisualvm远程监控配置】

    第一步:首先通过hostname -i  和ifconfig命令,查看一下IP地址是否一致 如果不一致,修改hosts的IP地址:vi /etc/hosts    把ip地址和ifconfig的地址修 ...

  9. JConsole远程监控Tomcat7

    下面技术应用于最优质的水果的鲜果篮 一.设置服务端: 1.增加Listener到conf/server.xml <Listener className="org.apache.cata ...

随机推荐

  1. iBatis 简单介绍及基础入门

    iBATIS一词来源于“internet”和“abatis”的组合,是一个由Clinton Begin在2002年发起的开放源代码项目.于2010年6月16号被谷歌托管,改名为MyBatis.是一个基 ...

  2. OSI 与 TCP/IP

    OSI参考模型 物理层(Physical Layer) --- 数据表示.物理层规定了激活.维持.关闭通信端点之间的机械特性.电气特性.               功能特性以及过程特性.该层为上层协 ...

  3. 20145229吴姗珊两天小总结 《Java程序设计》第4周学习总结

    20145229吴姗珊两天小总结 <Java程序设计>第4周学习总结 教材学习内容总结 由于自己的基础不好对知识的理解不透彻,所以这两天的学习还是集中在第六章和第七章,对知识点多了一点理解 ...

  4. JAVA- 数据库连接池原理

    第一次Java程序要在MySQL中执行一条语句,那么就必须建立一个Connection对象,代表了与MySQL数据库的连接通过直接发送你要执行的SQL语句之后,就会调用Connection.close ...

  5. Sqlte 知识点记录

    1.表存在 select count(*) from sqlite_master where type='table' and name='MyTable'; sql),path ))"; ...

  6. 理解VMware虚拟网络

    简述:VMware虚拟网络概述.实现虚拟网络上网 Part0 子网掩码.DHCP.NAT,这些点请自行百度,百度百科讲的很清晰. Part1 转载:本文出自 "王春海的博客" 博客 ...

  7. 利用simhash计算文本相似度

    摘自:http://www.programcreek.com/java-api-examples/index.php?source_dir=textmining-master/src/com/gta/ ...

  8. linux命令学习笔记(49):at命令

    在windows系统中,windows提供了计划任务这一功能,在控制面板 -> 性能与维护 -> 任务计划, 它的功能就是安排自动运行的任务. 通过'添加任务计划'的一步步引导,则可建立一 ...

  9. FEC之异或运算应用

    话说为啥FEC需要异或( ^/⊕ )操作呢? 异或:xor 异或运算规则: 0 xor 0 = 0 0 xor 1 = 1 1 xor 0 = 1 1 xor 1 = 0 异或运算特性: 1). a ...

  10. H264 NALU 使用PS封装 RTP发送

    最近由于项目平台需求,要将H264 NALU封装为PS再用RTP发送,PS封装按照ISO DEC-13818-1标准.一个PS包包含PS Header, PES Header, PS system h ...