Figure 15: List of All Logger Names.
Logging MBean也支持三种操作:
-
getParentLoggerName
. 返回指定logger的父logger
-
getLoggerLevel
. 返回指定logger的日志等级
-
setLoggerLevel
.设置指定logger到一个新的等级
所有三个操作都把日志名称作为第一个参数。
Figure 16: Setting Log Level.
获取操作系统资源信息-Sun平台下的扩展
JDK5.0扩展了操作系统的MBean,以此可以获取一下系统资源的信息,如:
- 处理的CPU
- 总共的和空闲的物理内存
- 可获得的虚拟内存。(即保证可以分配给运行的进程的虚拟内存)
- 总共的和空闲的交换区
- 打开的文件总数(只能在Unix下使用)
当打开MBeans标签下的Operating System MBean,你可以看到平台可以执行的所有属性和操作。你可以监控任何一个属性随时间的变化——如,CPU时间-双击属性的值域部分。
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,你可以看到一个通知被发送。
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,会出现如下界面:
直接进行连接即可。
如果是远程监控,需要点击远程选项卡并输入相关信息,示例如下:
“主机名或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变量设置的参数未放置于本文档中指定位置。
- 大小: 68.8 KB
- 大小: 78.4 KB
- 大小: 66.5 KB
- 大小: 17.9 KB
- 大小: 19.3 KB
分享到:
相关推荐
【JConsole工具详解】 JConsole是Java Development Kit (JDK) 自带的一个强大的监测和管理工具,主要用于诊断和分析Java应用...对于基于JDK 5.0的Tomcat配置,确保JConsole的兼容性以及正确配置JMX代理是关键步骤。
### jconsole-tomcat配置详解 #### 一、引言 在现代软件开发与运维过程中,性能监控与故障排查是确保应用稳定运行的关键环节之一。作为一款广泛使用的Java应用服务器,Tomcat同样需要进行细致的监控与管理。而...
3. **启动与停止**:在Tomcat的`bin`目录下,可以通过执行`startup.bat`启动Tomcat,执行`shutdown.bat`关闭Tomcat。也可以通过管理工具(如Windows服务)进行自动化管理。 4. **配置文件**:Tomcat的主要配置文件...
- 使用`jstack`和`jconsole`等JDK工具进行线程和内存分析。 通过理解以上内容,你可以有效地部署和管理Apache Tomcat 7.0.42 Windows x64免安装版本,同时利用其特性构建和运行Java Web应用程序。
### JConsole 远程监控 Tomcat 服务 #### 1. 概述 JConsole 是一个集成在 Java 开发工具包 (JDK) 中的图形用户界面 (GUI) 工具,它允许用户通过 Java 管理扩展 (JMX) 对正在运行的 Java 虚拟机 (JVM) 进行监控。...
【标题】"Tomcat8+jdk1.8.zip"是一个包含Tomcat 8服务器和Java Development Kit (JDK) 1.8版本的压缩包,适用于Linux和Windows操作系统。这个组合是开发和运行Java Web应用程序的常用环境配置。 【描述】提及的...
3. **集成过程**:将Tomcat与JDK集成,首先需要确保系统上安装了正确版本的JDK,并且`JAVA_HOME`环境变量已经指向JDK的安装路径。Tomcat配置文件`catalina.sh`(在Unix/Linux系统中)或`startup.bat`(在Windows系统...
Tomcat 9支持Java EE 8 Web Profile,这意味着它能够处理基于Java EE 8规范的Web应用程序。 2. **Windows兼容性**:`windows-x64`表示这个版本是为64位Windows操作系统设计的,确保了在Windows 7, 8, 10等64位系统...
通过本指南,用户可以了解到如何正确配置Tomcat服务器以支持远程监控功能,以及如何在客户端上安装和配置JDK以便于使用jconsole工具。 #### 二、配置服务器上的Tomcat以支持远程监控 为了使Tomcat能够支持jconsole...
标题中的“在tomcat的catalina.sh文件中添加了jconsole检测内存配置”涉及到的是Java应用程序服务器Tomcat的性能监控和内存管理。`catalina.sh`是Tomcat的启动脚本,它用于配置和启动Tomcat服务。在该脚本中添加...
由于Tomcat是基于Java的,因此在安装和运行Tomcat之前,必须先安装JDK,确保系统具备执行Java代码的能力。描述中提到的“Java工具开发包”就是指JDK,它包括了Java编译器(javac)、Java虚拟机(JVM)、Java运行时...
5. **性能监控**:JDK提供JConsole、jstat等工具,用于实时监控应用程序的性能和资源占用情况。 总结,Oracle JDK 8u11是Java开发者的重要工具,其特性与功能极大地提升了开发效率和代码质量。在Windows x64环境下...
1. **users.xml**和**tomcat-users.xml**:在`conf`目录下,用于配置Tomcat的用户和角色,以实现基于角色的访问控制(RBAC)。 2. **context.xml**或`META-INF/context.xml`:可以设置应用级别的安全约束,如SSL...
5. 应用服务器:在Tomcat、Jetty等Java应用服务器上部署应用时,需确保服务器配置使用了JDK 18.0.1.1,以充分利用其性能和安全性改进。 总结,Windows JDK 18.0.1.1 64位版本是Java开发者的重要工具,它的新特性和...
Jconsole是一款强大的Java应用程序监控工具,它包含在JDK的bin目录中,可用于实时监控本地或远程JVM的性能和资源消耗。通过提供丰富的图表和可视化界面,Jconsole可以帮助开发者和系统管理员深入了解Java应用程序的...
- 使用JMX监控:开启JMX,并通过JConsole或VisualVM等工具监控Tomcat性能。 - 管理线程池:在`server.xml`中配置`Executor`元素,自定义线程池大小。 8. **安全考虑** - 限制对`manager`和`admin`应用的访问,...
使用`jconsole`或`VisualVM`等工具可以监控Tomcat的CPU使用率、内存状况等。定期关注Apache Tomcat的更新,及时升级到新版本以获得最新的安全补丁和功能改进。 以上就是在Linux服务器上使用Apache Tomcat 9.0.22...
4. **服务器上的Web项目**:在Linux服务器上部署Web项目时,JDK是必需的,因为大多数Web服务器(如Apache Tomcat、Jetty或JBoss)都需要Java环境来解析和运行Java Web应用程序(如Servlets和JSPs)。通过安装JDK,...
为了充分利用JDK 8u131,开发者需要了解如何配置环境变量,如JAVA_HOME和PATH,以便在命令行或其他开发环境中正确地调用Java编译器(javac)和Java虚拟机(JVM)。同时,了解JDK附带的开发工具,如javadoc(用于生成...