背景
Tomcat作为常用的web容器,经常需要对tomcat 的状态进行监控,为了安全起见,自带的管理页面通常在生成环境里是要被删除掉的,于是用脚本方式定时获取Tomcat的状态信息。
状态信息包括:进程号、版本、应用数,日志大小、JVM等信息。
以下是Tomcat的监控配置步骤
1. Tomcat8配置tomcat-users.xml配置
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<user username="admin" password="admin" roles="manager-script,manager-jmx,manager-status"/>
但是tomcat8.5 更改之后,仍然访问拒绝。
还需步骤如下:
vi /usr/local/tomcat/apache-tomcat/webapps/manager/META-INF/context.xml
2. Tomcat7配置管理
<user username="admin" password="1234" roles="admin,manager,manager-gui,manager-script,manager-jmx"/>
3. 脚本
脚本调用方式:
./tomcat_monitor -u admin -p admin -h 127.0.0.1 -P 8080
脚本返回数据:
{
"static_tomcat_version":8,
"tomcat_server_status":1,
"application0":{
"status":"running",
"path":"/app1",
"active_sessions":0,
"name":"app1"
},
"application1":{
"status":"running",
"path":"/app2",
"active_sessions":0,
"name":"app2"
},
"application2":{
"status":"running",
"path":"/app3",
"active_sessions":0,
"name":"app3"
},
"application3":{
"status":"running",
"path":"/app4",
"active_sessions":0,
"name":"app4"
},
"application4":{
"status":"running",
"path":"/app5",
"active_sessions":0,
"name":"app5"
},
"application5":{
"status":"running",
"path":"/app6",
"active_sessions":0,
"name":"app6"
},
"tomcat_application_count":6,
"free_memory":2474.21,
"total_memory":5939.25,
"max_memory":5939.25,
"available_memory":2474.21,
"used_memory":3465.04,
"percent_used_memory":58.3413337765,
"usage_CMS_Old_Gen":1906743848,
"usage_Par_Eden_Space":1549483576,
"usage_Par_Survivor_Space":177130064,
"usage_Code_Cache":95788544,
"usage_Compressed_Class_Space":19645032,
"usage_Metaspace":165271168,
"host":"127.0.0.1",
"port":8080,
"pid":65678,
"baseDir":"/usr/local/tomcat",
"logFileNum":331,
"logDirSize":594768,
"logFilesystemTotal":868580864,
"logFilesystemAvail":793805384,
"logFilesystemUsed":74775480,
"logFilesystemUse":9
}