温馨提示×

Ubuntu Tomcat日志与故障排查

小樊
60
2025-08-11 00:40:56
栏目: 智能运维

一、日志定位与查看

  • 日志路径
    • 主要日志文件位于 /var/log/tomcatX/(X为版本号)或 CATALINA_HOME/logs/,核心文件包括 catalina.out(运行时日志)、localhost.log(应用相关日志)。
    • 部分系统可能使用 journalctl 查看系统级日志:sudo journalctl -u tomcatX -f
  • 查看命令
    • 实时查看:tail -f catalina.out
    • 过滤关键字:grep 'ERROR' catalina.out
    • 分析时间段:sed -n '/开始时间/,/结束时间/p' catalina.out

二、常见故障排查

1. 启动失败

  • 端口冲突
    sudo netstat -tulnp | grep 端口号 检查端口占用,修改 conf/server.xml 中的端口配置。
  • 配置文件错误
    检查 server.xmlweb.xml 语法,可通过XML验证工具确认。
  • 权限问题
    确保Tomcat目录权限正确:sudo chown -R tomcat:tomcat /path/to/tomcat
  • Java环境异常
    检查 JAVA_HOME 配置,通过 java -version 确认版本兼容性。

2. 运行时异常

  • 内存不足(OOM)
    日志中出现 java.lang.OutOfMemoryError 时,调整JVM参数(如 -Xms512m -Xmx1024m),修改 catalina.shsetenv.sh
  • 数据库连接失败
    检查 context.xml 中的数据库URL、用户名、密码,确认数据库服务正常。
  • 应用部署错误
    查看应用日志(如 localhost.<日期>.log),确认是否有类加载错误或依赖缺失。

3. 性能问题

  • 频繁Full GC
    通过 jstat -gcutil <pid> 监控GC情况,若Full GC频繁,可能存在内存泄漏,需分析Heap Dump。
  • 响应延迟
    检查系统资源(topdf -h),确认CPU/磁盘负载是否过高。

三、工具与技巧

  • 日志分析工具
    • 基础分析:awk 统计错误数量,sort/uniq 去重。
    • 高级分析:ELK Stack(Elasticsearch+Logstash+Kibana)用于可视化日志。
  • 实时监控
    使用 jstack 生成线程转储,分析线程阻塞情况。
    通过 jmap 生成堆转储,排查内存泄漏。

四、注意事项

  • 修改配置后需重启Tomcat:sudo systemctl restart tomcatX
  • 生产环境建议开启日志轮转(如 logrotate),避免日志文件过大。

参考来源

0