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>
Кто-нибудь сталкивался с подобной проблемой?