kubernetes 如何使用filebeat在k8s集群中发送容器内的多个日志文件

vyswwuz2  于 2023-04-11  发布在  Kubernetes
关注(0)|答案(1)|浏览(222)

我会尝试理解我。在我的k8s集群中,我有写很多日志文件的容器,这些日志不是容器日志。例如,在我的容器中,我有以下日志文件:
System.log, Trace.log, Da.log and other
在k8s之前,我使用了以下配置:

- type: log
  enabled: true
  paths:
    - /opt/docker/container/volumes/logs/Da.log

我的问题是如何更新k8s的配置。我想我会使用filebeat的卷挂载,但我不知道它是如何工作的。

zzwlnbp8

zzwlnbp81#

我回答了我的问题。在我的应用程序中,我使用logback.xml进行日志记录,并编辑此文件以重定向到stdout和stderr.config如下:

<configuration>
  <appender name="STDERR" class="ch.qos.logback.core.ConsoleAppender">
    <target>System.err</target>
    <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
      <level>ERROR</level>
    </filter>
    <encoder>
        <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
    </encoder>
  </appender>
  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    <target>System.out</target>
    <filter class="ch.qos.logback.classic.filter.LevelFilter">
      <level>DEBUG</level>
      <onMatch>DENY</onMatch>
    </filter>
    <filter class="ch.qos.logback.classic.filter.LevelFilter">
      <level>INFO</level>
      <onMatch>DENY</onMatch>
    </filter>
    <filter class="ch.qos.logback.classic.filter.LevelFilter">
      <level>TRACE</level>
      <onMatch>DENY</onMatch>
    </filter>
    <filter class="ch.qos.logback.classic.filter.LevelFilter">
      <level>WARN</level>
      <onMatch>DENY</onMatch>
    </filter>
    <filter class="ch.qos.logback.classic.filter.LevelFilter">
      <level>ERROR</level>
      <onMatch>ACCEPT</onMatch>
    </filter>
    <encoder>
        <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
    </encoder>
  </appender>
  <root level="INFO">
    <appender-ref ref="STDOUT" />
    <appender-ref ref="STDERR" />
  </root>
</configuration>

相关问题