在 Ubuntu 上监控 Tomcat 日志,常见做法有 实时查看、过滤、自动告警、图形化监控 等。下面给你一套从“最常用”到“进阶”的完整方案。
默认情况下(以 apt 或官方 tar.gz 安装为例):
# apt 安装
/var/log/tomcat9/
# 官方 tar.gz
$TOMCAT_HOME/logs/
常见日志文件:
catalina.out ✅(最常用,标准输出)catalina.2026-01-21.loglocalhost.logmanager.loghost-manager.logtail -f /var/log/tomcat9/catalina.out
退出:Ctrl + C
tail -n 200 /var/log/tomcat9/catalina.out
less /var/log/tomcat9/catalina.out
常用操作:
Shift + F:实时跟踪(类似 tail -f)/error:搜索 errorq:退出tail -f catalina.out | grep -i error
tail -f catalina.out | grep -i exception
tail -f catalina.out | grep -E "ERROR|Exception|NullPointer"
tail -f catalina.out | grep --color=auto -i error
grep "2026-01-21" catalina.out
grep "2026-01-21 14:" catalina.out | grep ERROR
sudo nano /etc/logrotate.d/tomcat
示例配置:
/var/log/tomcat9/catalina.out {
daily
rotate 7
missingok
notifempty
compress
copytruncate
}
生效测试:
logrotate -d /etc/logrotate.d/tomcat
tmux
tail -f catalina.out
断开 SSH 也不会中断。
journalctl -u tomcat9 -f
查看错误:
journalctl -u tomcat9 -p err -f
适合:
适合监控:
tail -n 100 catalina.out
重点看:
BindException(端口占用)ClassNotFoundExceptionOutOfMemoryError✅ 日常排查
tail -f catalina.out | grep -i error
✅ 生产环境
logrotate 切割tmux 持续监控journalctl 辅助如果你愿意,我可以:
你现在用的是 apt 安装还是 tar.gz?单机还是多台?