通过Debian系统自带的命令行工具,可快速查看Tomcat进程的资源占用及基础运行状态:
top/htop:实时显示Tomcat进程的CPU、内存占用率(top -p $(pidof tomcat) 或 htop -p $(pidof tomcat));vmstat:监控系统虚拟内存、磁盘I/O、CPU活动等整体资源使用情况(vmstat 1 5 每秒刷新一次,共5次);netstat/ss:查看Tomcat监听端口(如8080)的连接状态(netstat -tuln | grep 8080 或 ss -tuln | grep 8080);free/df:分别查看系统内存(free -m)和磁盘空间(df -h)的使用情况;tail -f:实时跟踪Tomcat日志(如/var/log/tomcat/catalina.out),快速定位错误信息。通过JMX协议获取Tomcat的详细性能指标(如内存池使用、线程池状态、请求响应时间等),需先配置Tomcat启用JMX:
catalina.sh(位于/opt/tomcat/bin/),在JAVA_OPTS中添加以下参数(替换your.server.ip为Tomcat服务器IP):CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.rmi.port=1099 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=your.server.ip"
重启Tomcat使配置生效(systemctl restart tomcat)。jconsole(jconsole命令)或jvisualvm(jvisualvm命令),选择Tomcat进程即可查看实时监控数据。借助专业工具实现更全面的监控(如历史数据存储、告警、可视化):
jmx_prometheus_javaagent(下载地址:Prometheus官网)采集Tomcat的JMX指标,配置Prometheus抓取数据,再用Grafana创建仪表盘(如CPU使用率、内存占用、线程数等可视化图表);javamelody.war(下载地址:JavaMelody官网)到Tomcat的webapps目录,访问http://localhost:8080/javamelody即可查看性能报告(涵盖内存、线程、JDBC连接池等);probe.war(下载地址:Lambda Probe官网)放入webapps目录,通过http://localhost:8080/probe访问,提供轻量级的Tomcat监控界面(支持实时线程监控、请求统计等);通过分析Tomcat日志,及时发现应用错误、访问异常等问题:
tail -f /var/log/tomcat/catalina.out(日志路径可能因安装方式不同而变化,如/opt/tomcat/logs/catalina.out);grep、awk等工具提取关键信息(如grep "ERROR" /var/log/tomcat/catalina.out查找错误日志);NullPointerException告警)。编写Shell脚本定期检查Tomcat状态,在异常时自动重启:
/opt/tomcat/scripts/monitor.sh):#!/bin/bash
TOMCAT_PID=$(ps -ef | grep tomcat | grep -v 'grep' | awk '{print $2}')
WEB_URL="http://localhost:8080"
LOG_FILE="/tmp/tomcat_monitor.log"
if [ -z "$TOMCAT_PID" ]; then
echo "$(date '+%F %H:%M:%S') - Tomcat进程不存在,尝试重启" >> $LOG_FILE
systemctl restart tomcat
else
STATUS_CODE=$(curl -s -o /dev/null -w "%{http_code}" $WEB_URL)
if [ "$STATUS_CODE" -ne 200 ]; then
echo "$(date '+%F %H:%M:%S') - Tomcat返回状态码$STATUS_CODE,尝试重启" >> $LOG_FILE
systemctl restart tomcat
else
echo "$(date '+%F %H:%M:%S') - Tomcat运行正常" >> $LOG_FILE
fi
fi
crontab -e添加以下内容,每分钟执行一次脚本:* * * * * /bin/bash /opt/tomcat/scripts/monitor.sh
注意:需给脚本添加可执行权限(chmod +x /opt/tomcat/scripts/monitor.sh)。以上方法可根据实际需求组合使用(如系统工具用于日常快速检查,JMX+Prometheus用于详细监控,脚本用于自动恢复),确保Debian系统上的Tomcat稳定运行。