fluentd
Ansible роль Fluentd
Эта роль устанавливает и настраивает Fluentd.
Требования
- Эта роль протестирована только на Debian 12.x (Bookworm).
Переменные роли
Эта роль старается сохранять ту же конфигурацию по умолчанию, как если бы вы вручную установили Fluentd. Более подробную информацию об каждой опции можно найти в документации Fluentd.
Переменные, используемые для установки:
Переменные | Значение по умолчанию | Описание |
---|---|---|
fluentd_prerequisites | ['apt-transport-https', 'curl', 'gnupg'] | Список пакетов, которые нужно установить перед Fluentd. |
fluentd_major_version | 5 | Основная версия Fluentd, которую вы хотите установить. |
fluentd_apt_key_url | https://packages.treasuredata.com/GPG-KEY-td-agent | APT-ключ для пакета Fluentd. |
fluentd_apt_repos_url | "https://packages.treasuredata.com/{{ fluentd_major_version }}/{{ ansible_distribution | lower }}/{{ ansible_distribution_release |
fluentd_apt_repos_suites | "{{ ansible_distribution_release | lower }}" | Услуги репозиториев APT. |
fluentd_apt_repos_components | ['contrib'] | Компоненты репозитория APT. |
fluentd_pkg_name | fluent-package | Имя пакета APT для Fluentd. |
fluentd_pkg_version: | "" | Установить конкретную версию пакета. |
fluentd_pkg_version_hold | "{{ fluentd_pkg_version | default(False) | ternary(True, False) }}" | Зафиксировать версию пакета, чтобы предотвратить случайное обновление. По умолчанию True , если fluentd_pkg_version задан, в противном случае False . |
fluentd_svc_name | fluentd | Имя службы Fluentd, чтобы запустить/остановить демон. |
Переменные для удаления устаревших компонентов (например, если установлено до переименования td-agent -> fluentd)
Переменные | Значение по умолчанию | Описание |
---|---|---|
fluentd_apt_cleanup_legacy | false | Удалить старые ключи и старые источники APT, если истинно. |
fluentd_apt_key_legacy_id | BEE682289B2217F45AF4CC3F901F9177AB97ACBE | ID старого GPG-ключа, который нужно удалить из хранилища. |
fluentd_naming_cleanup_legacy | false | Удалить старые службы / конфигурации / apt с именем td-agent. |
fluentd_pkg_name_legacy | td-agent | Имя пакета, которое будет удалено устаревшим очистителем. |
fluentd_svc_name_legacy | td-agent | Имя службы, которое будет удалено устаревшим очистителем. |
fluentd_conf_directory_legacy | /etc/td-agent/ | Директория конфигурации, которая будет удалена устаревшим очистителем. |
Переменные, используемые для общей конфигурации:
Переменные | Значение по умолчанию | Описание |
---|---|---|
fluentd_plugins | [] | Список плагинов для установки. |
fluentd_gem_exec_path | /usr/sbin/fluent-gem | Путь к бинарному файлу gem для установки плагинов fluentd. |
fluentd_system | {} | Конфигурация системы fluentd. |
fluentd_conf_directory | "/etc/fluent" | Директория конфигурации для Fluentd. |
fluentd_conf_file_path | "{{ fluentd_conf_directory }}/fluentd.conf" | Путь к файлу конфигурации Fluentd. |
fluentd_include_directory | Не определено | Может использоваться для включения других конфигурационных файлов. Оно добавит @include {{ fluentd_include_directory }}*.conf в конфигурацию. |
Для fluentd_system
каждый ключ используется как имя опции конфигурации, а значения — как значения.
Вы можете увидеть все доступные опции в документации Fluentd
fluentd_plugins
- это список плагинов, которые будут установлены с помощью fluentd_gem_exec_path
.
Вы можете указать необходимую версию для каждого плагина:
fluentd_plugins:
- name: fluent-plugin-prometheus
version: 2.0.0
Переменные для обработки логов:
Переменные | Значение по умолчанию | Описание |
---|---|---|
_fluentd_sources: | "{{ lookup('template', './lookup/get_sources.j2') }}" | Список словарей, определяющих все конфигурации источников. |
_fluentd_filters: | "{{ lookup('template', './lookup/get_filters.j2') }}" | Список словарей, определяющих все конфигурации фильтров. |
_fluentd_labels: | "{{ lookup('template', './lookup/get_labels.j2') }}" | Список словарей, определяющих все конфигурации меток. |
_fluentd_matches: | "{{ lookup('template', './lookup/get_matches.j2') }}" | Список словарей, определяющих все конфигурации совпадений. |
В большинстве случаев вы не должны изменять эти переменные. Шаблоны используются для формирования этих списков с помощью других переменных.
_fluentd_sources
будет агрегировать все переменные, имена которых соответствуют этому регулярному выражению:^fluentd_.+_source(s)?$
._fluentd_filters
будет агрегировать все переменные, имена которых соответствуют этому регулярному выражению:^fluentd_.+_filter(s)?$
._fluentd_labels
будет агрегировать все переменные, имена которых соответствуют этому регулярному выражению:^fluentd_.+_label(s)$
._fluentd_matches
будет агрегировать все переменные, имена которых соответствуют этому регулярному выражению:^fluentd_.+_match(es)?$
.
Каждая переменная, соответствующая этим регулярным выражениям, должна быть:
- словарем, определяющим один источник/фильтр/метку/совпадение или
- списком словарей, определяющим один или несколько источников/фильтров/меток/совпадений.
Каждый словарь используется для определения одного <source>
, <filter>
, <label>
или <match>
раздела в файле конфигурации Fluentd. Каждый раздел конфигурации настраивается
с помощью пар ключ/значение, поэтому ключи словаря используются как ключи конфигурации, а значения — как значения.
Некоторые ключи имеют специальные поведения:
type
будет заменен на@type
.id
будет заменен на@id
.label
будет заменен на@label
.log_level
будет заменен на@log_level
._section_args
— специальный ключ, используемый для определения таких вещей, как теги, которые будут соответствовать конфигурации.- Для конфигурации меток (переменные, соответствующие
^fluentd_.+_label(s)$
), ключname
используется для определения имени метки, как<label @my_name>
. - Словари не могут иметь дублирующихся ключей, поэтому каждый ключ, который нужно повторить, может быть предварен предшествующим номером, который соответствует этому регулярному выражению
^[0-9]+__
. Префикс будет удален, когда конфигурация будет сгенерирована.
Например:
fluentd_default_forward_source:
type: forward
id: forward
bind: 0.0.0.0
port: 24224
fluentd_systemd_filters:
- _section_args: "systemd.**"
type: systemd_entry
id: parse_systemd
field_map: '{"_HOSTNAME": "host"}'
field_map_strict: "false"
fields_lowercase: "true"
fields_strip_underscores: "true"
- _section_args: "systemd.unknown"
type: record_modifier
id: parse_unknown
record:
comm: unknown
fluentd_archive_label:
name: archive
filter:
_section_args: "**"
type: record_modifier
whitelist_keys: host, message
0__match:
_section_args: "syslog.*.4 syslog.*.10"
type: file
id: archives_syslog_auth
path: /logs/archives/${host}/auth-%Y%m%d
1__match:
_section_args: "**"
type: "null"
id: archives_drop
будет создано:
<source>
@type forward
@id forward
bind 0.0.0.0
port 24224
</source>
<filter systemd.**>
@type systemd_entry
@id parse_systemd
field_map {"_HOSTNAME": "host"}
field_map_strict false
fields_lowercase true
fields_strip_underscores true
</filter>
<filter systemd.unknown>
@type record_modifier
@id parse_unknown
<record>
comm unknown
</record>
</filter>
<label @archive>
<filter **>
@type record_modifier
whitelist_keys host, message
</filter>
<match syslog.*.4 syslog.*.10>
@type file
@id archives_syslog_auth
path /logs/archives/${host}/auth-%Y%m%d
</match>
<match **>
@type null
@id archives_drop
</match>
</label>
Это позволяет вам определять переменные в нескольких group_vars и накапливать их для хостов в нескольких группах без необходимости переписывать полный список.
Зависимости
Нет
Лицензия
BSD
Информация об авторе
ansible-galaxy install bimdata/ansible_role_fluentd