如何在不泛滥访问日志的情况下解析tomcat状态页面?

时间:2018-02-13 21:05:27

标签: tomcat get access

对于我目前正在开展的项目,我希望从tomcat中运行的一组应用程序状态页面中读取文本。

我要做的是创建一个集合状态页面,显示tomcat应用程序的状态(在线/离线)。

到目前为止,我已经创建了一个脚本,它将解析应用程序的状态页面并将结果格式化为表格,然后将结果写入html文件;因此,为我的所有应用程序创建一个状态页面。

我已经意识到,每次刷新页面时,我都会向这些网站发送越来越多的GET请求,从而充斥着tomcat应用程序的访问日志。

我正在寻求帮助的是解决这些状态页面而不发送GET请求垃圾邮件......或者,这是一种在访问日志中禁用GET泛滥的方法。

谢谢!

2 个答案:

答案 0 :(得分:1)

您没有告诉状态页面是如何创建的。但您也可以通过查询JMX来获取应用程序状态。在enabled后,您可以从虚拟机中获取实时数据。使用JMX的MBeans(已经存在于Tomcat中),您可以创建一个状态页面,在单个页面上显示您的应用程序,而无需解析以前的状态页面并将其写入数据库。

要查看这是一个机会,您只需启动服务器并在JDK的jmc.exe文件夹中打开Java Mission Control(bin)并通过单击下面的MBean Server进行连接。正确的过程。然后在MBean Browser(底部的标签)中,您会找到类似CatalinaTomcat的内容(根据您的Tomcats服务名称)。在子文件夹中,有一个名为WebModule的类型,显示已安装的应用程序。它应该是这样的:

enter image description here

您可以随时查询此数据,以创建您自己的状态页(即在控制器中)。

答案 1 :(得分:0)

我可以想到你可以这样做,比如使用SNMP

另一种简单的方法是创建一个只读状态页面,指示服务是否已启动。

像那样,

worker.list=jk-watch
worker.jk-watch.type=status
worker.jk-watch.read_only=true
worker.jk-watch.mount=/user/status/jk
worker.list=jk-manage
worker.jk-manage.type=status
worker.jk-manage.mount=/admin/status/jk