通过Linux系统命令可快速确认Tomcat的基本运行状态,适用于日常快速排查:
ps命令过滤Tomcat进程,确认是否在运行。ps -ef | grep tomcat
netstat或ss命令验证端口是否处于监听状态。sudo netstat -tulnp | grep 8080 # 或使用 ss -tulnp | grep 8080
curl命令发送HTTP请求,验证Tomcat是否响应。curl -v http://localhost:8080/
若返回Tomcat默认页面(如“Welcome to Tomcat”),则说明服务正常。top或htop命令监控Tomcat进程的CPU、内存占用情况(需替换为实际PID)。top -p $(pgrep -f tomcat) # 或 htop -p $(pgrep -f tomcat)
tail命令实时查看catalina.out日志(默认路径为$TOMCAT_HOME/logs/),获取运行中的错误或警告信息。tail -f /opt/tomcat/logs/catalina.out
Tomcat内置了Manager应用和JMX,可实现更详细的运行状态监控:
$TOMCAT_HOME/conf/tomcat-users.xml,添加具有manager-gui角色的用户(需设置强密码)。<role rolename="manager-gui"/>
<user username="admin" password="your_password" roles="manager-gui"/>
http://<服务器IP>:8080/manager/html,使用上述账号登录即可查看监控页面。$TOMCAT_HOME/bin/catalina.sh,添加JMX配置(替换为实际端口,如9090)。export CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=9090
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false"
jconsole或VisualVM工具,选择“远程进程”,输入localhost:9090即可连接并查看指标。第三方工具可实现自动化监控、告警、可视化,适合大规模或生产环境:
JMX Exporter收集Tomcat的JMX指标,Grafana将指标可视化成仪表盘。jmx_prometheus_javaagent(如jmx_prometheus_javaagent-0.3.1.jar)并创建配置文件(如jmx-exporter.yaml),定义需要收集的指标(如线程池、请求计数、内存使用)。catalina.sh,添加JMX Exporter代理参数(替换为实际路径和端口)。export JAVA_OPTS="$JAVA_OPTS -javaagent:/path/to/jmx_prometheus_javaagent-0.3.1.jar=9010:/path/to/jmx-exporter.yaml"
prometheus.yml),添加Tomcat抓取任务(指向JMX Exporter端口)。check_tomcat插件监控Tomcat状态(如进程是否存在、端口是否可达),配置告警规则(如进程挂掉时发送邮件)。通过Shell脚本可实现定时检查与自动恢复,适合简单场景:
#!/bin/bash
TOMCAT_PID=$(ps -ef | grep java | grep tomcat | grep -v 'grep' | awk '{print $2}')
if [ -z "$TOMCAT_PID" ]; then
echo "$(date): Tomcat进程未运行,正在重启..." >> /var/log/tomcat_monitor.log
/opt/tomcat/bin/startup.sh # 替换为实际Tomcat启动脚本路径
else
echo "$(date): Tomcat进程运行正常,PID: $TOMCAT_PID" >> /var/log/tomcat_monitor.log
fi
crontab -e添加定时任务(每分钟执行一次)。* * * * * /path/to/monitor.sh
以上方法覆盖了从基础到高级的Tomcat监控需求,可根据实际场景选择合适的方式(如个人开发用系统命令或Tomcat Manager,生产环境用Prometheus+Grafana或Zabbix)。