在 CentOS 上监控 Java 日志(如 Spring Boot、Tomcat、Flink、Kafka 等),通常可以从 日志文件监控、系统级监控、Java 应用层监控 三个层面来做。下面按常见场景给你一套实用方案。
/var/log/
/opt/app/logs/
/home/app/logs/
/opt/tomcat/logs/
常见文件名:
application.logcatalina.outserver.loggc.logerror.logtail -f application.log
查看最后 500 行:
tail -n 500 application.log
tail -f application.log | grep ERROR
忽略大小写:
tail -f application.log | grep -i exception
less application.log
常用操作:
G 跳到末尾/ERROR 搜索q 退出-XX:+PrintGCDetails
-XX:+PrintGCDateStamps
-Xloggc:/opt/app/logs/gc.log
tail -f gc.log
重点监控:
grep -c "ERROR" application.log
grep -i "OutOfMemoryError" application.log
*/5 * * * * grep -q "OutOfMemoryError" /opt/app/logs/application.log && echo "OOM detected" | mail -s "Java OOM Alert" admin@xxx.com
如果 Java 是 systemd 启动:
journalctl -u your-java-service -f
查看最近 100 行:
journalctl -u your-java-service -n 100
ps -ef | grep java
lsof -p <pid> | grep log
流程:
Java Log → Filebeat → Logstash → ES → Kibana
优势:
轻量级日志方案(适合云原生):
Java Log → Promtail → Loki → Grafana
jstat -gc <pid>
jstat -gccapacity <pid>
jstack <pid> > thread.txt
jmap -heap <pid>
| 场景 | 推荐 |
|---|---|
| 少量服务 | tail + grep + cron |
| 生产环境 | ELK / Loki |
| JVM 问题 | GC 日志 + jstat |
| 告警 | ERROR / OOM 关键字 |
为了给你更精准的方案,可以补充:
我可以直接帮你写:
✅ 日志监控脚本
✅ ELK 配置
✅ Java 启动参数
✅ 告警规则