Tomcat 管理监控工具

本文链接:https://blog.csdn.net/weixin_34364071/article/details/86753232

专注于Java领域优质技术号,欢迎关注

原创: 侯树成 Tomcat那些事儿

启动 Tomcat完毕 ,有些时候总会打开浏览器 http://localhost:8080/

去验证你的Tomcat是否启动成功,看到ROOT应用里那个黄黄的三条腿的猫,你就放心了:服务启动没问题。如果请求不成功,那一定是哪里出了问题,启动异常才导致这个默认自带的app没有启动成功。从而进一步看log分析。

除了ROOT应用外,Tomcat还默认提供了 Manager这个应用。

在功能上 Manager 可以

1. 部署

管理已部署的应用(启、停应用,重部署)

部署war

通过context.xml形式部署

设置Session过期

2. 诊断内存泄露等

3. 显示 JVM 内存信息

4. Connector 线程的状态

还有什么呢?

我们看到, Tomcat 的这个Manager提供的,是比较常用,但很有限的几个基础功能。

使用过 比如 Weblogic, WebSphere, 开源的 GlassFish 等J2EE 应用服务器的朋友会发现,与Tomcat 的Manager 相比, 他们都提供了一个功能更完备的所谓的「管理控制台」。

这个管理控制台,可以做的事情,比上面 Manager 提供的就丰富多了。比如最常用的一个: 8080 这个端口不够用,我们想再加一个端口响应其他的请求,或者在配置ajp请求处理时,我们想加一个 Connector ,这个时候在 J2EE的管理控制台里,直接操作添加即可,一步步来。

甚至应用部署的时候,可以选择JSP的预编译(JSP预编译,加速你的应用),创建数据源等等。

在 Tomcat 里对于创建 Connector 这个操作,你需要怎么做?

打开server.xml, 把 8080这个配置拷一份,改改端口,改改BIO/NIO的处理,重启Tomcat。(敲黑板,这里是考点哦),而管理控制台一类的处理时不需要重启实例的。实质上Connector 做为一个组件与 Container 是不互相影响的,其实 Tomcat 也能做到不需要重启,只是这个创建 Connector 的过程,需要我们以编程的方式,来对配置文件的内容进行Marshaller/Unmarshaller。直接操作Container的内容,也可以通过JMX 来实现。

你说你部署了一个应用,该应用里配置了哪些Servlet、哪些Listener? Web.xml里有没有init-param,去哪能看看么?

不好意思,需要自己打开应用配置来看。

管理控制台的思路,一般会将当前应用具体的配置信息列出来,方便管理。

当然,区别还有很多...

其实,在Tomcat 6之前,也是有这样一款名为「Tomcat Admin」的应用,功能可以媲美应用服务器的管理控制台,不过后来不再提供了。可惜呀。

当然说了这么多,我们并不是开始嫌弃 Tomcat了。毕竟做为一个纯的Web Container,而且是非商业产品,也算不错了。

为了能使用一个较好用,功能也较全面的 Tomcat 管理工具,官方不提供我们只能把目光投向巨大的第三方开源之海,埋头苦找么?

官方的wiki里也我们指了条路:

PSI Probe is advanced manager andmonitor web application for Apache Tomcat.

这是一款 Tomcat 管理和监控工具,前身是 Lambda Probe。由于 Lambda Probe 2006不再更新,所以 PSI Probe 算是对其的一个 Fork 版本并一直更新至今。

