监控 Tomcat 运行日志,通常可以从实时查看、集中收集、告警预警、可视化分析几个层面来做。下面按“从简单到专业”的方式给你梳理。
Tomcat 日志默认在:
$TOMCAT_HOME/logs/
常见日志文件:
catalina.out:最常用,标准输出和错误catalina.YYYY-MM-DD.loglocalhost.YYYY-MM-DD.loglocalhost_access_log.YYYY-MM-DD.txt(访问日志)tail -f $TOMCAT_HOME/logs/catalina.out
tail -f catalina.out | grep ERROR
less catalina.out
# 然后按 /ERROR 搜索
✅ 适合:开发、调试、单台服务器
如果 Tomcat 用 systemd 管理:
journalctl -u tomcat -f
ps -ef | grep tomcat
可配合脚本 + crontab 做简单存活检测。
示例 /etc/logrotate.d/tomcat:
/opt/tomcat/logs/catalina.out {
daily
rotate 7
compress
missingok
notifempty
copytruncate
}
流程:
Tomcat日志 → Filebeat → Logstash → ES → Kibana
✅ 优点:
更适合云原生:
Tomcat日志 → Promtail → Loki → Grafana
✅ 资源占用小,查询快
例如:
ExceptionOutOfMemoryError500Connection refused示例(简单脚本):
if tail -n 100 catalina.out | grep -q "OutOfMemoryError"; then
echo "Tomcat OOM" | mail -s "Alert" admin@xxx.com
fi
修改 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)| 场景 | 推荐方案 |
|---|---|
| 本地开发 | tail -f |
| 单台服务器 | tail + logrotate |
| 生产环境 | Filebeat + ES/Kibana |
| 云原生 | Loki + Grafana |
| 高可用 | 日志 + 进程 + 告警 |
如果你愿意,可以告诉我:
我可以直接给你可复制的配置方案。