首页主机资讯Ubuntu Tomcat日志存储位置及备份策略

Ubuntu Tomcat日志存储位置及备份策略

时间2025-12-08 12:57:03发布访客分类主机资讯浏览600
导读:Ubuntu Tomcat日志存储位置与备份策略 一 日志默认存储位置 常见位置有两种: 安装目录下的 $CATALINA_HOME/logs(如:/opt/tomcat/logs、/usr/local/tomcat/logs)。 发行...

Ubuntu Tomcat日志存储位置与备份策略

一 日志默认存储位置

  • 常见位置有两种:
    • 安装目录下的 $CATALINA_HOME/logs(如:/opt/tomcat/logs/usr/local/tomcat/logs)。
    • 发行版包管理安装的实例常用 /var/log/tomcat/
  • 常见日志文件与作用:
    • catalina.out:标准输出与错误输出(默认不自动切割)。
    • catalina.YYYY-MM-DD.log:Tomcat 启动、关闭与运行日志。
    • localhost.YYYY-MM-DD.log:应用初始化等本地主机相关日志。
    • localhost_access_log.YYYY-MM-DD.txt:访问日志(由 AccessLogValve 生成)。
    • manager.YYYY-MM-DD.log / host-manager.YYYY-MM-DD.log:管理应用日志。
  • 如何确认你的实例路径:
    • 查看环境变量:echo $CATALINA_HOME $CATALINA_BASE
    • 访问日志路径可在 conf/server.xmlAccessLogValve 中查看 directory/prefix/suffix 属性。

二 如何修改日志目录

  • 通过 conf/logging.properties 调整基于 JUL 的日志处理器输出目录,常见做法是将路径中的 { catalina.base} 指向你的目标目录(需确保目录存在且 Tomcat 用户可写)。
  • 访问日志路径由 conf/server.xmlAccessLogValve 控制,可直接修改 directory 属性到目标目录(同样需权限与目录存在)。

三 备份策略与实施步骤

  • 策略要点
    • 备份范围:至少覆盖 catalina.outcatalina.*.loglocalhost.*.loglocalhost_access_log.*.txtmanager.*.loghost-manager.*.log
    • 频率与保留:按日备份,滚动保留 7–90 天(合规要求更高时可延长)。
    • 异地与集中:本地保留短期,定期同步到 远程存储/NFS/对象存储 做长期留存与审计。
  • 方案一 Logrotate(推荐,系统自带)
    • 新建配置 /etc/logrotate.d/tomcat
      /opt/tomcat/logs/catalina.out {
          
          daily
          rotate 30
          compress
          delaycompress
          missingok
          notifempty
          create 640 tomcat tomcat
          sharedscripts
          postrotate
              systemctl reload tomcat >
          /dev/null 2>
          &
      1 || true
          endscript
      }
      
      
      /opt/tomcat/logs/*.log {
      
          daily
          rotate 14
          compress
          missingok
          notifempty
          create 640 tomcat tomcat
      }
          
      
    • 测试与生效:
      sudo logrotate -d /etc/logrotate.conf   # 语法与执行计划演练
      sudo logrotate -f /etc/logrotate.d/tomcat  # 强制执行一次
      
  • 方案二 定时脚本 + 压缩归档(便于拷贝到远程)
    • 示例脚本 /opt/backup/backup_tomcat_logs.sh
      #!/usr/bin/env bash
      set -e
      LOG_PATH="/opt/tomcat/logs"
      BACKUP_DIR="/opt/backup/tomcat/$(date +%F)"
      RETENTION_DAYS=14
      
      mkdir -p "$BACKUP_DIR"
      # 轮转 catalina.out
      [ -f "$LOG_PATH/catalina.out" ] &
          &
       \
        mv "$LOG_PATH/catalina.out" "$BACKUP_DIR/catalina.out.$(date +%Y%m%d)"
      # 打包其余 .log(排除已轮转的 catalina.out)
      find "$LOG_PATH" -maxdepth 1 -name "*.log" ! -name "catalina.out" -mtime -1 -exec tar czf "$BACKUP_DIR/tomcat_logs_$(date +%Y%m%d).tar.gz" -C "$LOG_PATH" {
      }
           +
      # 清理本地旧日志
      find "$LOG_PATH" -mtime +$RETENTION_DAYS -name "*.gz" -delete
      find "$BACKUP_DIR" -mtime +$RETENTION_DAYS -delete
      
      # 可选:同步到远程
      # rsync -avz --delete "$BACKUP_DIR/" user@remote:/backup/tomcat/
      
    • 赋权与定时(每天 02:00 执行):
      chmod +x /opt/backup/backup_tomcat_logs.sh
      echo "0 2 * * * /opt/backup/backup_tomcat_logs.sh" | sudo tee /etc/cron.d/backup_tomcat_logs
      
  • 方案三 远程备份与归档
    • 使用 rsync 增量同步到备份服务器或对象存储挂载目录,实现长期留存与灾备。

四 日志切割与保留建议

  • catalina.out 默认不切割,建议用 logrotate 或脚本每日轮转并压缩,避免单文件过大影响检索与传输。
  • 访问日志由 AccessLogValve 按日生成,配合 logrotate 做压缩与清理即可,无需额外应用层切割。
  • 日志级别与输出优化可在 conf/logging.properties 调整,减少低级别日志量,降低磁盘与 I/O 压力。

五 快速排障与验证

  • 定位日志目录与配置:
    echo $CATALINA_BASE
    grep -n "AccessLogValve" /opt/tomcat/conf/server.xml
    
  • 查看与检索:
    tail -f /opt/tomcat/logs/catalina.out
    less /opt/tomcat/logs/localhost_access_log.2025-12-08.txt
    grep -i "error\|exception" /opt/tomcat/logs/catalina.*.log
    
  • 验证 Logrotate:
    sudo logrotate -d /etc/logrotate.conf
    sudo logrotate -f /etc/logrotate.d/tomcat
    

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


若转载请注明出处: Ubuntu Tomcat日志存储位置及备份策略
本文地址: https://pptw.com/jishu/765847.html
Telnet在Linux中有何作用 Ubuntu Tomcat日志中的异常信息如何处理

游客 回复需填写必要信息