温馨提示×

debian如何分析tomcat日志

小樊
39
2026-08-12 03:03:03
栏目: 智能运维

在 Debian 上分析 Tomcat 日志,通常从日志位置、日志类型、常用分析命令和工具几个方面入手。下面给你一套实用且系统的做法。


一、Tomcat 日志在哪(Debian 常见路径)

1️⃣ 默认位置

/var/log/tomcat9/

(版本不同可能是 tomcat8tomcat10

常见文件:

catalina.out        # 主日志(最常用)
catalina.2026-01-21.log
localhost.2026-01-21.log
manager.2026-01-21.log
host-manager.2026-01-21.log

90% 的问题都在 catalina.out


二、最常用分析命令(必须掌握)

1️⃣ 实时查看日志

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

2️⃣ 查找错误

grep -i error /var/log/tomcat9/catalina.out

只看最近 100 行:

tail -n 100 /var/log/tomcat9/catalina.out | grep -i error

3️⃣ 查看异常堆栈

grep -A 20 "Exception" /var/log/tomcat9/catalina.out

4️⃣ 按时间过滤

grep "2026-01-21 14:" /var/log/tomcat9/catalina.out

5️⃣ 统计访问量(localhost_access_log)

wc -l /var/log/tomcat9/localhost_access_log.*.txt

三、分析 Tomcat 启动问题

✅ 常见启动失败原因

grep -E "ERROR|Failed|Unable" /var/log/tomcat9/catalina.out

重点看:

  • 端口占用
  • Java 版本
  • 内存不足

四、分析内存 / OOM 问题

1️⃣ 查看是否 OOM

grep -i "OutOfMemoryError" /var/log/tomcat9/catalina.out

2️⃣ 查看 JVM 参数

ps -ef | grep tomcat

或:

systemctl cat tomcat9

五、分析访问日志(Access Log)

路径示例:

/var/log/tomcat9/localhost_access_log.*.txt

1️⃣ 查看访问最多的 IP

awk '{print $1}' localhost_access_log.*.txt | sort | uniq -c | sort -nr | head

2️⃣ 查看 500 错误

grep " 500 " localhost_access_log.*.txt

3️⃣ 查看慢请求(响应时间)

如果开启 %D

awk '{print $NF}' localhost_access_log.*.txt | sort -nr | head

六、使用 journalctl(systemd)

Debian 使用 systemd 时:

journalctl -u tomcat9 -f

查看某段时间:

journalctl -u tomcat9 --since "2026-01-21 10:00" --until "2026-01-21 15:00"

七、日志切割与清理(很重要)

1️⃣ 防止 catalina.out 过大

使用 logrotate

cat /etc/logrotate.d/tomcat9

常见配置:

/var/log/tomcat9/catalina.out {
    copytruncate
    daily
    rotate 7
    compress
    missingok
}

八、推荐分析工具(进阶)

工具 用途
less 大文件查看
awk 统计
goaccess Web 访问日志可视化
ELK 企业级日志分析
lnav 日志高级查看

安装 lnav:

sudo apt install lnav
lnav /var/log/tomcat9/catalina.out

九、常见问题速查表

问题 命令
Tomcat 起不来 grep ERROR catalina.out
内存溢出 grep OutOfMemoryError
端口占用 ss -lntp
请求 404 localhost_access_log
慢请求 grep -i "slow"

十、如果你愿意,我可以进一步帮你

你可以直接贴出:

  • ❌ 报错片段
  • ✅ Tomcat 版本
  • ✅ Debian 版本
  • ✅ 出现的问题(启动失败 / 访问慢 / 内存溢出)

我可以 直接帮你定位问题

0