温馨提示×

Java日志CentOS如何监控

小樊
39
2026-08-04 05:59:52
栏目: 编程语言

CentOS 上监控 Java 应用的日志,常见做法可以分为 系统级日志监控Java 应用日志监控实时查看与告警。下面按实际运维场景给你一个完整方案。


一、Java 日志常见位置

先确认日志在哪:

类型 常见路径
Spring Boot /var/log/app/app.log
Tomcat /opt/tomcat/logs/catalina.out
自定义日志 /data/logs/xxx/xxx.log
系统日志 /var/log/messages
journald journalctl

二、实时查看 Java 日志(最常用)

1️⃣ tail -f(最基础)

tail -f /var/log/app/app.log

只看 ERROR:

tail -f app.log | grep ERROR

2️⃣ less(适合大文件)

less app.log

常用操作:

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

三、系统级日志监控

1️⃣ journalctl(systemd 服务)

如果 Java 是 systemd 启动的:

journalctl -u your-java-service.service -f

按时间:

journalctl --since "10 min ago"

2️⃣ dmesg(OOM / 崩溃)

dmesg | tail -n 50

常见:

  • Java OOM
  • 被 kill

四、Java 应用日志监控(重点)

✅ 1. 使用日志框架(必须)

推荐:

  • Logback
  • Log4j2

示例(Logback):

<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>/var/log/app/app.log</file>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <fileNamePattern>/var/log/app/app.%d{yyyy-MM-dd}.log</fileNamePattern>
        <maxHistory>7</maxHistory>
    </rollingPolicy>
</appender>

✅ 好处:

  • 自动分割
  • 防止磁盘爆满

✅ 2. grep 统计错误

grep -c ERROR app.log

按小时统计:

awk '/ERROR/ {print $1,$2}' app.log | sort | uniq -c

五、自动化监控(生产推荐)

✅ 1. 使用 logrotate(防止磁盘满)

/etc/logrotate.d/app

示例:

/var/log/app/*.log {
    daily
    rotate 7
    compress
    missingok
    notifempty
}

✅ 2. 使用 Prometheus + Grafana(专业)

架构:

Java App → Log Exporter → Prometheus → Grafana

常用:

  • Prometheus JMX Exporter(监控 JVM)
  • Node Exporter(系统日志)

✅ 3. ELK / EFK(大规模日志)

组件 作用
Elasticsearch 存储
Logstash / Fluentd 采集
Kibana 展示

适合:

  • 多服务
  • 分布式系统

六、Java 进程监控(辅助)

1️⃣ 查看 Java 进程

jps -l

2️⃣ 查看 GC / 内存

jstat -gc pid

3️⃣ 查看线程

jstack pid

七、常见监控场景速查

场景 命令
实时看日志 tail -f app.log
只看 ERROR `tail -f app.log
磁盘快满 du -sh /var/log/*
Java 崩溃 dmesg
服务日志 journalctl -u xxx -f
日志切割 logrotate

八、推荐组合(实战)

中小项目

tail / grep / logrotate

生产环境

Logback + logrotate + journalctl

大型系统

ELK / EFK + Prometheus + Grafana

如果你愿意,可以告诉我:

  • ✅ Java 是 Spring Boot / Tomcat / 普通 jar
  • ✅ 是否 systemd 启动
  • ✅ 日志量大小

我可以给你一套 完全贴合你环境的监控方案

0