在 CentOS 上监控 Java 日志,常见做法可分为 系统级日志查看、应用日志实时监控、集中化日志管理、以及告警监控 几类。下面给你一套实用方案,从简单到专业。
tail -f 实时查看日志tail -f /path/to/app.log
忽略某些日志:
tail -f app.log | grep -v "DEBUG"
tail -f app.log error.log
grep -i "exception" app.log | tail -n 100
| 类型 | 常见路径 |
|---|---|
| Spring Boot | logs/app.log 或 nohup.out |
| Tomcat | /var/log/tomcat/, catalina.out |
| 系统 Java | /var/log/messages |
| systemd 服务 | journalctl -u your-service |
查看 systemd Java 服务日志:
journalctl -u my-java-app -f
示例 /etc/logrotate.d/java-app:
/opt/app/logs/*.log {
daily
rotate 7
compress
missingok
notifempty
copytruncate
}
测试:
logrotate -d /etc/logrotate.d/java-app
swatch(轻量级)yum install swatch
配置监控 ERROR:
watchfor /ERROR|Exception/
exec echo "Java error detected" | mail -s "Java Alert" admin@xxx.com
jmx_exporter适合:内存、GC、线程数监控
架构:
Java → Filebeat → Logstash/Elasticsearch → Kibana
优点:
适合:生产环境
jps
jstat -gcutil <pid> 1000
jstack <pid> > thread.log
jmap -dump:live,format=b,file=heap.hprof <pid>
✅ 开发/测试
tail -fgrepjournalctl✅ 生产小项目
logrotateswatchjstat✅ 生产大型系统
如果你能告诉我:
我可以直接给你一套可复制的配置方案。