温馨提示×

Ubuntu怎么分析Tomcat日志

小樊
42
2026-08-05 14:28:00
栏目: 智能运维

Ubuntu 上分析 Tomcat 日志,通常从日志位置、常用日志类型、分析命令和工具几个方面入手。下面给你一套从入门到进阶的实用指南。


一、Tomcat 日志默认位置

Tomcat 日志一般在:

/var/log/tomcat*/

或(源码安装):

/usr/local/tomcat/logs/

常见日志文件:

文件名 作用
catalina.out 主日志(最常用)
catalina.2025-01-21.log 按日期分割
localhost.log 应用级异常
localhost_access_log.txt 访问日志(类似 Nginx)
manager.log manager 应用日志

二、最常用分析命令(命令行)

1️⃣ 实时查看日志(强烈推荐)

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

✅ 用于观察启动、报错、请求异常


2️⃣ 查找错误 / 异常

grep -n "ERROR" catalina.out
grep -n "Exception" catalina.out

只看最近 100 行:

tail -n 100 catalina.out | grep Exception

3️⃣ 查看某一时间段的日志

sed -n '/2025-01-21 10:00/,/2025-01-21 11:00/p' catalina.out

4️⃣ 统计访问日志(access log)

查看访问最多的 IP:

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

查看访问最多的接口:

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

5️⃣ 查看 500 / 404 错误

grep " 500 " localhost_access_log.txt
grep " 404 " localhost_access_log.txt

三、Tomcat 启动失败怎么分析?

1️⃣ 查看启动日志

less catalina.out

重点搜索:

grep -i "error\|exception\|fail" catalina.out

常见错误:

  • 端口被占用
  • JDK 版本不匹配
  • 配置文件错误

2️⃣ 查看端口占用

ss -lntp | grep 8080

或:

netstat -tlnp | grep 8080

四、使用 journalctl(Ubuntu + systemd)

如果 Tomcat 是 systemd 管理:

journalctl -u tomcat9 -f

查看某段时间:

journalctl -u tomcat9 --since "2025-01-21 10:00" --until "11:00"

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

✅ 1. GoAccess(访问日志可视化)

sudo apt install goaccess
goaccess localhost_access_log.txt -c

可生成 HTML 报表


✅ 2. ELK(企业级)

  • Elasticsearch
  • Logstash
  • Kibana

适合:
✅ 多 Tomcat
✅ 高并发
✅ 日志集中分析


✅ 3. lnav(日志神器)

sudo apt install lnav
lnav catalina.out

✅ 语法高亮
✅ 自动识别时间
✅ 快速搜索


六、Tomcat 日志分析常见场景

场景 建议
启动失败 catalina.out
接口 500 localhost.log
慢请求 access log + 响应时间
内存溢出 搜索 OutOfMemoryError
被攻击 access log + IP 统计

七、实用排查模板(直接可用)

# 查看最近异常
tail -n 200 catalina.out | grep -A 10 -B 2 Exception

# 查看访问 TOP10 IP
awk '{print $1}' localhost_access_log.txt | sort | uniq -c | sort -nr | head

如果你愿意,可以告诉我:

  • ✅ Tomcat 版本
  • ✅ 日志路径
  • ✅ 具体问题(启动失败 / 接口报错 / 性能慢)

我可以 直接帮你分析日志内容

0