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

问题描述 投票:0回答:1

我会试着理解我。在我的 k8s 集群中,我有一个容器,它写了很多日志文件,这个日志不是容器日志。例如在我的容器中我有以下日志文件:

System.log, Trace.log, Da.log and other

在 k8s 之前,我使用了以下配置:

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

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

kubernetes filebeat
1个回答
0
投票

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

<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>
© www.soinside.com 2019 - 2024. All rights reserved.