怎样优化centos tomcat日志
导读:CentOS 上 Tomcat 日志优化实操指南 一 核心目标与总体思路 控制单个日志文件体积,避免 catalina.out 无限增长导致磁盘占满或打开缓慢。 按时间与大小进行自动切割,便于归档、检索与清理。 降低日志噪声,减少不必要的...
CentOS 上 Tomcat 日志优化实操指南
一 核心目标与总体思路
- 控制单个日志文件体积,避免 catalina.out 无限增长导致磁盘占满或打开缓慢。
- 按时间与大小进行自动切割,便于归档、检索与清理。
- 降低日志噪声,减少不必要的输出,提升性能与可读性。
- 建立集中化与监控告警机制,提前发现异常。
二 切割 catalina.out 的两种可靠方案
-
方案一 使用 cronolog 按日期分割
- 安装:优先使用包管理器安装(如 yum install -y cronolog),或源码编译安装;安装后确认路径(常见为 /usr/sbin/cronolog 或 /usr/local/sbin/cronolog)。
- 配置:编辑 $CATALINA_HOME/bin/catalina.sh,将输出重定向到 cronolog,例如:
- 设置输出文件名格式:将 if [ -z “$CATALINA_OUT” ];
then 改为
- CATALINA_OUT=“$CATALINA_BASE”/logs/catalina.%Y-%m-%d.out
- 注释创建空文件的行:# touch “$CATALINA_OUT”
- 修改启动行(有两处,保持一致):
- org.apache.catalina.startup.Bootstrap “$@” start 2>
&
1
| /usr/sbin/cronolog “$CATALINA_OUT” > > /dev/null &
- org.apache.catalina.startup.Bootstrap “$@” start 2>
&
1
- 设置输出文件名格式:将 if [ -z “$CATALINA_OUT” ];
then 改为
- 验证:重启后在 $CATALINA_HOME/logs 下应生成 catalina.YYYY-MM-DD.out 文件。
-
方案二 使用 logrotate 按天或按大小轮转
- 新建配置:在 /etc/logrotate.d/ 下创建 tomcat,示例:
- /opt/tomcat/logs/catalina.out {
- copytruncate
- daily
- rotate 7
- missingok
- compress
- size 100M
- dateext
- dateformat .%Y-%m-%d
- create 0644 tomcat tomcat
- su tomcat tomcat
- }
- /opt/tomcat/logs/catalina.out {
- 说明:
- copytruncate 适用于仍向 catalina.out 写入的场景;若已用 cronolog 分割标准输出,则可改为直接轮转生成的按日期文件(如 catalina.*.out),此时通常不再需要 copytruncate。
- 系统每日由 crond 自动执行 logrotate(/etc/cron.daily/logrotate),也可手动触发:logrotate -f /etc/logrotate.d/tomcat。
- 新建配置:在 /etc/logrotate.d/ 下创建 tomcat,示例:
三 减少日志量与访问日志优化
- 调整运行日志级别:编辑 $CATALINA_HOME/conf/logging.properties,将不需要的包或整体级别调高(如从 FINE 调到 WARNING/ERROR),示例:
- 1catalina.org.apache.juli.AsyncFileHandler.level = WARNING
- 2localhost.org.apache.juli.AsyncFileHandler.level = WARNING
- 也可按需关闭:1catalina.org.apache.juli.AsyncFileHandler.level = OFF
- 修改后重启 Tomcat 生效。
- 优化访问日志:在 $CATALINA_HOME/conf/server.xml 中调整或禁用 AccessLogValve,减少不必要的字段与输出:
- 关闭访问日志(如非必须):
- < Valve className=“org.apache.catalina.valves.AccessLogValve” … /> 注释或移除
- 精简 pattern,保留关键字段(示例):
- pattern=“%h %t "%r" %s %b”
- 如无需 DNS 反查,设置 resolveHosts=“false” 提升性能。
- 关闭访问日志(如非必须):
四 集中化与监控告警
- 集中化:将 Tomcat 日志通过 rsyslog 发送到远程日志中心(如 ELK/Graylog/Splunk),便于统一检索、分析与长期留存。
- 监控与预警:对 /opt/tomcat/logs 所在分区设置磁盘空间监控与阈值告警(如 Zabbix/Nagios),在日志激增或磁盘将满时及时处置。
五 快速检查与常用命令
- 实时查看:tail -f $CATALINA_HOME/logs/catalina.out
- 按天查看:tail -f $CATALINA_HOME/logs/catalina.$(date +%F).out
- 手动轮转:logrotate -f /etc/logrotate.d/tomcat
- 语法校验:logrotate -d /etc/logrotate.d/tomcat
- 服务日志(若使用 systemd):journalctl -u tomcat.service -f
- 重启 Tomcat:systemctl restart tomcat 或 $CATALINA_HOME/bin/shutdown.sh & & $CATALINA_HOME/bin/startup.sh
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 怎样优化centos tomcat日志
本文地址: https://pptw.com/jishu/761399.html
