背景
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
腳本調用方式:
./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
}