JMX是Tomcat原生的Java管理工具,可實時監控JVM內存、線程、類加載、響應時間等核心指標。
/opt/tomcat/bin/catalina.sh
),添加以下配置(替換your_server_ip
為服務器IP,9090
為JMX端口):CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote -Djava.rmi.server.hostname=your_server_ip -Dcom.sun.management.jmxremote.port=9090 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"
保存后重啟Tomcat使配置生效。jconsole
或VisualVM
工具連接:運行jconsole
命令,在“遠程進程”中輸入localhost:9090
,登錄后可查看各項性能指標(如堆內存使用率、線程數、GC次數)。適合企業級場景,實現指標收集、存儲、可視化及告警。
wget
下載Prometheus二進制包,解壓后修改prometheus.yml
,添加Tomcat監控任務:scrape_configs:
- job_name: 'tomcat'
static_configs:
- targets: ['localhost:9090'] # JMX Exporter端口(后續配置)
啟動Prometheus:./prometheus --config.file=prometheus.yml
。jmx_prometheus_javaagent
jar包,創建config.yml
配置文件(定義要采集的指標),將jar包放入Tomcat的lib
目錄,修改catalina.sh
添加JVM參數:CATALINA_OPTS="$CATALINA_OPTS -javaagent:/opt/tomcat/lib/jmx_prometheus_javaagent-0.17.0.jar=8080:/opt/tomcat/config.yml"
yum install grafana
安裝,啟動服務后登錄Web界面(http://your_server_ip:3000
),添加Prometheus為數據源,導入Tomcat監控模板(如Grafana社區提供的“Tomcat Metrics”模板),即可生成可視化儀表盤。Tomcat自帶的Web管理工具,適合快速查看應用狀態、會話數、部署情況。
conf/tomcat-users.xml
,添加具有manager-gui
角色的用戶:<role rolename="manager-gui"/>
<user username="admin" password="admin" roles="manager-gui"/>
http://your_server_ip:8080/manager/html
,登錄后可查看Tomcat的運行狀態、請求處理時間、內存使用、線程池狀態等信息。通過Linux原生工具快速查看Tomcat進程的資源占用情況,適合臨時排查問題。
ps -ef | grep tomcat
(獲取Tomcat主進程PID)。top -H -p <PID>
:查看Tomcat進程的CPU、內存占用(-H
顯示線程級資源)。htop -p <PID>
:htop
是top
的增強版(需yum install htop
安裝),界面更友好。netstat -tuln | grep 8080
(確認Tomcat監聽端口是否正常)。tail -f /opt/tomcat/logs/catalina.out
(實時查看Tomcat運行日志,定位錯誤)。通過Shell腳本實現自動檢查Tomcat狀態、發送告警,適合需要持續監控的場景。
monitor_tomcat.sh
):#!/bin/bash
TOMCAT_PID=$(ps -ef | grep java | grep tomcat | grep -v grep | awk '{print $2}')
LOG_FILE="/var/log/tomcat_monitor.log"
if [ -z "$TOMCAT_PID" ]; then
echo "$(date): Tomcat進程不存在,嘗試重啟..." >> $LOG_FILE
/opt/tomcat/bin/startup.sh # 啟動Tomcat(路徑需調整)
else
echo "$(date): Tomcat運行正常,PID=$TOMCAT_PID" >> $LOG_FILE
fi
crontab -e
添加每5分鐘執行一次:*/5 * * * * /bin/bash /opt/script/monitor_tomcat.sh
腳本會記錄Tomcat狀態,若進程掛掉則自動重啟(需確保腳本有執行權限:chmod +x monitor_tomcat.sh
)。通過收集、分析Tomcat日志(如catalina.out
、access_log
),實現性能瓶頸定位、訪問趨勢分析。
logstash.conf
,指定日志路徑和解析規則)。