fluentbit
Ansible роль Fluentbit
Эта роль устанавливает и настраивает Fluentbit.
Требования
- Эта роль протестирована только с Ansible >= 2.9.
Переменные роли
Эта роль старается сохранить ту же конфигурацию по умолчанию, как если бы вы вручную устанавливали Fluentbit. Вы можете найти дополнительную информацию о каждой опции в документации Fluentbit.
Переменные, используемые для установки:
Переменные | Значение по умолчанию | Описание |
---|---|---|
fluentbit_prerequisites | ['apt-transport-https', 'curl', 'gnupg'] | Список пакетов, которые нужно установить перед Fluentbit. |
fluentbit_apt_key_path | "/usr/share/keyrings/fluentbit-keyring.gpg" | Путь к APT ключу для хранения ключа Fluentbit. |
fluentbit_apt_key_url | https://packages.fluentbit.io/fluentbit.key | Ключ APT для пакета Fluentbit. |
fluentbit_apt_repos_url | "https://packages.fluentbit.io/{{ ansible_distribution | lower }}/{{ ansible_distribution_release | lower }}" | Адрес APT репозитория для установки Fluentbit. |
fluentbit_apt_repos_component | main | Компонент APT репозитория. |
fluentbit_pkg_name | fluent-bit | Имя пакета Fluentbit для APT. |
fluentbit_pkg_version | "" | Установить конкретную версию пакета. |
fluentbit_pkg_version_hold | "{{ fluentbit_pkg_version | default(False) | ternary(True, False) }}" | Заблокировать версию пакета, чтобы предотвратить случайные обновления. По умолчанию True , если определено fluentbit_pkg_version , иначе False . |
fluentbit_svc_name | fluent-bit | Имя сервиса Fluentbit для запуска/остановки демона. |
fluentbit_apt_cleanup_legacy | false | Удалить старые ключи и источники APT, если true. |
fluentbit_apt_key_legacy_id | F209D8762A60CD49E680633B4FF8368B6EA0722A | ID старого GPG ключа для удаления из ключницы. |
fluentbit_naming_cleanup_legacy | false | Удалить старые сервисы / конфигурации / apt с именем td-agent. |
fluentbit_pkg_name_legacy | td-agent-bit | Имя пакета, который будет удален старым очистителем. |
fluentbit_svc_name_legacy | td-agent-bit | Имя сервиса, которое будет удалено старым очистителем. |
fluentbit_conf_directory_legacy | /etc/td-agent-bit/ | Директория конфигурации, которая будет удалена старым очистителем. |
Переменные, используемые для общей конфигурации:
Переменные | Значение по умолчанию | Описание |
---|---|---|
fluentbit_svc_flush | 5 | Время сброса в формате seconds.nanoseconds. |
fluentbit_svc_grace | 5 | Установить время ожидания в секундах. |
fluentbit_svc_daemon | "off" | Включить/выключить значение, чтобы указать, работает ли Fluentbit как демон. Должно быть выключено, когда используется предоставленный юнит Systemd. |
fluentbit_svc_logfile | "" | Абсолютный путь к необязательному лог-файлу. Лог будет записываться в stdout, если не указано. |
fluentbit_svc_loglevel | info | Установить уровень подробности логирования. |
fluentbit_svc_parsers_file | ["parsers.conf"] | Список путей к конфигурационным файлам parsers. |
fluentbit_svc_plugins_file | ["plugins.conf"] | Список путей к конфигурационным файлам plugins. |
fluentbit_svc_streams_file | [] | Список путей к файлам конфигурации stream processors. |
fluentbit_managed_parsers_enable | "{{ ((_fluentbit_parsers | length) or (_fluentbit_mlparsers | length)) | bool }}" | Определить, должен ли Ansible создавать/обновлять пользовательский файл для определенного парсера. |
fluentbit_managed_parsers_file | "{{ fluentbit_conf_directory }}/managed-parsers.conf" | Файл, в котором определены пользовательские парсеры, если это необходимо. |
fluentbit_svc_http | {} | Словарь для конфигурации встроенного HTTP сервера. |
fluentbit_svc_storage | {} | Словарь для конфигурации хранения/буфера. |
fluentbit_svc_limit_open_files | Неопределено | Настроить LimitNOFILE для сервиса systemd, если определено |
Для fluentbit_svc_http
каждый ключ используется как имя опции конфигурации, а значения - как значения. Но вам не нужно добавлять префикс HTTP_
, он будет добавлен шаблоном. Например, вы можете определить это так:
fluentbit_svc_http:
server: On
listen: 0.0.0.0
port: "{{ fluentbit_monitoring_port }}"
То же самое и для fluentbit_svc_storage
: вам не нужно указывать префикс storage.
. Пример:
fluentbit_svc_storage:
path: /var/log/flb-storage/
sync: full
checksum: "off"
Другие переменные:
Переменные | Значение по умолчанию | Описание |
---|---|---|
fluentbit_dbs_path | "" | Путь к директории, которая будет создана ролью. Например, для хранения ваших файлов БД ввода. |
Переменные для обработки логов:
Переменные | Значение по умолчанию | Описание |
---|---|---|
_fluentbit_inputs | "{{ lookup('template', 'get_vars.j2'), template_vars=dict(var_type='input') }}" | Список словарей, определяющих все входы логов. |
_fluentbit_filters | "{{ lookup('template', 'get_vars.j2'), template_vars=dict(var_type='filter') }}" | Список словарей, определяющих все фильтры логов. |
_fluentbit_outputs | "{{ lookup('template', 'get_vars.j2'), template_vars=dict(var_type='output') }}" | Список словарей, определяющих все выходы логов. |
_fluentbit_parsers | "{{ lookup('template', 'get_vars.j2'), template_vars=dict(var_type='parser') }}" | Список словарей, определяющих все управляемые парсеры логов. |
_fluentbit_mlparsers | "{{ lookup('template', 'get_vars.j2'), template_vars=dict(var_type='mlparser') }}" | Список словарей, определяющих все управляемые парсеры многострочных логов. |
В большинстве случаев вы не должны изменять эти переменные. Шаблонизация используется для создания этих списков с другими переменными.
_fluentbit_inputs
будет агрегировать все переменные, имена которых соответствуют этому регулярному выражению:^fluentbit_.+_input(s)?$'
._fluentbit_filters
будет агрегировать все переменные, имена которых соответствуют этому регулярному выражению:^fluentbit_.+_filter(s)?$'
._fluentbit_outputs
будет агрегировать все переменные, имена которых соответствуют этому регулярному выражению:^fluentbit_.+_output(s)?$'
._fluentbit_parsers
будет агрегировать все переменные, имена которых соответствуют этому регулярному выражению:^fluentbit_.+_parser(s)?$'
._fluentbit_outputs
будет агрегировать все переменные, имена которых соответствуют этому регулярному выражению:^fluentbit_.+_mlparser(s)?$'
.
Каждая переменная, соответствующая этим регулярным выражениям, должна быть:
- словарем, определяющим один вход/фильтр/выход/парсер или
- списком словарей, определяющим один или несколько входов/фильтров/выходов/парсеров.
Каждый словарь используется для определения одного секции [INPUT]
, [FILTER]
, [OUTPUT]
, [PARSER]
или [MULTILINE_PARSER]
в конфигурационном файле Fluentbit или в файле управляемого парсера. Каждая секция конфигурации настроена с помощью пар ключ/значение, поэтому ключи словаря используются как ключи конфигурации, а значения как значения.
Например:
fluentbit_nginx_input:
- name: tail
path: /var/log/nginx/access.log
- name: tail
path: /var/log/nginx/error.log
fluentbit_kernel_input:
name: tail
path: /var/log/kern.log
будет создавать:
[INPUT]
name tail
path /var/log/nginx/access.log
[INPUT]
name tail
path /var/log/nginx/error.log
[INPUT]
name tail
path /var/log/kern.log
Это позволяет вам определять переменные в нескольких group_vars и суммировать их для хостов в различных группах без необходимости переписывать полный список.
Словари Ansible не могут иметь одинаковые ключи несколько раз. Это может быть проблемой при использовании таких вещей, как record
. Чтобы избежать этой проблемы, каждый ключ может быть префиксирован номером, который будет удален в шаблонном файле. Он должен соответствовать этому регулярному выражению: '^[0-9]+__'
.
Например:
fluentbit_add_context_filter:
- name: record_modifier
match: '*'
0__record: hostname ${HOSTNAME}
1__record: product Awesome_Tool
будет создавать:
[FILTER]
name record_modifier
match *
record hostname ${HOSTNAME}
record product Awesome_Tool
Зависимости
Отсутствуют
Пример плейбука
в group_vars/all.yml
:
fluentbit_kernel_input:
name: tail
path: /var/log/kern.log
fluentbit_env_filter:
name: record_modifier
match: '*'
record: "env {{ env }}"
fluentbit_central_output:
name: forward
match: '*'
host: "{{ logs_server_address }}"
port: "{{ log_forward_port }}"
в group_vars/web.yml
:
fluentbit_nginx_input:
- name: tail
path: /var/log/nginx/access.log
- name: tail
path: /var/log/nginx/error.log
в playbook.yml
:
- hosts: web
gather_facts: True
become: yes
roles:
- bimdata.fluentbit
Лицензия
BSD
Информация об авторе
ansible-galaxy install bimdata/ansible_role_fluentbit