debian

Debian中Tomcat故障排查

小樊
38
2025-12-06 01:05:39
栏目: 智能运维

Debian 上 Tomcat 故障排查清单

一 快速定位与日志分析

二 常见故障与修复对照表

症状 快速检查 修复建议
端口被占用(默认 8080 `ss -tulpen grep ‘:8080’`
启动失败、秒退 systemctl status tomcat9journalctl -xeu tomcat9tail -n50 catalina.out 依据日志报错逐项修复(见下一节)
管理页面 403/401 查看 conf/tomcat-users.xml 角色与用户 添加用户并赋予 manager-gui/admin-gui 等角色
部署 WAR 后 404 检查 webapps 是否解压、应用 Context Path 确认 WAR 已解压、访问路径与 appBase/Context 一致
控制台或请求乱码 查看 catalina.out 与页面输出 conf/logging.properties 设置 UTF-8;在 server.xmlConnector 增加 URIEncoding=“UTF-8”
内存不足或频繁 Full GC jstat -gcutil <pid> 1000 调整 JAVA_OPTS(如 -Xms512m -Xmx1024m),必要时分析堆转储
权限错误、日志写失败 ls -ld logs/ work/ temp/ 确保 tomcat:tomcat 拥有目录权限,日志目录可写
配置文件错误 校验 server.xml / web.xml 修正标签闭合、路径、端口等语法与配置错误
JDK 版本不匹配 java -versionjavac -version 安装与 Tomcat 版本匹配的 JDK 并正确设置 JAVA_HOME
自启动失败 systemctl is-enabled tomcat9 启用服务:sudo systemctl enable --now tomcat9

三 配置文件与目录要点

四 高频报错速解

五 一键排查脚本与后续建议

#!/usr/bin/env bash
set -e
TOMCAT_USER=tomcat
TOMCAT_SERVICE=tomcat9
TOMCAT_HOME=/usr/share/tomcat9
CATALINA_OUT=/var/log/tomcat9/catalina.out
JAVA_HOME=/usr/lib/jvm/default-java

echo "=== 服务状态 ==="
systemctl status "$TOMCAT_SERVICE" || true

echo "=== 端口监听 ==="
ss -tulpen | grep -E ':(8080|8005|8009)'

echo "=== 进程与内存 ==="
pgrep -x java && jps -v || echo "No Java process found"

echo "=== 最近错误日志 ==="
[ -f "$CATALINA_OUT" ] && tail -n100 "$CATALINA_OUT" | grep -i -E 'error|exception|failed' || echo "No catalina.out"

echo "=== 权限检查 ==="
ls -ld /var/log/tomcat9 /var/lib/tomcat9/{work,temp} 2>/dev/null || true

echo "=== JDK 版本 ==="
"$JAVA_HOME/bin/java" -version 2>&1

echo "=== 建议后续 ==="
echo "1) 查看完整日志: less $CATALINA_OUT"
echo "2) 动态调优: 在 /etc/default/$TOMCAT_SERVICE 设置 JAVA_OPTS"
echo "3) 无法定位时: 增大日志级别 logging.properties 并重启"

0
看了该问题的人还看了