温馨提示×

怎么监控tomcat运行日志

小樊
44
2026-10-09 12:15:21
栏目: 智能运维

监控 Tomcat 运行日志,通常可以从实时查看、集中收集、告警预警、可视化分析几个层面来做。下面按“从简单到专业”的方式给你梳理。


一、最基础:直接看日志文件

Tomcat 日志默认在:

$TOMCAT_HOME/logs/

常见日志文件:

  • catalina.out:最常用,标准输出和错误
  • catalina.YYYY-MM-DD.log
  • localhost.YYYY-MM-DD.log
  • localhost_access_log.YYYY-MM-DD.txt(访问日志)

1. 实时查看日志

tail -f $TOMCAT_HOME/logs/catalina.out

2. 过滤关键字(如 ERROR)

tail -f catalina.out | grep ERROR

3. 按时间查看

less catalina.out
# 然后按 /ERROR 搜索

✅ 适合:开发、调试、单台服务器


二、系统级监控(进程 + 日志)

1. 用 systemd(Linux)

如果 Tomcat 用 systemd 管理:

journalctl -u tomcat -f

2. 监控 Tomcat 进程是否挂了

ps -ef | grep tomcat

可配合脚本 + crontab 做简单存活检测。


三、日志切割(防止日志爆炸)

使用 logrotate(推荐)

示例 /etc/logrotate.d/tomcat:

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

四、集中式日志监控(生产推荐)

方案 1:ELK(Elasticsearch + Logstash + Kibana)

流程:

Tomcat日志 → Filebeat → Logstash → ES → Kibana

✅ 优点:

  • 多台 Tomcat 统一查看
  • 支持搜索、统计、图表
  • 可按 ERROR / 异常 / 接口耗时分析

方案 2:轻量级(Loki + Promtail + Grafana)

更适合云原生:

Tomcat日志 → Promtail → Loki → Grafana

✅ 资源占用小,查询快


五、异常告警(很重要)

1. 关键字告警

例如:

  • Exception
  • OutOfMemoryError
  • 500
  • Connection refused

2. 告警方式

  • 邮件
  • 钉钉 / 企业微信
  • Prometheus + Alertmanager

示例(简单脚本):

if tail -n 100 catalina.out | grep -q "OutOfMemoryError"; then
    echo "Tomcat OOM" | mail -s "Alert" admin@xxx.com
fi

六、Tomcat 访问日志监控(API 层面)

修改 server.xml:

<Valve className="org.apache.catalina.valves.AccessLogValve"
       directory="logs"
       prefix="localhost_access_log"
       suffix=".txt"
       pattern="%h %l %u %t "%r" %s %b %D" />

可监控:

  • 接口响应时间(%D)
  • 状态码(500 / 404)
  • 流量统计

七、推荐组合(按场景)

场景 推荐方案
本地开发 tail -f
单台服务器 tail + logrotate
生产环境 Filebeat + ES/Kibana
云原生 Loki + Grafana
高可用 日志 + 进程 + 告警

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

  • ✅ 单台还是集群?
  • ✅ Linux 还是 Windows?
  • ✅ 只是看日志,还是要自动告警?

我可以直接给你可复制的配置方案。

0 踩