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-galaxy install artem-shestakov/ansible_fluentbit
Лицензия
Unknown
Загрузки
4686
Владелец