Fluentd перестает регистрировать, когда в Kubernetes добавляется узел - PullRequest
0 голосов
/ 28 июня 2019

Fluentd DaemonSet пересылает мои журналы контейнеров, используя метод in_tail, в кластерasticsearch в AWS.

Когда я перечисляю свои стручки:

-bash-4.2$ kubectl get pods |grep fluentd
fluentd-d8vbp                       1/1       Running   0          2h
fluentd-h6mk6                       1/1       Running   0          2h
fluentd-nrp8l                       1/1       Running   0          2h

POS-файл выглядит так, в каждом из следующих модулей:

-bash-4.2$ kubectl exec -it fluentd-d8vbp -- ls -al /var/log/fluentd-containers.log.pos
-rw-r--r-- 1 root root **2516** Jun 28 05:27 /var/log/fluentd-containers.log.pos
-bash-4.2$ kubectl exec -it fluentd-h6mk6 -- ls -al /var/log/fluentd-containers.log.pos
-rw-r--r-- 1 root root **0** Jun 28 02:44 /var/log/fluentd-containers.log.pos
-bash-4.2$ kubectl exec -it fluentd-nrp8l -- ls -al /var/log/fluentd-containers.log.pos
-rw-r--r-- 1 root root **0** Jun 28 02:44 /var/log/fluentd-containers.log.pos

Вы видите, что только один файл содержит данные (2516), а два других - пустые (0). Это ожидаемое поведение?

Другая проблема заключается в том, что всякий раз, когда мы добавляем узел, скажем, в 10:00, fluentd прекращает пересылку журналов, пока мы не воссоздадим модули. Серьезная проблема заключается в том, что мы пропустим логи до тех пор. Скажем, мы воссоздаем капсулы в 10:15, мы пропустим бревна с 10:00 - 10:15.

Мой файл yaml:

<source>
      @type tail
      @id xxx_logs
      path /var/log/containers/xxx*.log
      pos_file /var/log/fluentd-containers.log.pos
      tag kubernetes.*
      read_from_head true
      <parse>
        @type multi_format
        <pattern>
          format regexp
          expression /myregexp1/
        </pattern>
        <pattern>
          format regexp
          expression /myregexp2/
        </pattern>
      </parse>
    </source>

Кто-нибудь сталкивался с подобной проблемой?

...