bimdata.fluentd
Rola Ansible Fluentd
Ta rola instaluje i konfiguruje Fluentd.
Wymagania
- Ta rola została przetestowana tylko na Debianie 12.x (Bookworm).
Zmienne roli
Ta rola stara się zachować domyślną konfigurację, jak przy ręcznej instalacji Fluentd. Więcej informacji o każdej opcji znajdziesz w dokumentacji Fluentd.
Zmienne używane do instalacji:
Zmienne | Wartość domyślna | Opis |
---|---|---|
fluentd_prerequisites | ['apt-transport-https', 'curl', 'gnupg'] | Lista pakietów, które należy zainstalować przed Fluentd. |
fluentd_major_version | 5 | Główna wersja Fluentd, którą chcesz zainstalować. |
fluentd_apt_key_url | https://packages.treasuredata.com/GPG-KEY-td-agent | Klucz APT dla pakietu 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 }}" |
fluentd_apt_repos_components | ['contrib'] | Komponenty repozytoriów APT. |
fluentd_pkg_name | fluent-package | Nazwa pakietu APT Fluentd. |
fluentd_pkg_version | "" | Instalacja konkretnej wersji pakietu. |
fluentd_pkg_version_hold | "{{ fluentd_pkg_version | default(False) |
fluentd_svc_name | fluentd | Nazwa usługi Fluentd do uruchamiania/zatrzymywania demona. |
Zmienne używane do usuwania starych elementów (na przykład, jeśli zainstalowano przed zmianą nazwy td-agent -> fluentd):
Zmienne | Wartość domyślna | Opis |
---|---|---|
fluentd_apt_cleanup_legacy | false | Usuń stare klucze i stare źródła APT, jeśli prawda. |
fluentd_apt_key_legacy_id | BEE682289B2217F45AF4CC3F901F9177AB97ACBE | ID starego klucza GPG do usunięcia z kluczy. |
fluentd_naming_cleanup_legacy | false | Usuń stare usługi / konfiguracje / APT z nazwą td-agent. |
fluentd_pkg_name_legacy | td-agent | Nazwa pakietu, który będzie usunięty przez narzędzie do czyszczenia starych elementów. |
fluentd_svc_name_legacy | td-agent | Nazwa usługi, która będzie usunięta przez narzędzie do czyszczenia starych elementów. |
fluentd_conf_directory_legacy | /etc/td-agent/ | Katalog konfiguracyjny, który będzie usunięty przez narzędzie do czyszczenia starych elementów. |
Zmienne używane do ogólnej konfiguracji:
Zmienne | Wartość domyślna | Opis |
---|---|---|
fluentd_plugins | [] | Lista wtyczek do zainstalowania. |
fluentd_gem_exec_path | /usr/sbin/fluent-gem | Ścieżka do binarnego pliku gem do instalacji wtyczek fluentd. |
fluentd_system | {} | Konfiguracja systemu fluentd. |
fluentd_conf_directory | "/etc/fluent" | Katalog konfiguracji Fluentd. |
fluentd_conf_file_path | "{{ fluentd_conf_directory }}/fluentd.conf" | Ścieżka do pliku konfiguracyjnego Fluentd. |
fluentd_include_directory | Niezdefiniowane | Może być użyte do dołączenia innych plików konfiguracyjnych. Dodaje @include {{ fluentd_include_directory }}*.conf w konfiguracji. |
Dla fluentd_system
, każdy klucz jest używany jako nazwa opcji konfiguracyjnej, a wartości jako wartości.
Możesz zobaczyć wszystkie dostępne opcje w dokumentacji Fluentd.
fluentd_plugins
to lista wtyczek, które zostaną zainstalowane przez fluentd_gem_exec_path
.
Możesz określić żądana wersję każdej wtyczki:
fluentd_plugins:
- name: fluent-plugin-prometheus
version: 2.0.0
Zmienne do przetwarzania logów:
Zmienne | Wartość domyślna | Opis |
---|---|---|
_fluentd_sources: | "{{ lookup('template', './lookup/get_sources.j2') }}" | Lista słowników definiujących wszystkie konfiguracje źródeł. |
_fluentd_filters: | "{{ lookup('template', './lookup/get_filters.j2') }}" | Lista słowników definiujących wszystkie konfiguracje filtrów. |
_fluentd_labels: | "{{ lookup('template', './lookup/get_labels.j2') }}" | Lista słowników definiujących wszystkie konfiguracje etykiet. |
_fluentd_matches: | "{{ lookup('template', './lookup/get_matches.j2') }}" | Lista słowników definiujących wszystkie konfiguracje dopasowań. |
W większości przypadków nie powinieneś modyfikować tych zmiennych. Szablonowanie jest używane do budowy tych list z innymi zmiennymi.
_fluentd_sources
zbierze wszystkie zmienne, których nazwa pasuje do tego wyrażenia regularnego:^fluentd_.+_source(s)?$
._fluentd_filters
zbierze wszystkie zmienne, których nazwa pasuje do tego wyrażenia regularnego:^fluentd_.+_filter(s)?$
._fluentd_labels
zbierze wszystkie zmienne, których nazwa pasuje do tego wyrażenia regularnego:^fluentd_.+_label(s)$
._fluentd_matches
zbierze wszystkie zmienne, których nazwa pasuje do tego wyrażenia regularnego:^fluentd_.+_match(es)?$
.
Każda zmienna pasująca do tych wyrażeń regularnych musi być:
- słownikiem definiującym jedno źródło/filtr/etykietę/dopasowanie lub
- listą słowników definiujących jedno lub więcej źródeł/filtrów/etykiet/dopasowań.
Każdy słownik jest używany do zdefiniowania sekcji <source>
, <filter>
, <label>
lub <match>
w pliku konfiguracyjnym fluentd. Każda sekcja konfiguracyjna jest konfigurowana z parami klucz/wartość, więc klucze słownika są używane jako klucze konfiguracyjne, a wartości jako wartości.
Niektóre klucze mają specjalne zachowanie:
type
zostanie zastąpione przez@type
.id
zostanie zastąpione przez@id
.label
zostanie zastąpione przez@label
.log_level
zostanie zastąpione przez@log_level
._section_args
to specjalny klucz używany do definiowania rzeczy, takich jak tagi, które będą dopasowane w konfiguracji.- Dla konfiguracji etykiet (zmienne pasujące do
^fluentd_.+_label(s)$
), kluczname
jest używany do zdefiniowania nazwa etykiety, w ten sposób<label @my_name>
. - Słowniki nie mogą mieć zduplikowanych kluczy, więc każdy klucz, który potrzebuje powtórzenia, może być poprzedzony prefiksem
pasującym do tego wyrażenia regularnego
^[0-9]+__
. Prefiks zostanie usunięty, gdy konfiguracja będzie generowana.
Na przykład:
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
stworzy:
<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>
Umożliwia to definiowanie zmiennych w wielu grupach zmiennych grupowych i ich kumulowanie dla hostów w wielu grupach, bez potrzeby przepisywania całej listy.
Zależności
Brak
Licencja
BSD
Informacje o autorze
ansible-galaxy install bimdata.fluentd