Не работает передача логов из Fluentd на монтированный диск

У меня есть Fluentd, который поднят в кластере K8s и собирает логи с остальных pod k8s.

apiVersion: v1
kind: ConfigMap
metadata:
  labels:
    stack: app
  name: config-fluent
  namespace: kube-system
data:
  kubernetes.conf: |-
   disable_chain_optimization true 
    <source>
      @type tail
      path /var/log/containers/*.log
      pos_file /var/log/fluentd-containers.log.pos
      refresh_interval 60
      skip_refresh_on_startup true
      read_from_head true
      tag kubernetes.*
      <parse>
        @type multi_format
        <pattern>
          format json
          time_key time
          time_type string
          time_format "%Y-%m-%dT%H:%M:%S.%NZ"
          keep_time_key false
        </pattern>
        <pattern>
          format regexp
          expression /^(?<time>.+) (?<stream>stdout|stderr)( (?<logtag>.))? (?<log>.*)$/
          time_format '%Y-%m-%dT%H:%M:%S.%N%:z'
          keep_time_key false
        </pattern>
      </parse>
      @label @INPUT
    </source>

    <label @INPUT>       
      <filter kubernetes.**>         
        @type kubernetes_metadata       
      </filter>       
      <match fluent.**>
        @type null
      </match>
      <match kubernetes.var.log.containers.**kube-logging**.log>
        @type null
      </match>
      ...       
      <match kubernetes.**>        
        @type copy         
        <store>           
          @type relabel          
          @label @MainLABEL         
       </store>
       </store>
          ...         
       </store>       
     </match>     
   </label>
...

Если зайти в директорию /var/log/containers/ в контейнере fluentd, там все логи есть (файлы .log), они пополняются и ротируются.

Далее я хочу их передавать на сервер с логами, я примонтировал директорию /logserver и она так же открывается из pod fluentd.

Затем я начинаю матчить собранные логи в файл и писать их в эту директорию следующим образом (в этом же configmap.yaml ниже):

...
    <label @MainLABEL>
      <filter>
        @type record_transformer
        <record>
          tag ${tag}
        </record>
      </filter>
      <match **>
        @type file
        append true
        path /logserver/${tag[0]}/${tag[1]}.log.%Y-%m-%d
        <buffer tag,time>
          timekey       1d
          timekey_wait  5m
          path /var/log/fluentd-buffers/mainlabel
          flush_mode immediate
          flush_thread_count 16
          chunk_limit_size 512m
        </buffer>
        <format>
          @type single_value
          message_key message
        </format>
      </match>
    </label>

Но к сожалению файлов в перемонтированной директории /logserver нет, хотя права на создания файла корректные и из контейнера fluentd можно спокойно создать файл в /logserver. Подскажите, в чём проблема? Что сделал не так?


Ответы (0 шт):