使用也很方便,在github(https://github.com/psi-probe/psi-probe) 下载对应的war文件,部署即可。

访问的时候,和 Manager 一样,也是需要使用配置在 tomcat-users.xml 中的用户来访问。

登录后是这个样子:

通过上面一长串的tab,就能感受到功能上要比 Manager应用要强大吧。甚至部分功能能追平「管理控制台」的体验了。

来看应用部署这一块

除了部署这个功能外,还包含一般J2EE的应用服务器包含的功能「JSP预编译」来加速应用的响应。还有清空work的选项。

直接页面看日志

对于日志文件,可以实时修改不同的日志级别,来打印日志。

可以将当前配置的 Connector列出来,各个 Connector 收到的请求等

更多的功能,下载下来探索吧! Have fun!

PSI背后是如何实现的功能呢?

我们之前的文章写过,在 Tomcat 内存在一种「特权应用」是可以直接访问Tomcat的一些内部组件的,PSI就是把自己设置成一个特权应用,同时对于Tomcat内的操作, PSI是通过 Wrapper的形式,对不同版本的Tomcat 创建了一个Adapter

这里的 Wrapper,就是我们熟悉的Tomcat组件的那个Wrapper,PSI继承了 Spring 的DispatherServlet,通过Servlet这个Wrapper之后,再拿到其上层组件 Context、Host、Engine。

/** * Main dispatcher servlet. Spring default dispatcher servlet had to be superseded to handle * "privileged" application context features. The actual requirement is to capture passed Wrapper * instance into ContainerWrapperBean. Wrapper instance is our gateway to Tomcat. */@WebServletpublic class ProbeServlet extends DispatcherServlet implements ContainerServlet {

在Spring 的Initializer里将Servlet注册上去

// Set probe servletServletRegistration.Dynamic probe = servletContext.addServlet("probe", ProbeServlet.class);

所以拿到了这些组件,在操作应用的部署,获取Connector等内容时,其实就和 Tomcat 自己一样了。

所以如果要开发管理工具,这也是一种实现思路。

一种通过JMX 的MBean。

一种是通过PSI这种思路。

原文地址:https://www.cnblogs.com/lcword/p/11787494.html

时间: 2024-10-10 22:19:24

Tomcat 管理监控工具的相关文章

Tomcat 管理页面

一.配置刚下载的解压版的apache-tomcat,启动后,通过浏览器访问:http://127.0.0.1:8080/(或者http://localhost:8080)然后点击下图的Server status X 在登录界面输入用户名 both 和密码 tomcat 后出现下面的错误提示:HTTP Status 403 - Access to the requested resource has been denied问题原因:D:\apache-tomcat\conf 目录下的tomcat-

ant发布web项目,tomcat管理界面发布war项目

今天用apache-ant-1.9.4 版本对 java web项目-adjustSolr 打包为war,并发布到tomcat中(一定要注意开发用的jdk版本和tomcat中的jdk版本一致,否则unsupport version51 错误) 贴build.xml文件的代码 <?xml version="1.0" encoding="UTF-8"?> <project name ="adjustSolr" default =&q

TOMCAT管理页面部署WAR包 大小超出上限

今天在往服务器上部署war包时出现错误: 由错误信息可以看出,要部署的WAR包大小超出配置的上限了,配置的上限在"apache-tomcat-7.0.41\webapps\manager\WEB-INF"下面的web.xml里面设置: <multipart-config> <!-- 50MB max --> <max-file-size>62428800</max-file-size> <max-request-size>62

tomcat 管理端 安全措施

由于公司的项目并未启用nginx负载均衡,所以自然也没用到tomcat与web应用一对一的安全操作,经常会遇到 重启单个应用又不想重启tomcat的情况.同时,又出于安全考虑,将tomcat的默认管理页面给删除了,这无疑给应用维 护带来诸多不便. 基于以上考虑,项目经理采取折中的方式,具体要求如下: 1.加上默认的tomcat管理应用 ,但是,要对这个应用做安全改造,不能使用默认的配置; 2.禁用tomcat自动发布应用的功能; 根据以上要求这个任务就交给我了,通过一番研究,最后得以解决,具体过

Tomcat管理页面登陆方法

Tomcat管理页面可以查看Tomcat的运行信息,然而通常管理页面时需要用户登陆,很多刚接触的人不了解用户名和密码 是多少,如何修改.. 这里介绍一种方法. 实际上点击取消,Tomcat本身也是有提示的,对于角色的描述很详细. 修改方式也很简单 <!-- <role rolename="tomcat"/> <role rolename="role1"/> <user username="tomcat" pas

javaweb学习总结十八(软件密码学、配置tomcat的https连接器以及tomcat管理平台)

一:软件密码学 1:对称加密 对称加密是最快速.最简单的一种加密方式,加密(encryption)与解密(decryption)用的是同样的密钥(secret key).对称加密有很多种算法,由于它效率很高,所以被广泛使用在很多加密协议的核心当中. 对称加密通常使用的是相对较小的密钥,一般小于256 bit.因为密钥越大,加密越强,但加密与解密的过程越慢.如果你只用1 bit来做这个密钥,那黑客们可以先试着用0来解密,不行的话就再用1解:但如果你的密钥有1 MB大,黑客们可能永远也无法破解,但加

Metasploit溢出Tomcat管理台默认口令漏洞

利用Tomcat管理台默认口令漏洞,上传木马文件,获得目标主机webshell. Tomcat 管理台安装好后需要及时修改默认管理账户,并杜绝弱口令,成功登陆者可以部署任意web应用,包括webshell. 一.利用nmap工具扫描目标主机 1.1使用nmap命令对目标主机进行扫描.单击桌面空白处,右键菜单选择"在终端中打开". 1.2在终端中输入命令"nmap –sV  192.168.1.3",对目标主机进行端口扫描,发现开放8081端口并且运行着ApacheT

Tomcat管理功能使用

注意:测试功能,生产环境不要用 Tomcat管理功能用于对Tomcat自身以及部署在Tomcat上的应用进行管理的web应用.在默认情况下是处于禁用状态的.如果需要开启这个功能,就需要配置管理用户,即配置tomcat-users.xml 文件. 点击Server Status [[email protected] ~]# vim /usr/local/tomcat8/conf/tomcat-users.xml   <role rolename="manager-gui"/>

配置tomcat管理用户

在浏览器发送http://localhost:8080/请求,进入tomcat的首页面,在左边一栏点击“Tomcat Manager”,出现用户登录界面: 输入用户名.密码,即可进入如下所示管理界面: 登录该管理界面的用户名.密码可以在tomcat conf目录下的tomcat-users.xml文件中配置,配置如下: <?xml version='1.0' encoding='utf-8'?> <tomcat-users> <role rolename="mana