温馨提示×

怎样监控tomcat运行日志

小樊
38
2026-09-18 16:50:54
栏目: 智能运维

监控 Tomcat 运行日志通常可以从实时查看日志、日志分析、告警监控、集中化管理几个层面来做。下面按常见场景给你一个比较系统的方案。


一、Tomcat 日志在哪里

Tomcat 默认日志一般在:

$TOMCAT_HOME/logs/

常见日志文件:

  • catalina.out:标准输出和错误(最重要)
  • catalina.YYYY-MM-DD.log:按天滚动
  • localhost.YYYY-MM-DD.log
  • localhost_access_log.YYYY-MM-DD.txt:访问日志
  • manager / host-manager 日志(较少用)

二、实时查看日志(最基础)

1. Linux 下 tail 实时查看

tail -f $TOMCAT_HOME/logs/catalina.out

查看最近 500 行并实时跟踪:

tail -500f catalina.out

过滤 ERROR:

tail -f catalina.out | grep ERROR

2. 多日志同时看

tail -f catalina.out localhost_access_log.*

三、日志级别与内容优化

1. 调整日志级别(conf/logging.properties)

org.apache.catalina.level = INFO

常见级别:

  • SEVERE(错误)
  • WARNING
  • INFO
  • FINE(调试)

生产环境不建议开 FINE

2. 应用日志建议用 Logback / Log4j2

Tomcat 自身日志 ≠ 业务日志
业务日志应单独配置:

  • 按天滚动
  • 按 ERROR / WARN 分文件
  • 控制大小

四、自动监控 + 告警(推荐)

方案 1:简单脚本监控(适合小项目)

定时检查 ERROR:

grep -c "ERROR" catalina.out

示例告警脚本:

if grep -q "OutOfMemoryError" catalina.out; then
  echo "Tomcat OOM!" | mail -s "Tomcat Alert" admin@xx.com
fi

方案 2:Logrotate(防止日志爆盘)

/opt/tomcat/logs/catalina.out {
  daily
  rotate 7
  missingok
  notifempty
  copytruncate
}

五、生产级监控方案(推荐)

1. 日志集中化(最推荐)

  • ELK(Elasticsearch + Logstash + Kibana)
  • Grafana + Loki
  • Graylog

流程:

Tomcat → Filebeat → Kafka → Logstash → ES → Kibana

功能:

  • 实时搜索
  • 错误统计
  • 可视化面板
  • 告警(ERROR > N 次)

2. 应用性能 + 日志联动

  • Prometheus + Grafana
  • SkyWalking / Pinpoint
  • CAT(美团)

可监控:

  • JVM
  • 接口耗时
  • 异常数量
  • 线程阻塞

六、常见需要重点监控的日志关键字

OutOfMemoryError
StackOverflowError
Exception
ERROR
Timeout
Connection refused
503 / 500
GC overhead limit exceeded

七、简单推荐组合

场景 推荐方案
本地 / 测试 tail -f
单台服务器 tail + logrotate
中小公司 Filebeat + ES
大型系统 ELK + Prometheus

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

  • 用的是 Linux / Windows
  • Tomcat 版本
  • 开发 / 测试 / 生产
  • 是否已有 ELK / Prometheus

我可以直接给你一套可落地的配置示例

0