Debian下Tomcat日志分析方法是什么
小樊
40
2025-11-26 06:16:17
Debian下Tomcat日志分析方法
一 定位日志与快速查看
- 常见日志路径:
- 系统包安装:/var/log/tomcat/ 或 /var/log/tomcatX/(X为版本号)
- 手动安装:$CATALINA_HOME/logs(可通过 echo $CATALINA_HOME 确认)
- 核心日志与作用:
- catalina.out:标准输出/错误与启动关闭过程
- localhost..log:本地主机应用日志(含异常栈)
- host-manager.log / manager.log:管理应用日志
- 快速查看命令:
- 实时跟踪:tail -f /var/log/tomcat/catalina.out
- 按日期查看:cat /var/log/tomcat/localhost.2025-04-01.log
- 关键字筛选:grep -i “error|exception|failed” catalina.out
- 服务日志(若以 systemd 管理):journalctl -u tomcat
二 命令行高效分析
- 错误与异常定位
- 多关键字:grep -Ei “error|exception|failed|caused by” catalina.out
- 异常栈聚焦:grep -A 20 -B 5 “java.lang.” catalina.out
- 访问与状态码统计
- 统计各状态码次数:grep -o ‘HTTP/[0-9.]*" [0-9]{3}’ localhost..log | sort | uniq -c
- Top N URL:grep ‘HTTP/[0-9.]*" [0-9]{3}’ localhost..log | awk ‘{print $7}’ | sort | uniq -c | sort -nr | head -n 20
- 时间窗口与抽样
- 按时间段导出:sed -n ‘/2025-04-01 10:00:00/,/2025-04-01 11:00:00/p’ catalina.out > window.log
- 抽样最新 N 行:tail -n 10000 catalina.out | less
- 性能线索
- 长耗时请求:awk ‘$NF > 5 {print $0}’ localhost..log(假设第NF列为耗时秒)
- JVM 运行时指标:jstat -gcutil 1000(需先获取 Tomcat 进程 PID)
三 日志配置与轮转
- 日志级别与格式
- 配置文件:$CATALINA_BASE/conf/logging.properties
- 示例(提高控制台与本地日志级别):
- 1catalina.org.apache.juli.FileHandler.level = FINE
- java.util.logging.ConsoleHandler.level = FINE
- 访问日志模式
- 可在 logging.properties 或 server.xml 的 AccessLogValve 中自定义 pattern,常用字段:%a %l %u %t “%r” %s %b %D
- 日志轮转与清理
- Debian 常用 logrotate:检查 /etc/logrotate.d/tomcat,示例:
- /opt/tomcat/logs/catalina.out { daily; rotate 7; compress; missingok; create 640 tomcat tomcat; postrotate /bin/kill -HUP
cat /var/run/tomcat.pid 2>/dev/null 2>/dev/null || true; endscript }
- 大文件切割:使用 cronolog 按日期分割 catalina.out(修改 catalina.sh 的日志输出)
四 可视化与监控方案
- 集中式日志平台
- ELK Stack(Elasticsearch + Logstash + Kibana):Logstash 用 grok 解析,索引如 tomcat-logs-YYYY.MM.dd,Kibana 建立索引模式与可视化面板
- Graylog / Splunk:收集、检索、告警与报表
- 系统监控与告警
- Zabbix:基于日志关键字或 Elasticsearch 指标设置触发器
- APM(New Relic、Datadog、AppDynamics):深入业务与性能分析
- JVM 与线程分析
- JMX + jconsole/jvisualvm;jstack 获取线程转储定位死锁与阻塞
五 故障排查与优化清单
- 启动失败
- 查看 catalina.out 启动阶段报错;核对 server.xml / web.xml 配置与端口占用;必要时提升日志级别到 FINE/DEBUG
- 运行期异常
- 在 localhost..log 定位异常栈与触发 URL;结合访问日志统计 4xx/5xx 分布与峰值时段
- 性能与资源
- 用 jstat -gcutil 观察 GC 与内存;结合长耗时请求定位慢 SQL/慢接口;必要时扩容线程池与优化连接池
- 日志治理
- 启用 logrotate/cronolog 控制体积;定期归档与清理;为审计与合规保留关键周期
- 安全与合规
- 审计 access log 中的异常 UA/路径扫描;对管理接口(manager/host-manager)限制来源 IP 与启用强认证