最近想要监测tomcat及内存情况,用到了jdk1.6自带的jconsole工具,我的系统是win7,输入ip地址及用户名密码时候总是丢失焦点,很烦人。
其实jdk自带了java VisualVM工具,个人感觉很好。
一、用putty连接服务器:
连接成功后,
echo $JAVA_HOME
注意:windows下是 %%形式的,但是linux不是%%形式查看变量。
输出结果为:
/usr/local/jdk1.6.0_27
这是我jdk的路径。
下面是查看系统进程的命令:
- ps -lef |grep java
注意:top命令是查看系统各个进程的资源占用情况。
ps 命令是查看系统进程情况。
此时能看到我的tomcat已经运行。
我需要关闭tomcat:
- sudo /home/bit/local/tomcat/bin/shutdown.sh
注意:sudo是用超管权限执行此命令,输入密码即可。
二、 编辑tomcat下得catalina.sh文件
- vim /home/bit/local/tomcat/bin/catalina.sh
在 JAVA_OPTS后面加上:
- JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.port=6001 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"
注意:一定要有双引号,否则是无法连接成功的,会报连接失败,是否重试错误。
- -Dcom.sun.management.jmxremote.port=6001
是设置jmx 远程端口,
- -Dcom.sun.management.jmxremote.ssl=false
设置是否加密连接。
- -Dcom.sun.management.jmxremote.authenticate=false
设置是否密码访问。
输入完之后保存并关闭,命令为: :wq!
如果想要将其他文件的内容放入此文件中输入:
- r b.txt
或者想要将任何命令的结果放入此文件中命令如下:
- r ! more b.txt
此时b里面的内容就进入到当前文件中了。
编辑成功后输入命令启动tomcat
- sudo /home/bit/local/tomcat/bin/startup.sh
查看当前系统运行的进程:
- ps -lef |grep java
查看设置的端口是否在监听中:
- netstat -anp |grep 6001
此时已经知道端口处于监听状态。
三、启动 jvisualvm
输入ip及端口即可。
过程中遇到的问题:
1、当com.sun.management.jmxremote.authenticate=true(默认为true);并且jmxremote.password文件对其他用户权限设置过大,就会报如下错误信息:
Error: Password file read access must be restricted:
解决方案:
更改文件权限即可:
- 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
解决方案:
- cp $JAVA_HOME/jre/lib/management/jmxremote.password.template $JMXRemote_HOME/jmxremote.password
如果想修改jmxremote.password这个文件可以更改权限,之后再改回来即可:
- sudo chmod 777 jmxremote.password
如果遇到关闭tomcat服务报:端口已经被占用的解决方案:
查看进程的pid
- netstat -anp | grep 6001
后面能看到pid码
- sudo kill -9 pid码
3、如何设置密码?
修改文见:
xushigang readonly