Tomcat日志在Debian上如何有效管理
导读:Debian上Tomcat日志的有效管理 一 日志位置与类型 日志默认位于 $CATALINA_BASE/logs,常见文件与作用如下: catalina.out:标准输出与错误输出(通常未轮转,需要外部工具处理)。 catalina....
Debian上Tomcat日志的有效管理
一 日志位置与类型
- 日志默认位于 $CATALINA_BASE/logs,常见文件与作用如下:
- catalina.out:标准输出与错误输出(通常未轮转,需要外部工具处理)。
- catalina.YYYY-MM-DD.log:Tomcat 启动、关闭等引擎日志。
- localhost.YYYY-MM-DD.log:本地主机应用日志。
- manager.YYYY-MM-DD.log / host-manager.YYYY-MM-DD.log:管理应用日志。
- 访问日志(若启用)通常为 localhost_access_log.YYYY-MM-DD.txt,记录 HTTP 请求。以上路径与文件名在不同安装方式下可能为 /var/log/tomcat/ 或 /opt/tomcat/logs。
二 使用 logrotate 进行轮转
- 创建配置:在 /etc/logrotate.d/tomcat 添加规则,适配你的日志路径(示例覆盖两种常见场景)。
- 示例一(按文件轮转,适合对 catalina.out 使用 copytruncate)
/opt/tomcat/logs/catalina.out { daily rotate 7 compress missingok notifempty copytruncate create 640 tomcat adm } - 示例二(通配符轮转,适合已按日期切分的 catalina/localhost 等日志)
/var/log/tomcat/*.log { daily missingok rotate 7 compress notifempty create 640 tomcat adm } - 关键参数说明:
- daily / rotate 7 / compress / missingok / notifempty:按天轮转、保留 7 份、压缩旧日志、文件缺失不报错、空文件不轮转。
- copytruncate:复制后清空原文件,避免 catalina.out 被进程占用无法重开(适合 JULI 直接写文件的情况)。
- create 640 tomcat adm:轮转后重建文件并设定权限与属主。
- 测试与生效:
- 手动测试:
sudo logrotate -f /etc/logrotate.d/tomcat - 自动执行:Debian 通常通过 /etc/cron.daily/logrotate 每日调用,无需额外配置。
- 手动测试:
三 调整日志级别与格式
- 修改 $CATALINA_BASE/conf/logging.properties:
- 调整级别(示例将本地主机日志设为 FINE,生产慎用高冗余级别):
1catalina.org.apache.juli.AsyncFileHandler.level = FINE org.apache.catalina.core.ContainerBase.[Catalina].[localhost].level = FINE - 自定义控制台输出格式(可选):
java.util.logging.ConsoleHandler.formatter = org.apache.juli.OneLineFormatter - 修改日志目录(可选,统一落到系统日志目录):
1catalina.org.apache.juli.AsyncFileHandler.directory = /var/log/tomcat - 使配置生效:重启 Tomcat 服务。
- 调整级别(示例将本地主机日志设为 FINE,生产慎用高冗余级别):
四 启用与定制访问日志
- 在 $CATALINA_BASE/conf/server.xml 的 Engine/Host 内添加或修改 AccessLogValve,示例:
< Valve className="org.apache.catalina.valves.AccessLogValve" directory="${ catalina.base} /logs" prefix="localhost_access_log" suffix=".txt" pattern="%h %l %u %t "%r" %s %b" resolveHosts="false"/> - 常用 pattern:
- common:
%h %l %u %t "%r" %s %b - combined:在 common 基础上增加 Referer 与 User-Agent。
- common:
五 监控分析与归档备份
- 实时监控与排查:
- 实时查看:
tail -f /var/log/tomcat/catalina.out - 关键字过滤:
grep -i "error" /var/log/tomcat/catalina.out - 统计与切分:
awk '{ print $1} ' access_log | sort | uniq -c | sort -nr
- 实时查看:
- 集中化与告警:
- 使用 ELK Stack(Elasticsearch/Logstash/Kibana) 或 Graylog 做日志采集、检索、可视化与告警。
- 归档与清理:
- 按日归档:
tar czvf tomcat_logs_$(date +%Y%m%d).tar.gz /opt/tomcat/logs/ - 自动清理(示例删除 30 天前日志):
find /opt/tomcat/logs -name "catalina.*.log" -mtime +30 -delete - 可将归档与清理脚本加入 crontab 定时执行。
- 按日归档:
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Tomcat日志在Debian上如何有效管理
本文地址: https://pptw.com/jishu/785229.html
