sudo systemctl status tomcat9、ps aux | grep tomcat、java -version。若使用包管理安装,版本通常为 Tomcat 9(Debian 10/11/12 常见)。tail -f /var/log/tomcat9/catalina.out;按日期查看:ls /var/log/tomcat9/。优先检索关键字:ERROR、SEVERE、Exception、Failed。ss -tulpen | grep 8080 或 lsof -i:8080。若被占用,结束占用进程或修改 server.xml 中的 Connector port。sudo systemctl restart tomcat9;若仍失败,立即回到日志定位首条报错。tail -f catalina.out;错误筛选:grep -i "error\|exception\|failed" catalina.out;按时间定位:grep "2025-06-08" localhost.2025-06-08.log;统计高频 URL:cat localhost.*.log | grep "HTTP" | awk '{print $7}' | sort | uniq -c | sort -nr。| 现象 | 日志关键词 | 快速定位 | 处置建议 |
|---|---|---|---|
| 端口被占用 | Address already in use、BindException | `ss -tulpen | grep 8080` |
| 配置语法/路径错误 | SEVERE、ParseError、FileNotFoundException | 查 server.xml/context.xml/web.xml 行号 | 修正标签闭合、路径与权限 |
| 权限不足 | Permission denied | 查 /var/log/tomcat9/catalina.out 与目录权限 | 确保 tomcat 用户对 conf、logs、webapps 有读写执行 |
| 内存不足/OOM | OutOfMemoryError、GC overhead limit exceeded | jstat -gcutil <pid> 1000 |
调整 JAVA_OPTS/CATALINA_OPTS 堆大小与 GC 策略 |
| JDBC 连接失败 | SQLException、Communications link failure | 查应用与 context.xml 数据源配置 | 校验 JDBC URL/账号/密码、网络与数据库可用性 |
| 部署失败 | Deployment failed、ClassNotFound | 查 localhost 与 catalina 应用日志 | 补齐 WEB-INF/lib 依赖、修正 web.xml |
以上方法适用于 Debian 上 Tomcat 的日志定位与常见问题快速处置。
echo $JAVA_HOME;确保 JDK 版本与 Tomcat 版本兼容(如 Tomcat 9 建议使用 JDK 8/11)。JAVA_OPTS="-Xms512m -Xmx2048m -XX:+UseG1GC"(Tomcat 9 使用 Metaspace,无需 PermSize/MaxPermSize)。sudo systemctl enable --now tomcat9;必要时执行 sudo apt-get update && sudo apt-get install --only-upgrade tomcat9 获取安全修复。<Connector port="8080" protocol="org.apache.coyote.http11.Http11Nio2Protocol" connectionTimeout="20000" redirectPort="8443" /><Connector port="8443" protocol="org.apache.coyote.http2.Http2Protocol" maxThreads="150" SSLEnabled="true">...</Connector><Executor name="tomcatThreadPool" namePrefix="catalina-exec-" maxThreads="500" minSpareThreads="50" maxQueueSize="100"/>-Xms 与 -Xmx(如 2–4GB 起步)、-XX:+UseG1GC;避免频繁 Full GC。compression="on" compressionMinSize="2048" compressableMimeType="text/html,text/xml,text/css,text/javascript"。ulimit -n 65535;/etc/sysctl.conf 中调优 net.core.somaxconn、net.ipv4.tcp_max_syn_backlog、net.ipv4.ip_local_port_range、net.ipv4.tcp_tw_reuse、net.ipv4.tcp_fin_timeout。# 1) 服务与进程
sudo systemctl status tomcat9
ps aux | grep tomcat
java -version
# 2) 端口占用
ss -tulpen | grep 8080
lsof -i:8080
# 3) 日志实时查看与检索
tail -f /var/log/tomcat9/catalina.out
grep -i "error\|exception\|failed" /var/log/tomcat9/catalina.out
ls /var/log/tomcat9/
# 4) JVM 内存与 GC
jps
jstat -gcutil <pid> 1000
jmap -heap <pid>
jmap -dump:format=b,file=heap.hprof <pid>
# 5) 配置与权限
ls -l /etc/tomcat9 /var/lib/tomcat9 /var/log/tomcat9
sudo systemctl restart tomcat9
sudo systemctl enable --now tomcat9
以上命令覆盖状态、端口、日志、JVM 与配置的关键环节,适合作为现场排障的“最小工具集”。