温馨提示×

怎样监控tomcat日志异常

小樊
39
2026-10-08 12:17:40
栏目: 智能运维

监控 Tomcat 日志异常可以从日志位置、监控方式、告警机制、自动化工具几个层面来做。下面按“实用顺序”给你一套方案。


一、先搞清楚 Tomcat 有哪些日志

Tomcat 常见日志文件:

日志 说明
catalina.out 最常用,标准输出和异常堆栈
catalina.xxxx-xx-xx.log 按天滚动的 catalina 日志
localhost.xxxx-xx-xx.log 应用级异常
localhost_access_log.xxx.txt 访问日志(非异常,但可辅助)
应用自身 log(log4j / logback) 业务异常重点

一般异常主要看:

  • catalina.out
  • 应用日志(ERROR / Exception)

二、基础手动监控(适合小项目)

1. 实时查看异常

tail -f catalina.out

2. 过滤异常关键字

grep -i "exception" catalina.out
grep -i "error" catalina.out

常见关键字:

  • Exception
  • Error
  • OutOfMemoryError
  • StackOverflowError
  • Timeout
  • 500

三、脚本级自动监控(推荐)

示例:定时检测异常并告警

#!/bin/bash
LOG=/opt/tomcat/logs/catalina.out
KEYWORDS="Exception|Error|OutOfMemory"

if tail -n 200 $LOG | grep -E "$KEYWORDS"; then
  echo "Tomcat 异常,请检查" | mail -s "Tomcat Alert" admin@xx.com
fi

可加入 crontab:

*/5 * * * * /opt/scripts/check_tomcat.sh

四、专业日志监控方案(生产推荐)

方案 1:ELK(最常用)

  • Filebeat:采集 Tomcat 日志
  • Elasticsearch:存储
  • Kibana:可视化 + 告警

优势:

  • 实时搜索
  • 异常趋势图
  • 按 ERROR 级别告警

方案 2:Prometheus + Grafana + Node Exporter

  • 用 tail_exporter 或 grok_exporter
  • 监控:
    • ERROR 数量
    • Exception 频率

方案 3:轻量级(Loki + Grafana)

比 ELK 更轻:

  • promtail 收集日志
  • Loki 存储
  • Grafana 告警

五、重点异常必须监控

✅ JVM 级

  • OutOfMemoryError
  • GC 频繁
  • 线程数暴涨

✅ Web 级

  • 500 错误增多
  • 请求超时
  • 连接池耗尽

✅ 业务级

  • 登录失败
  • 订单异常
  • 支付失败

六、最佳实践建议

  1. 日志分级(INFO / WARN / ERROR)
  2. 异常要打印完整堆栈
  3. 不要只监控 catalina.out,也要监控业务日志
  4. 异常告警 ≠ 邮件轰炸,要做阈值
  5. Tomcat 挂了要监控进程,不只用日志

如果你愿意,我可以:

  • 给你一个 ELK 的 Tomcat 日志配置示例
  • 或写一个 可直接用的 Shell / Python 监控脚本
  • 或针对 Docker / K8s 中的 Tomcat 给方案

你现在是:物理机 / 虚拟机 / Docker / K8s?

0 踩