jconsole远程linux中的tomcat
来源:互联网 发布:域名有哪几部分组成 编辑:程序博客网 时间:2024/05/25 20:01
为了监控服务器上tomcat的内存使用情况,用本地jconsole远程连接linux中的tomat。需要进行的配置如下:
1、在tomcat安装目录下的/bin/catalina.sh中添加JAVA_OPTS参数设置:
JAVA_OPTS="-server -Xms1024m -Xmx1024m -Xss256k -XX:+UseConcMarkSweepGC"JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote -Djava.rmi.server.hostname=192.168.21.55"JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.port=9004 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false"JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.access.file=/usr/local/java/jdk1.8.0_151/jre/lib/management/jmxremote.access -Dcom.sun.management.jmxremote.pwd.file=/usr/local/java/jdk1.8.0_151/jre/lib/management/jmxremote.password"
第一行的JAVA_OPTS是配置jvm参数用的。与jconsole远程无关。但是因为配了这个参数,遇到一点问题,参看 注意1。
第二行的JAVA_OPTS是配置远程hostname。
第三行的JAVA_OPTS配置远程的端口号和是否开启认证以及是否开启ssl验证。
第四行的JAVA_OPTS配置了认证的权限和用户名密码。两个参数指定的路径需要配对。若第三行中的 authenticate 配置为 false,则选择不需要用户名密码方式远程连接,此时第四行不必配置。jconsole远程登录的时候,输入ip:端口号即可,不用输入用户名密码。
2、进入jdk安装目录下的/jre/lib/management。
(1)编辑jmxremote.access文件,页面最后的几行解开注释。
(2)编辑jmxremote.password文件,页面最后两行解开注释。它们是两套用户名密码。当-Dcom.sun.management.jmxremote.authenticate=true的时候,可以用这两套来登录。 这两套用户名的权限不一样。monitorRole只能读,controlRole能读写。
若此目录下没有jmxremote.password,而有jmxremote.password.template。它们是一样的。上一步第四行配置指向它也可以。
(3)设置jmxremote.access和jmxremote.password两个文件的权限为600。命令为:
chmod 600 jmxremote.access jmxremote.password
3、配置结束,启动tomcat,用本地jconsole远程连接:
运行窗口中输入jconsole,界面中选远程连接。输入ip:端口号。ip为linux的ip,端口号为第一步中第三行JAVA_OPTS中配置的端口号,这里是9004。这是使用用户名密码连接的方式。还可不使用用户名密码登录。
登录界面:
两种方式连接成功图:
注意1:
若你的jdk是1.8及以上版本,配置jvm参数时,不能使用-XX:PermSize=64M -XX:MaxPermSize=256m,因为从jdk1.8起,永久区Perm已经被元空间Metaspace取代。设置参数改为了:MaxMetaspaceSize。详细了解:( http://caoyaojun1988-163-com.iteye.com/blog/1969853 )
注意2:
-Djava.rmi.server.hostname=192.168.21.55,这个hostname要配置为tomcat所在机器的ip地址。
总结:
在趟坑,解决问题的过程中。最重要的收获就是,想知道问题出在哪儿的时候,就去看日志。
看日志,看日志,看日志,重要的事情说三遍。
/*************************************问题系列**********************************************/
问题系列:
在解决的过程中遇到的问题以及使用的命令,顺带记录下来吧。若你我某天又遇到这个问题想不起来的时候还可以参考参考。
在修改配置后,启动tomcat的阶段,就因为对linux不熟,而出现了一系列问题。
在成功的前一刻才翻到一个同样趟了很多坑的道友的文章,传送门在此:(http://www.linuxidc.com/Linux/2015-02/113420.htm)
有一篇比较简洁的介绍jmxRemote与jconsole通过jmxremote连接tomcat的文章: (https://geekflare.com/enable-jmx-tomcat-to-monitor-administer/)
启动不了1:
查看日志:转到/usr/local/tomcat/logs目录下,用tail -f catalina.out命令。
检查到端口占用,原来两个tomcat端口配重了。
编辑/usr/local/tomcat/conf/server.xml,修改端口,重新启动。
启动不了2:
查看日志:看到新增的配置有几个问号。比如,第一行端口号9004后边有'?',删掉它,再启动。
启动不了3:
出现ignoring option MaxPermSize=256m;support was removed in 8.0等
这就是文章上面提到的注意1 中的内容。去掉maxPermSize和PermSize两个参数设置,继续启动。
启动不了4:
还有问题:Unrecongnized option: -
检查catalina.sh,有参数配置不小心 -Dcom.sun.management.jmxremote.authenticate=false 的 -和后边的字母之间多了一个空格,致使参数不完整了。删掉空格,重新启动。
启动不了5:
Error: Exception thrown by the agent : java.net.MalformedURLException: Local host name unknown: java.net.UnknownHostException: nodename.domainname: nodename.domainname: Name or service not known
无法识别的主机名:nodename.domainname:
这个主机名是我在/etc/hostname文件中配置的,经查询,/etc/hostname和/etc/hosts两个文件的作用一致。linux是CentOS7.0,默认的有/etc/hosts文件。因此我又把/etc/hostname文件给删掉了。在/etc/hosts和/etc/sysconfig/network中配置了主机名。关于主机名的配置请参照(https://jingyan.baidu.com/article/574c52192a1d8d6c8d9dc1ce.html ) 想了解/etc/hosts的作用,请进传送门( http://os.51cto.com/art/200803/68170.htm )
配置好hostname之后,再启动tomcat。终于启动成功了。
- jconsole远程linux中的tomcat
- jconsole监控远程linux下tomcat
- Jconsole远程监控Linux下Tomcat
- jconsole监控远程linux下tomcat
- 总结jconsole远程连接linux下tomcat
- jconsole远程监控Linux tomcat和weblogic
- JConsole 远程监控tomcat for Linux
- 本地jconsole远程监控linux系统tomcat
- Jconsole远程控制Tomcat
- JConsole远程连接Tomcat
- jconsole远程监控tomcat
- Jconsole监控远程tomcat
- linux下jconsole连接tomcat进行远程监控
- jconsole监控远程linux tomcat运行情况的配置
- Jconsole监控tomcat 的JVM内存(远程、linux、windows)
- jconsole监控远程linux下tomcat运行情况的配置
- Jconsole远程监控tomcat 的JVM内存(linux、windows)
- Jconsole监控tomcat 的JVM内存(远程、linux、windows)
- JavaScript中的引用类型(JS对象)(一)
- 数组输出超大数阶乘
- 归并排序
- Spark架构
- 2017中兴开发者大会测试分会 公开征集议题了!
- jconsole远程linux中的tomcat
- 基于OVSDB协议在SDN控制器ONOS开发配置管理OVS API
- 如何在Markdown中写公式
- linux中ftp连接成功但是无法上传和删除
- hdu-2001 计算两点间的距离
- Android最便捷的屏幕适配,堪称屏幕适配终结者
- Ubuntu16.04安装32位支持库
- Windows驱动之编写键盘记录器
- LevelDB源码分析之一:coding