zoukankan      html  css  js  c++  java
  • 【转】配置远程jconsole监测tomcat

    最近想要监测tomcat及内存情况,用到了jdk1.6自带的jconsole工具,我的系统是win7,输入ip地址及用户名密码时候总是丢失焦点,很烦人。

    其实jdk自带了java VisualVM工具,个人感觉很好。

    一、用putty连接服务器:

    连接成功后,

    echo $JAVA_HOME

    注意:windows下是 %%形式的,但是linux不是%%形式查看变量。

    输出结果为:

    /usr/local/jdk1.6.0_27

    这是我jdk的路径。

    下面是查看系统进程的命令:

    Java代码 复制代码 收藏代码
    1. ps -lef |grep java

    注意:top命令是查看系统各个进程的资源占用情况。

    ps 命令是查看系统进程情况。


    此时能看到我的tomcat已经运行。

    我需要关闭tomcat:

    Java代码 复制代码 收藏代码
    1. sudo /home/bit/local/tomcat/bin/shutdown.sh

    注意:sudo是用超管权限执行此命令,输入密码即可。

    二、 编辑tomcat下得catalina.sh文件

    Java代码 复制代码 收藏代码
    1. vim /home/bit/local/tomcat/bin/catalina.sh

    在 JAVA_OPTS后面加上:

    Java代码 复制代码 收藏代码
    1. JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.port=6001 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"

    注意:一定要有双引号,否则是无法连接成功的,会报连接失败,是否重试错误。

    Java代码 复制代码 收藏代码
    1. -Dcom.sun.management.jmxremote.port=6001

    是设置jmx 远程端口,

    Java代码 复制代码 收藏代码
    1. -Dcom.sun.management.jmxremote.ssl=false

    设置是否加密连接。

    Java代码 复制代码 收藏代码
    1. -Dcom.sun.management.jmxremote.authenticate=false

    设置是否密码访问。

    输入完之后保存并关闭,命令为: :wq!

    如果想要将其他文件的内容放入此文件中输入:

    Java代码 复制代码 收藏代码
    1. r b.txt

    或者想要将任何命令的结果放入此文件中命令如下:

    Java代码 复制代码 收藏代码
    1. r ! more b.txt

    此时b里面的内容就进入到当前文件中了。

    编辑成功后输入命令启动tomcat

    Java代码 复制代码 收藏代码
    1. sudo /home/bit/local/tomcat/bin/startup.sh

    查看当前系统运行的进程:

    Java代码 复制代码 收藏代码
    1. ps -lef |grep java

    查看设置的端口是否在监听中:

    Java代码 复制代码 收藏代码
    1. netstat -anp |grep 6001

    此时已经知道端口处于监听状态。

    三、启动 jvisualvm


    输入ip及端口即可。

    过程中遇到的问题:

    1、当com.sun.management.jmxremote.authenticate=true(默认为true);并且jmxremote.password文件对其他用户权限设置过大,就会报如下错误信息:

    Error: Password file read access must be restricted:

    解决方案:

    更改文件权限即可:

    Java代码 复制代码 收藏代码
    1. sudo chmod 700 jmxremote.password

    2、当com.sun.management.jmxremote.authenticate=true ,但是没有创建jmxremote.password文件,就会报如下错误信息:

    Error: Password file not found: $JAVA_HOME/jre/lib/management/jmxremote.password

    解决方案:

    Java代码 复制代码 收藏代码
    1. cp $JAVA_HOME/jre/lib/management/jmxremote.password.template $JMXRemote_HOME/jmxremote.password

    如果想修改jmxremote.password这个文件可以更改权限,之后再改回来即可:

    Java代码 复制代码 收藏代码
    1. sudo chmod 777 jmxremote.password

    如果遇到关闭tomcat服务报:端口已经被占用的解决方案:

    查看进程的pid

    Java代码 复制代码 收藏代码
    1. netstat -anp | grep 6001

    后面能看到pid码

    Java代码 复制代码 收藏代码
    1. sudo kill -9 pid码

    3、如何设置密码?

    修改文见:

    $JAVA_HOME/jre/lib/management/jmxremote.access , 修改原来角色的权限,或新建角色,如新建
    xushigang readonly
    继续修改文件:
     
    在$JAVA_HOME/jconsole_pwd/jmxremote.password, 修改原角色的密码, 如把# monitorRole QED前的注释去掉,并且把密码QED修改为你的密码, 增加一行 xushigang thisispassword
     
    对我很有帮助的文章:
     
    http://blog.dev2dev.us/2011/03/monitor-with-java-visualvm/
  • 相关阅读:
    Delphi TCXTreeList的一些操作
    Authentication failure. Retrying 彻底解决vagrant up时警告
    Linux查看mysql 安装路径和运行路径
    和重复搭建开发环境说 Bye Bye 之Vagrant
    怎样查看MySql数据库物理文件存放位置
    10分钟彻底理解Redis持久化和主从复制
    胡子决定编程语言运势
    总结: asp.net页面间数据传递(转)
    利用System.IO中的Directory类对目录进行基本操作
    SQL中读出表中字段
  • 原文地址:https://www.cnblogs.com/huzhiwei/p/2424761.html
Copyright © 2011-2022 走看看