Ubuntu Tomcat日志存储位置及备份策略
导读: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.xml 的 AccessLogValve 中查看 directory/prefix/suffix 属性。
二 如何修改日志目录
- 通过 conf/logging.properties 调整基于 JUL 的日志处理器输出目录,常见做法是将路径中的 { catalina.base} 指向你的目标目录(需确保目录存在且 Tomcat 用户可写)。
- 访问日志路径由 conf/server.xml 的 AccessLogValve 控制,可直接修改 directory 属性到目标目录(同样需权限与目录存在)。
三 备份策略与实施步骤
- 策略要点
- 备份范围:至少覆盖 catalina.out、catalina.*.log、localhost.*.log、localhost_access_log.*.txt、manager.*.log、host-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 # 强制执行一次
- 新建配置 /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
- 示例脚本 /opt/backup/backup_tomcat_logs.sh:
- 方案三 远程备份与归档
- 使用 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
