温馨提示×

CentOS Java日志怎么监控

小樊
43
2026-07-20 16:33:19
栏目: 编程语言

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


一、确认 Java 日志在哪里

常见 Java 日志位置:

类型 路径示例
Spring Boot /var/log/app/app.log
Tomcat /opt/tomcat/logs/catalina.out
自定义日志 项目配置中指定
systemd journalctl -u your-service

✅ 先确认日志路径和日志框架(logback / log4j2 / jul)


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

1️⃣ tail 实时查看

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

只看 ERROR:

tail -f /var/log/app/app.log | grep ERROR

2️⃣ less 查看大日志

less /var/log/app/app.log

常用操作:

  • G 跳到末尾
  • ?ERROR 向上搜索
  • q 退出

三、使用 systemd 查看 Java 服务日志(推荐)

如果 Java 是 systemd 服务:

journalctl -u your-java-service -f

查看最近 100 行:

journalctl -u your-java-service -n 100

按时间:

journalctl --since "2025-01-01 00:00" --until "2025-01-02"

四、日志监控与告警(生产环境)

✅ 方案 1:Prometheus + Grafana(推荐)

架构

Java 应用 → logback/log4j2
            ↓
        File / Journal
            ↓
     Prometheus (node_exporter / loki)
            ↓
        Grafana

常用组件

  • Prometheus:指标采集
  • Grafana:可视化
  • Loki + Promtail:专门做日志监控(强烈推荐)

✅ 方案 2:ELK / EFK(企业级)

组件 作用
Elasticsearch 存储日志
Logstash / Filebeat 采集日志
Kibana 查询展示

适合大流量 Java 系统。


✅ 方案 3:轻量级 shell 监控

监控 ERROR 并邮件/告警

tail -F /var/log/app/app.log | grep --line-buffered ERROR | while read line
do
  echo "$line" | mail -s "Java ERROR 告警" admin@example.com
done

(生产建议用专业工具)


五、常用分析命令(排错必备)

查看某时间段日志

sed -n '/2025-01-01 10:00/,/2025-01-01 11:00/p' app.log

统计 ERROR 数量

grep ERROR app.log | wc -l

查看最频繁异常

grep Exception app.log | sort | uniq -c | sort -nr | head

六、日志配置建议(非常重要)

logback 示例

<configuration>
    <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>

    <root level="INFO">
        <appender-ref ref="FILE"/>
    </root>
</configuration>

✅ 避免日志打满磁盘
✅ 按天滚动
✅ 区分 ERROR / WARN / INFO


七、推荐组合(直接照着用)

小项目

  • tail -f
  • journalctl

中型项目

  • Loki + Promtail + Grafana

大型项目

  • ELK / EFK

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

  • Java 是 Spring Boot / Tomcat / 普通 jar
  • 日志是 logback / log4j2
  • 是否需要 告警(微信 / 钉钉 / 邮件)

我可以直接给你一套 可复制的监控方案

0