温馨提示×

为何debian tomcat日志暴增

小樊
52
2026-09-10 07:00:13
栏目: 智能运维

Debian 上 Tomcat 日志突然暴增,通常不是 Tomcat 本身“抽风”,而是应用、配置或系统环境出了问题。下面按最常见原因 → 排查方法 → 解决建议来说明。


一、最常见原因(90% 情况)

1️⃣ 应用疯狂打日志(最常见)

原因

  • 代码里有 while(true) / 死循环
  • 异常被 catch 后 e.printStackTrace()
  • 日志级别设置成 DEBUG 或 ALL

典型表现

  • catalina.out 或 localhost.log 几 GB/小时
  • 内容重复、相似度高

排查

tail -f /var/log/tomcat9/catalina.out

看是不是同一条日志在刷。

解决

  • 改日志级别为 INFO 或 WARN
  • 检查代码是否有死循环 / 异常重复打印

2️⃣ 请求异常暴涨(被扫描 / 攻击)

原因

  • 被爬虫、扫描器、爆破工具访问
  • 接口报错 → 每次都打异常日志

典型表现

  • localhost_access_log.*.txt 暴增
  • 大量 404 / 500

排查

awk '{print $1}' access.log | sort | uniq -c | sort -nr | head

解决

  • 加防火墙 / fail2ban
  • 限制异常接口访问频率

3️⃣ 日志未轮转(logrotate 失效)

原因

  • Debian 默认用 logrotate
  • Tomcat 没重启 → 日志文件被截断但不释放

典型表现

  • 单个 catalina.out 几十 GB
  • 磁盘快满

检查

ls -lh /var/log/tomcat9/
cat /etc/logrotate.d/tomcat9

解决

logrotate -f /etc/logrotate.d/tomcat9
systemctl restart tomcat9

4️⃣ 使用了 System.out / System.err

原因

  • System.out.println() 会写入 catalina.out
  • 高并发下极恐怖

解决

  • 禁止直接使用 System.out
  • 统一用 log4j / slf4j

5️⃣ JVM 崩溃 / OOM

原因

  • 内存溢出
  • 每次崩溃都生成 hs_err_pid*.log

排查

ls -lh /var/log/tomcat9/
dmesg | grep java

解决

  • 调整 -Xmx
  • 查内存泄漏

二、快速自查清单(建议你照着做)

# 1. 看哪个日志最大
du -sh /var/log/tomcat9/* | sort -h

# 2. 实时看日志
tail -f /var/log/tomcat9/catalina.out

# 3. 看访问来源
awk '{print $1}' /var/log/tomcat9/localhost_access_log.* | sort | uniq -c | sort -nr | head

# 4. 看磁盘
df -h

三、如果你愿意,我可以更精准帮你

你可以直接贴:

  • Debian 版本
  • Tomcat 版本
  • 哪个日志文件在暴增
  • 日志前 20 行内容

我可以直接帮你定位是哪一类问题。

0 踩