ps -ef | grep tomcat
或 ps aux | grep tomcat
,查看Tomcat进程是否存在。 ,2. **查看日志**:进入Tomcat的logs目录(通常为 $CATALINA_HOME/logs
),用 tail -f catalina.out
实时监控启动日志。 ,3. **验证端口**:运行 netstat -tlnp | grep 8080
(默认端口),确认服务是否监听。 ,4. **服务状态**(若配置为系统服务):使用 systemctl status tomcat
(适用于systemd系统)。 ,通过组合这些命令可快速判断Tomcat运行情况。在Linux系统中查看Tomcat的运行状态是运维和开发人员的常见需求,以下是几种高效且专业的方法,涵盖基础状态检查、日志分析及高级监控:
检查Tomcat进程状态
通过进程检查是最直接的验证方式:
ps -ef | grep tomcat
- 输出关键信息:
tomcat 12345 1 0 10:30 ? 00:00:05 /usr/lib/jvm/java-11-openjdk/bin/java ... org.apache.catalina.startup.Bootstrap start
若存在类似进程(含Bootstrap start
),说明Tomcat正在运行;无结果则未启动。
验证端口监听状态
Tomcat默认监听8080端口(HTTP)和8005端口(关闭服务):
# 检查8080端口 netstat -tuln | grep 8080 # 或使用lsof(需安装) lsof -i :8080
- 结果解读:
tcp6 0 0 :::8080 :::* LISTEN
表示端口正常监听。
分析实时日志
日志是排查问题的核心,主要关注catalina.out
:
# 进入日志目录(路径根据安装方式可能不同) cd /usr/local/tomcat/logs/ # 或 /var/log/tomcat/ # 实时追踪日志 tail -f catalina.out
- 关键日志事件:
Server startup in [XXXX] milliseconds
→ 启动成功SEVERE: Could not contact [localhost:8005]
→ 端口冲突或启动失败OutOfMemoryError
→ JVM内存不足
使用Tomcat Manager监控(需预先配置)
通过Web界面提供详细运行时数据:
- 启用Manager应用:
编辑conf/tomcat-users.xml
,添加角色和用户:<role rolename="manager-gui"/> <user username="admin" password="安全密码" roles="manager-gui"/>
- 访问监控页面:
http://服务器IP:8080/manager/status
- 显示线程数、内存使用、会话数等实时指标(如下图示):
- 显示线程数、内存使用、会话数等实时指标(如下图示):
通过命令行接口(CLI)获取状态
结合curl
快速获取基础信息:
# 检查主页是否响应 curl -I http://localhost:8080 # 输出 HTTP/1.1 200 OK 表示服务正常 # 获取Server状态(需开启管理端口) curl http://admin:密码@localhost:8080/manager/text/serverinfo
高级监控工具
- JDK内置工具:
jps
列出Java进程 → 获取Tomcat进程ID
jstat -gcutil 进程ID 1000
每秒输出一次GC内存数据 - Prometheus + JMX Exporter:
配置JMX监控指标,实现可视化仪表盘(适用于生产环境)。
常见问题解决方案
- 无进程且端口未监听:
- 启动Tomcat:
/usr/local/tomcat/bin/startup.sh
- 检查启动脚本权限:
chmod +x *.sh
- 启动Tomcat:
- 端口冲突:
修改conf/server.xml
中的<Connector port="8080">
为其他端口。 - Manager页面403访问拒绝:
确认tomcat-users.xml
角色配置正确,并检查IP白名单(manager/context.xml
中allow
属性)。 - 日志报权限错误:
使用chown -R tomcat:tomcat /usr/local/tomcat
修正目录归属。
引用说明:
- Apache Tomcat 官方文档:https://tomcat.apache.org/tomcat-9.0-doc/
- Oracle Java监控指南:https://docs.oracle.com/javase/8/docs/technotes/tools/
- Linux man手册(ps/netstat/lsof命令)
通过上述方法,可系统化掌握Tomcat的运行状态,生产环境推荐结合日志分析(如ELK栈)和监控工具(Prometheus+Grafana)实现全链路观测,确保服务稳定性。
原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/24736.html