设为首页 收藏本站
查看: 252|回复: 0

[经验分享] jconsole_tomcat 基于jdk1.5--3

[复制链接]

尚未签到

发表于 2017-1-29 08:52:56 | 显示全部楼层 |阅读模式
  Figure 15: List of All Logger Names.
  Logging MBean也支持三种操作:

  • getParentLoggerName. 返回指定logger的父logger
  • getLoggerLevel. 返回指定logger的日志等级
  • setLoggerLevel.设置指定logger到一个新的等级
  所有三个操作都把日志名称作为第一个参数。
  
DSC0000.jpg
 
  Figure 16: Setting Log Level.
  获取操作系统资源信息-Sun平台下的扩展
  JDK5.0扩展了操作系统的MBean,以此可以获取一下系统资源的信息,如:

  • 处理的CPU
  • 总共的和空闲的物理内存
  • 可获得的虚拟内存。(即保证可以分配给运行的进程的虚拟内存)
  • 总共的和空闲的交换区
  • 打开的文件总数(只能在Unix下使用)
  当打开MBeans标签下的Operating System MBean,你可以看到平台可以执行的所有属性和操作。你可以监控任何一个属性随时间的变化——如,CPU时间-双击属性的值域部分。
  
DSC0001.jpg
 
  Figure 17: MBeans Tab OS.
  除此之外,VM标签和Summary标签提供了操作系统资源的一些信息
  
管理应用的MBean
被监控的SampleTest应用有它自己的Hello MBean:
  com.sun.example:type=Hello如果CacheSize 属性发生改变,Hello MBean将会发送一个通知。你可以和管理平台的MBeans一样使用MBeans标签页来管理你的应用的MBean。例如,当CacheSize 属性变化的时候你想监控。你首先可以在Notification标签页中订阅。如果你改变CacheSize,你可以看到一个通知被发送。
  
DSC0002.jpg
 
  Figure 18: Notifications.
配置tomcat使用jconsole
修改catalina脚本
  Windows平台:修改catalina.bat,在dorun和dostart段开头增加一行(注意是一行):
  set JAVA_OPTS=%JAVA_OPTS% -Dcom.sun.management.jmxremote
  -Dcom.sun.management.jmxremote.port="9004"
  -Dcom.sun.management.jmxremote.authenticate="false" -Dcom.sun.management.jmxremote.ssl="false"
  Unix/Linux平台:修改catalina.sh,在dorun和dostart段开头增加一行(注意是一行):
  JAVA_OPTS="$JAVA_OPTS "-Dcom.sun.management.jmxremote
  -Dcom.sun.management.jmxremote.port="9004"
  -Dcom.sun.management.jmxremote.authenticate="false" -Dcom.sun.management.jmxremote.ssl="false"
启动jconsole
  启动tomcat之后,根据上文中的jconsole简介中的命令启动jconsole,如果是在服务器本地运行jconsole,会出现如下界面:
  
DSC0003.jpg
 
  直接进行连接即可。
  如果是远程监控,需要点击远程选项卡并输入相关信息,示例如下:
  
DSC0004.jpg
 
  “主机名或ip”处填写需要监视的主机ip,端口为服务器上上文中添加的-Dcom.sun.management.jmxremote.port="portNumber"设定的端口,本文以9004为例。在设定为:-Dcom.sun.management.jmxremote.authenticate="false" 的情况下,用户名和口令留空即可。
进阶安全设定
  在上文中的配置适用于在测试环境中监视tomcat,如果是在生产环境中监视tomcat则需要在安全性上有进一步要求。
配置jmx访问密码
  1. 修改上文中的catalina脚本中的JAVA_OPT参数,将
-Dcom.sun.management.jmxremote.authenticate="false" 修改为:
-Dcom.sun.management.jmxremote.authenticate="true"
  2. 将$JRE/lib/management/jmxremote.password.template文件在同目录下复制一份,重命名为$JRE/lib/management/jmxremote.password,编辑jmxremote.password,添加允许访问的用户名及密码,比如添加用户zxwh,密码为zxme,则在文件尾添加一行:
zxwh zxme
注意用户密码不能包含空格,tab等字符
  3. 编辑$JRE_HOME/lib/management/jmxremote.access文件,对刚才添加的用户赋予一定的权限:
zxwh readonly (或者readwrite)
  4. 确认jmxremote.password和jmxremote.access两个文件中的用户是相同的。注意如果jmxremote.access中没有对应用户的话,配置是无效的。
注:以上配置文件的位置都是可以更改的,具体配置方法在此不再赘述。
  5. 由于jmxremote.password中的密码都是明文保存的,所以jmxremote.password、jmxremote.access文件的权限要注意,应该设置为只有owner才可读,当然这个用户也必须是启动tomcat的用户。
  6. 启动jconsole进行连接,在用户名和口令处输入设定的用户和密码。
  7. 使用密码认证方式进行连接,不但可以提高安全性,而且可以对用户的权限进行设置。如果不使用密码认证的方式,则无法对用户的权限进行限制。
配置使用ssl进行加密连接

  
1. 在服务器上使用keytool创建密钥对
keytool是java平台自带的一个密钥和证书管理工具,使用keytool创建密钥对:
keytool -genkey -alias tomcat -keystore /somepath/tomcatKeyStore
按照提示输入相关信息(包括设定密码、姓、组织名等),这些信息是可以随便输入的,但从产品角度讲应该统一设定。输入的密码在今后操作中均需要使用。
  2. 导出公钥
keytool -export -alias tomcat -keystore /somepath/tomcatKeyStore -file /somepath/jconsole.cert
  3. 将公钥导入至需要运行jconsole的机器。
keytool –import –alias jconsole –keystore /somepath/jconsoleKeyStore -file /somepath/jconsole.cert
  4. 修改tomcat的catalina脚本
将-Dcom.sun.management.jmxremote.ssl="false"修改为:
-Dcom.sun.management.jmxremote.ssl="true",并在 JAVA_OPTS变量行添加:
-Djavax.net.ssl.keyStore=/somepath/jconsoleKeyStore
-Djavax.net.ssl.keyStorePassword=设定的密码
  5. 使用如下参数启动jconsole :
jconsole -J-Djavax.net.ssl.trustStore=/somepath/jconsoleKeyStore
  6. 填入主机名、用户、口令连接服务器。
其他问题

  1. 在执行shutdown.sh或者shutdown.bat脚本关闭tomcat时出现如下错误,tomcat无法关闭:
  
错误: 代理抛出异常: java.rmi.server.ExportException: Port already in use: 9004;
nested exception is:java.net.BindException: Address already in use: JVM_Bind
  出错原因:JAVA_OPT变量设置的参数未放置于本文档中指定位置。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-334744-1-1.html 上篇帖子: tomcat 二级域名 共享session 方法 下篇帖子: Tomcat源码分析------一次完整请求
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表