fluentbit

Роль Ansible для Fluent-bit

Простая роль для установки и настройки Fluent-bit

Переменные роли

Настройка

Имя Описание По умолчанию
fluentbit_config_path Путь к файлу конфигурации и парсеров /etc/fluent-bit
fluentbit_flush Установите время сброса в секундах и наносекундах. Цикл работы движка использует тайм-аут Flush, чтобы определить, когда необходимо сбросить записи, полученные от входных плагинов через указанные выходные плагины. 5
fluentbit_grace Установите время ожидания в секундах как целое число. Цикл работы движка использует тайм-аут Grace, чтобы определить время ожидания при выходе 5
fluentbit_daemon Булевое значение для определения, должен ли Fluent Bit работать как демон (в фоновом режиме) или нет. Допустимые значения: yes, no, on и off off
fluentbit_dns_mode Установите основной протокол транспортного уровня, используемый асинхронным DNS-резолвером, который можно переопределить для каждого плагина UDP
fluentbit_log_file Абсолютный путь для необязательного файла журнала. По умолчанию все журналы перенаправляются в стандартный интерфейс ошибок (stderr).
fluentbit_log_level Установите уровень детализации логирования. info
fluentbit_http_server Включите встроенный HTTP сервер off
fluentbit_http_listen Установите интерфейс прослушивания для HTTP сервера, когда он включен 0.0.0.0
fluentbit_http_port Установите TCP порт для HTTP сервера 2020
fluentbit_coro_stack_size Установите размер стека корутин в байтах. Значение должно быть больше размера страницы работающей системы. Не устанавливайте слишком маленькое значение (например, 4096), иначе потоки корутин могут переполнить стек. Не меняйте значение по умолчанию этого параметра, если не знаете, что делаете 24576
fluentbit_scheduler_cap Установите максимальное время повторной попытки в секундах. Свойство поддерживается с версии v1.8.7. 2000
fluentbit_scheduler_base Установите базу для экспоненциального отката. Свойство поддерживается с версии v1.8.7. 5
fluentbit_inputs Раздел входа определяет источник (связанный с плагином ввода) Имя: forward
Слушать: 0.0.0.0
Порт: 24224
fluentbit_outputs Раздел выходов указывает на назначения, которым должны следовать определённые записи после совпадения с тегом Имя: stdout
Совпадение: '*'

Конвейер

  • fluentbit_inputs - список входов (источников). Каждый элемент входа представляет собой коллекцию словарей ключ/значение. Значение по умолчанию:
fluentbit_inputs:
  - Name: forward
    Listen: 0.0.0.0
    Port: 24224
  • fluentbit_outputs - список выходов (пунктов назначения). Каждый элемент выхода представляет собой коллекцию словарей ключ/значение. Значение по умолчанию:
fluentbit_outputs:
  - Name: stdout
    Match: '*'
  • fluentbit_filters - список фильтров. Каждый элемент является коллекцией словарей ключ/значение. Значение по умолчанию: []. Пример:
---
- name: Развернуть сервис fluent-bit
  hosts: "{{ lookup('env', 'TARGET') }}"
  become: true
  roles:
    - role: artem_shestakov.fluentbit
      version: "v1.0.0"
  vars:
    fluentbit_inputs:
      - Name: forward
        Listen: 0.0.0.0
        Port: 24224
      - Name: syslog
        Tag: haproxy
        Path: /var/lib/haproxy/dev/log
        Unix_Perm: "0666"
    fluentbit_filters:
      - Name: record_modifier
        Match: "*"
        Record: hostname ${HOSTNAME}
      - Name: parser
        Match: "*"
        Key_Name: data
        Parser: syslog-rfc3164-local
    fluentbit_outputs:
      - Name: es
        Match: *
        Host: 192.168.2.3
        Port: 9200
        Index: my_index
        Type: my_type
    fluentbit_parsers:
      - Name: syslog-rfc3164-local
        Format: regex
        Regex: ^\<(?<pri>[0-9]+)\>(?<time>[^ ]* {1,2}[^ ]* [^ ]*) (?<ident>[a-zA-Z0-9_\/\.\-]*)(?:\[(?<pid>[0-9]+)\])?(?:[^\:]*\:)? *(?<message>.*)$
        Time_Key: time
        Time_Format: '%b %d %H:%M:%S'
        Time_Keep: On
  • fluentbit_parsers - список парсеров. Каждый элемент парсера является коллекцией словарей ключ/значение. Значение по умолчанию: []. Пример:
fluentbit_parsers:
  - Name: named-capture-test
    Format: regex
    Regex: /^(?<date>[a-zA-Z]+ \d+ \d+\:\d+\:\d+) (?<message>.*)/m
  - Name: docker
    Format: json
    Time_Key: time
    Time_Format: "%Y-%m-%dT%H:%M:%S %z"
  • fluentbit_multiline_parsers - список парсеров для многочленных записей. Каждый элемент парсера представляет собой коллекцию словарей ключ/значение. Каждый парсер должен содержать список rules. Каждое правило является словарем из трех элементов: state_name, regex_pattern и next_state. Значение по умолчанию: []. Пример:
fluentbit_multiline_parsers:
  - name: multiline-regex-test
    type: regex
    flush_timeout: 1000
    rules:
      - state_name: start_state
        regex_pattern: /([a-zA-Z]+ \d+ \d+\:\d+\:\d+)(.*)/
        next_state: cont
      - state_name: cont
        regex_pattern: /^\s+at.*/
        next_state: cont

Пример плейбука

пример здесь

Лицензия

BSD

Информация об авторе

Артем Шестаков artem.s.shestakov@yandex.ru

О проекте

Ansible role to install Fluent bit https://fluentbit.io/

Установить
ansible-galaxy install artem-shestakov/ansible_fluentbit
Лицензия
Unknown
Загрузки
4686
Владелец