温馨提示×

怎么监控tomcat日志变化

小樊
46
2026-08-20 15:39:37
栏目: 智能运维

监控 Tomcat 日志变化 常见方式有多种,取决于你是实时查看自动告警还是集中收集分析。下面按使用场景给你一个完整总结。


一、实时查看 Tomcat 日志(最常用)

1️⃣ 使用 tail -f(最推荐)

Tomcat 默认日志目录:

$TOMCAT_HOME/logs/

常用日志文件:

  • catalina.out(最重要)
  • localhost.log
  • host-manager.log
  • manager.log

实时监控:

tail -f $TOMCAT_HOME/logs/catalina.out

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

tail -n 200 -f catalina.out

✅ 适合:开发、运维排查问题


2️⃣ 使用 less(可搜索)

less catalina.out

进入后:

  • Shift + F:实时跟踪(类似 tail -f)
  • /error:搜索 error
  • q:退出

二、过滤关键日志变化(错误 / 异常)

1️⃣ 实时监控 ERROR / Exception

tail -f catalina.out | grep -i "exception\|error\|nullpointer"

2️⃣ 高亮显示异常

tail -f catalina.out | grep --color=auto -i "error\|exception"

三、按时间范围查看日志变化

1️⃣ 查看今天新增日志

grep "$(date +%Y-%m-%d)" catalina.out

2️⃣ 查看最近 5 分钟日志(日志有时间戳)

sed -n "/$(date -d '5 min ago' '+%Y-%m-%d %H:%M')/,\$p" catalina.out

四、自动监控日志变化(脚本方式)

1️⃣ 使用 inotifywait(文件级监控)

适合:日志文件内容变化触发动作

yum install -y inotify-tools
inotifywait -m -e modify $TOMCAT_HOME/logs/catalina.out | while read path event file
do
  echo "日志发生变化"
done

✅ Linux 专用
✅ 可用于触发告警或处理


2️⃣ 定时检查日志(cron)

*/5 * * * * grep ERROR /opt/tomcat/logs/catalina.out | mail -s "Tomcat ERROR" admin@xx.com

五、日志切割 & 防止 catalina.out 过大

1️⃣ 使用 logrotate

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

✅ 防止日志无限增长
✅ 企业常用


六、集中化监控(生产环境推荐)

1️⃣ ELK(Elasticsearch + Logstash + Kibana)

  • 收集 Tomcat 日志
  • 实时搜索
  • 异常告警

2️⃣ Grafana + Loki

  • 更轻量
  • 适合容器 / 云环境

3️⃣ Prometheus + Alertmanager

  • 监控 JVM / Tomcat 指标
  • 不直接监控日志,但可告警

七、Windows 下监控 Tomcat 日志

Get-Content catalina.out -Wait

八、推荐组合(实战)

场景 推荐方式
本地调试 tail -f catalina.out
生产排查 tail -f + grep
自动告警 inotify + 脚本
大规模 ELK / Loki
日志管理 logrotate

如果你能告诉我:

  • ✅ Linux 还是 Windows?
  • ✅ 是否要自动告警
  • ✅ 是 catalina.out 还是业务日志?

我可以给你一个可直接用的监控方案或脚本

0