debian

Debian Java应用如何监控与日志

小樊
44
2025-12-05 00:13:57
栏目: 编程语言

Debian Java应用的监控与日志实践

一 日志框架与本地配置

<!-- Logback + JSON -->
<dependency>
  <groupId>ch.qos.logback</groupId>
  <artifactId>logback-classic</artifactId>
</dependency>
<dependency>
  <groupId>net.logstash.logback</groupId>
  <artifactId>logstash-logback-encoder</artifactId>
  <version>7.4</version>
</dependency>
<!-- Logback 配置片段:JSON 控制台 -->
<configuration>
  <appender name="JSON_CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
    <encoder class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
      <providers>
        <timestamp><timeZone>UTC</timeZone></timestamp>
        <version/>
        <logLevel/>
        <threadName/>
        <loggerName/>
        <message/>
        <stackTrace/>
      </providers>
    </encoder>
  </appender>
  <root level="INFO"><appender-ref ref="JSON_CONSOLE"/></root>
</configuration>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  <fileNamePattern>logs/app-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
  <maxHistory>30</maxHistory>
  <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
    <maxFileSize>100MB</maxFileSize>
  </timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>

二 集中式日志采集与解析

filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /opt/app/logs/*.log

output.elasticsearch:
  hosts: ["http://es.example.com:9200"]

setup.kibana:
  host: "kibana.example.com:5601"
# Logstash 配置片段
input { beats { port => 5044 } }
filter {
  grok {
    match => { "message" => "%{TIMESTAMP_ISO8601:timestamp} %{LOGLEVEL:log_level} %{GREEDYDATA:msg}" }
  }
}
output {
  elasticsearch {
    hosts => ["http://es.example.com:9200"]
    index => "java-logs-%{+YYYY.MM.dd}"
  }
}

三 JVM与应用性能监控

java \
  -Dcom.sun.management.jmxremote \
  -Dcom.sun.management.jmxremote.port=9010 \
  -Dcom.sun.management.jmxremote.authenticate=false \
  -Dcom.sun.management.jmxremote.ssl=false \
  -jar yourapp.jar
-XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/var/log/app/gc.log

四 落地检查清单

0
看了该问题的人还看了