在 Debian 上分析 Tomcat 日志,通常可以从日志位置、日志类型、常用分析命令、常见问题定位几个方面入手。下面给你一份实用指南。
Tomcat 日志默认在:
/var/log/tomcat9/ # Debian 10/11 常见
/var/log/tomcat10/ # Debian 12+
常见日志文件:
| 文件 | 说明 |
|---|---|
catalina.out |
主日志,最核心 |
catalina.YYYY-MM-DD.log |
按天滚动 |
localhost.YYYY-MM-DD.log |
本地应用日志 |
localhost_access_log.YYYY-MM-DD.txt |
访问日志 |
manager.log / host-manager.log |
管理端日志 |
如果你是自己解压的 Tomcat:
$TOMCAT_HOME/logs/
格式类似:
127.0.0.1 - - [10/Oct/2024:10:00:00 +0800] "GET /api/test HTTP/1.1" 200 1234
用于:
tail -f /var/log/tomcat9/catalina.out
grep -i error /var/log/tomcat9/catalina.out
grep -i exception /var/log/tomcat9/catalina.out
tail -n 100 /var/log/tomcat9/catalina.out
sed -n '/2024-10-10 10:00/,/2024-10-10 11:00/p' catalina.out
grep " 500 " localhost_access_log.*.txt | wc -l
awk '{print $7, $10}' localhost_access_log.*.txt | sort -k2 -nr | head
看:
catalina.out
重点:
java.lang.OutOfMemoryErrorPort already in useClassNotFoundExceptionlocalhost_access_loglocalhost.logcatalina.out 中的异常堆栈Caused byjava.lang.OutOfMemoryError: Java heap space
解决:
JAVA_OPTSJAVA_OPTS="-Xms512m -Xmx1024m"
编辑:
/etc/tomcat9/logging.properties
示例:
org.apache.catalina.level = FINE
lnav:日志分析神器apt install lnav
lnav /var/log/tomcat9/
goaccess(access_log 可视化)如果你愿意,可以:
我可以直接帮你分析具体日志。