Ubuntu Tomcat错误如何排查
导读:Ubuntu 上 Tomcat 错误排查步骤 一 快速定位 先看日志 确认日志目录:常见为 $CATALINA_HOME/logs(手动安装)或 /var/log/tomcat[9]/(apt 安装)。核心文件包括:catalina.ou...
Ubuntu 上 Tomcat 错误排查步骤
一 快速定位 先看日志
- 确认日志目录:常见为 $CATALINA_HOME/logs(手动安装)或 /var/log/tomcat[9]/(apt 安装)。核心文件包括:catalina.out(主输出/错误)、localhost.log(应用初始化)、localhost_access_log.*.txt(访问日志)。
- 常用命令:
- 实时查看:tail -f $CATALINA_HOME/logs/catalina.out
- 过滤错误:grep -i “error|exception|fail” $CATALINA_HOME/logs/catalina.out
- 查看应用初始化日志:less $CATALINA_HOME/logs/localhost.log
- 若访问异常但进程在,优先查 localhost.log 与 localhost_access_log。
- 日志级别调整:编辑 conf/logging.properties,将感兴趣的包或类调到 FINE/FINER 以获取更详细输出。
二 常见故障与对应处理
- 端口被占用(如 8080/8005)
- 检查:lsof -i :8080 或 netstat -anp | grep 8080
- 处理:kill 占用进程,或编辑 conf/server.xml 的 改为未占用端口。
- Java 环境或版本不匹配
- 检查:java -version、which java;确认 JAVA_HOME 指向 JDK 而非 JRE。
- 版本匹配:Tomcat 10.x 需 JDK 11+,Tomcat 9.x 需 JDK 8+。
- 启动即闪退或进程很快退出
- 先看 catalina.out 报错;常见为内存不足(OutOfMemoryError)、端口冲突、应用部署失败。
- 权限或日志目录不可写
- 检查 logs 目录属主与权限,必要时:chown -R tomcat:tomcat $CATALINA_HOME/logs。
- 应用部署失败或访问 404
- 检查 webapps 下 WAR/目录是否存在与完整;查看 localhost.log 具体异常;确认访问路径(如应用名或 ROOT)。
- 下载包错误导致无法启动
- 若使用源码包(Source Distribution)执行 startup.sh 可能报“找不到主类”,应下载 Binary Distributions 解压使用。
三 环境与版本检查
- 验证 Java:java -version、javac -version;确保 JAVA_HOME 正确且指向 JDK。
- 兼容性核对:
- Tomcat 9.x ↔ JDK 8+
- Tomcat 10.x ↔ JDK 11+
- APT 安装场景:使用系统 OpenJDK 时,避免与手动设置的 JAVA_HOME 冲突;必要时清理或统一环境变量。
- 手动安装场景:在 setclasspath.sh 或环境脚本中显式设置 JAVA_HOME/JRE_HOME,避免脚本找不到 JVM。
四 深入诊断与性能排查
- 线程与内存快照:
- jps -l | grep tomcat 获取 PID;
- jstack > thread_dump.log 分析线程阻塞/死锁;
- 结合 VisualVM/JConsole 监控堆、线程、类加载。
- GC 日志:在 catalina.sh 中设置 CATALINA_OPTS 开启 GC 日志,例如:
-Djava.awt.headless=true -Xlog:gc*:file=catalina-gc.log:time - 连接与数据库:检查 server.xml 连接器参数(maxThreads、connectionTimeout)、连接池配置与数据库响应;必要时用监控工具观察连接数与延迟。
五 服务管理与日志维护
- APT 服务管理:
- 状态:sudo systemctl status tomcat9
- 启动/重启:sudo systemctl start|restart tomcat9
- 日志轮转:配置 /etc/logrotate.d/tomcat,示例:
- /usr/local/tomcat/logs/catalina.out { daily; rotate 7; compress; missingok; notifempty; copytruncate; }
- 清理与保留策略:定期归档/清理旧日志,避免磁盘占满导致无法写入。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu Tomcat错误如何排查
本文地址: https://pptw.com/jishu/759958.html
