Настройка тега драйвера журнала Fluentd не работает - PullRequest
1 голос
/ 18 марта 2020

Я использую стек EFK для построения системы мониторинга. В соответствии с Docker Logging Driver , я могу добавить настраиваемый тег для обогащения метаданных журнала контейнера.

Вот мой docker -компонентный файл:

version: "3.3"

services:
  watcher:
    image: image_name
    deploy:
      replicas: 1
      placement:
        constraints: [node.role == manager]
    logging:
      driver: fluentd
      options:
        tag: "docker/{{.ImageName}}"
    networks:
      - elastic

Вот моя конфигурация Fluent-bit:

[SERVICE]
    Flush        5
    Daemon       Off
    Log_Level    debug
    Parsers_File /conf/parsers.conf

[INPUT]
    Name Forward
    Port 24224

[OUTPUT]
    Name  es
    Match *
    Host  elasticsearch
    Port  9200
    Index fluent_bit
    Type  json

Как видите, я уже добавьте tag: "docker/{{.ImageName}}" к docker -композитному файлу. И контейнер был перезапущен. Журнал, который я получил в Кибане, должен включать такой тег. Но вот журнал, который я получил:

@timestamp:Mar 18, 2020 @ 15:35:23.000 container_id:06dde90cb998c78962e321c8396c1f992119450a6868eecb7fa14c5b348670b1 container_name:/test_container source:stderr log:2020-03-18 14:35:23 - INFO - module: __main__ - action: Watcher is started - Watcher Start _id:RmcS7nABi-qh6YwdCII3 _type:json _index:fluent_bit _score: -

В метаданных все еще есть только container name и container id и больше ничего. Кто-нибудь может сказать мне, что может быть причиной этого?

1 Ответ

1 голос
/ 19 марта 2020

Я только что нашел, откуда возникла проблема.

Когда вы добавляете опцию tag в драйвер журнала, она не будет автоматически включена в вывод fluent-bit / fluentd. Include_tag_key также должен быть установлен на true в секции вывода.

[OUTPUT]
    Name  es
    Match *
    Host  elasticsearch
    Port  9200
    Index fluent_bit
    Type  json
    Include_Tag_Key true
...