首页主机资讯Ubuntu Tomcat日志中异常如何处理

Ubuntu Tomcat日志中异常如何处理

时间2025-12-16 15:05:04发布访客分类主机资讯浏览998
导读:Ubuntu Tomcat日志异常的标准处理流程 一 定位与查看日志 确认日志目录:Tomcat 日志通常在 $CATALINA_HOME/logs(安装目录下的 logs),部分发行包或安装方式使用 /var/log/tomcat 或...

Ubuntu Tomcat日志异常的标准处理流程

一 定位与查看日志

  • 确认日志目录:Tomcat 日志通常在 $CATALINA_HOME/logs(安装目录下的 logs),部分发行包或安装方式使用 /var/log/tomcat/var/log/tomcatX(X 为版本号)。主要文件包括:catalina.out(标准输出与错误)、catalina.[日期].loglocalhost.[日期].log、以及应用或管理相关的 manager.log/host-manager.log
  • 常用查看命令:
    • 实时跟踪:tail -f /path/to/tomcat/logs/catalina.out
    • 关键字过滤:grep -i 'ERROR\|SEVERE\|Exception' /path/to/tomcat/logs/catalina.out
    • 时间段筛选:sed -n '/2025-12-15 10:00:00/,/2025-12-15 10:10:00/p' /path/to/tomcat/logs/catalina.out
    • 分页查看:less /path/to/tomcat/logs/catalina.out
    • 统计错误数:grep -c 'ERROR' /path/to/tomcat/logs/catalina.out
      以上路径与命令适用于 Ubuntu 环境下的常见部署形态。

二 快速排查步骤

  • 进程与端口:确认 Tomcat 是否在运行(ps aux | grep tomcat);检查端口占用(如 8080):netstat -tulpen | grep 8080lsof -i :8080,若冲突,结束占用进程或调整 server.xml 的端口。
  • 配置文件:核对 conf/server.xmlconf/web.xml 等是否存在语法或语义错误(如 Host、Context、Valve 配置不当)。
  • 应用与依赖:若启动失败或访问报类/资源缺失,检查 WEB-INF/lib 是否包含所需 JAR,避免 NoClassDefFoundError/ClassNotFoundException
  • 数据库与连接池:出现连接失败或超时,核对 JDBC URL、用户名、密码、驱动类名 与数据库网络连通性。
  • 系统资源:检查 CPU、内存、磁盘空间 是否充足(如 free -hdf -h),防止因资源不足导致异常。
  • 变更生效:修改配置或依赖后,重启 Tomcat(如 sudo systemctl restart tomcat 或通过脚本重启)。

三 常见异常与处理对照表

异常现象或关键词 可能原因 处理要点
Address already in use(端口被占用) 其他进程占用 8080 等端口 lsof -i :8080 查 PID,kill -9 PID 或调整 server.xml 端口
ClassNotFoundException / NoClassDefFoundError 依赖 JAR 缺失或版本冲突 将依赖放入 WEB-INF/lib,或修正版本;必要时清理工作目录后重部署
OutOfMemoryError 堆内存不足 调整 JAVA_OPTS(如 -Xms512m -Xmx1024m),优化应用内存使用
SQLException / Connection refused 数据库 URL、账号密码错误或数据库不可达 校验连接串、网络、账号权限;必要时调整连接池配置
FileNotFoundException 配置或文件路径错误 确认路径存在且 Tomcat 有访问权限
日志乱码 编码不一致 logging.properties 设置 java.util.logging.ConsoleHandler.encoding=UTF-8,并确保环境使用 UTF-8
INVALID BYTE TAG IN CONSTANT POOL 编译后的 class 文件冲突或损坏 清理应用目录的 classes 与冲突包,使用一致版本的编译产物重部署

四 提升日志可观测性与维护

  • 调整日志级别:在 conf/logging.properties 提升特定包的日志级别以获取更详细异常信息,例如:
    org.apache.catalina.core.*=FINEorg.apache.catalina.core.ContainerBase.[Catalina].[localhost].level=FINE;修改后需重启使其生效。
  • 日志轮转与清理:使用 logrotate 管理 catalina.out 等大文件,示例配置:
    /usr/local/tomcat/logs/catalina.out { daily rotate 7 compress missingok notifempty copytruncate }
    按需执行 logrotate -f /etc/logrotate.conf 测试轮转。
  • 集中化与可视化:引入 ELK Stack(Elasticsearch/Logstash/Kibana)GraylogFluentd,统一采集、检索、告警与可视化 Tomcat 日志。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Ubuntu Tomcat日志中异常如何处理
本文地址: https://pptw.com/jishu/772850.html
Ubuntu Tomcat日志中GC问题如何解决 Linux cpustat命令在脚本中的自动化应用

游客 回复需填写必要信息