bimdata.fluentbit
Rola Ansible Fluentbit
Ta rola instaluje i konfiguruje Fluentbit.
Wymagania
- Ta rola jest testowana tylko z Ansible >= 2.9.
Zmienne Roli
Ta rola stara się zachować domyślną konfigurację, jakbyś ręcznie zainstalował Fluentbit. Więcej informacji o każdej opcji znajdziesz w dokumentacji Fluentbit.
Zmienne używane do instalacji:
Zmienne | Wartość domyślna | Opis |
---|---|---|
fluentbit_prerequisites | ['apt-transport-https', 'curl', 'gnupg'] | Lista pakietów, które muszą być zainstalowane przed Fluentbit. |
fluentbit_apt_key_path | "/usr/share/keyrings/fluentbit-keyring.gpg" | Ścieżka do klucza APT używana do przechowywania klucza fluentbit. |
fluentbit_apt_key_url | https://packages.fluentbit.io/fluentbit.key | Klucz APT do pakietu Fluentbit. |
fluentbit_apt_repos_url | "https://packages.fluentbit.io/{{ ansible_distribution | lower }}/{{ ansible_distribution_release | lower }}" | Adres repozytorium APT potrzebny do zainstalowania Fluentbit. |
fluentbit_apt_repos_component | main | Składnik repozytorium APT. |
fluentbit_pkg_name | fluent-bit | Nazwa pakietu APT dla Fluentbit. |
fluentbit_pkg_version | "" | Zainstaluj określoną wersję pakietu. |
fluentbit_pkg_version_hold | "{{ fluentbit_pkg_version | default(False) | ternary(True, False) }}" | Zablokuj wersję pakietu, aby zapobiec przypadkowemu aktualizowaniu. Domyślnie True , jeśli fluentbit_pkg_version jest zdefiniowana, w przeciwnym razie False . |
fluentbit_svc_name | fluent-bit | Nazwa usługi Fluentbit do uruchamiania/zatrzymywania demona. |
fluentbit_apt_cleanup_legacy | false | Usuń stare klucze i stare źródła APT, jeśli prawda. |
fluentbit_apt_key_legacy_id | F209D8762A60CD49E680633B4FF8368B6EA0722A | ID starego klucza GPG do usunięcia z kluczy. |
fluentbit_naming_cleanup_legacy | false | Usuń stare usługi / pliki konfiguracyjne / apt z nazwą td-agent. |
fluentbit_pkg_name_legacy | td-agent-bit | Nazwa pakietu, która zostanie usunięta przez narzędzie do czyszczenia dziedzictwa. |
fluentbit_svc_name_legacy | td-agent-bit | Nazwa usługi, która zostanie usunięta przez narzędzie do czyszczenia dziedzictwa. |
fluentbit_conf_directory_legacy | /etc/td-agent-bit/ | Katalog konfiguracyjny, który zostanie usunięty przez narzędzie do czyszczenia dziedzictwa. |
Zmienne używane do ogólnej konfiguracji:
Zmienne | Wartość domyślna | Opis |
---|---|---|
fluentbit_svc_flush | 5 | Czas czyszczenia w formacie sekundy.nanosekundy. |
fluentbit_svc_grace | 5 | Ustal czas łaski w sekundach. |
fluentbit_svc_daemon | "off" | Wartość włącz/wyłącz, aby określić, czy Fluentbit działa jako demon. Powinno być wyłączone przy użyciu dostarczonej jednostki Systemd. |
fluentbit_svc_logfile | "" | Absolutna ścieżka do opcjonalnego pliku dziennika. Dziennik do stdout, jeśli nie jest określone. |
fluentbit_svc_loglevel | info | Ustaw poziom szczegółowości logowania. |
fluentbit_svc_parsers_file | ["parsers.conf"] | Lista ścieżek do plików konfiguracyjnych parserów. |
fluentbit_svc_plugins_file | ["plugins.conf"] | Lista ścieżek do plików konfiguracyjnych pluginów. |
fluentbit_svc_streams_file | [] | Lista ścieżek do plików konfiguracyjnych procesorów strumieni. |
fluentbit_managed_parsers_enable | "{{ ((_fluentbit_parsers | length) or (_fluentbit_mlparsers | length)) | bool }}" | Określa, czy Ansible powinien utworzyć/zaktualizować niestandardowy plik dla zdefiniowanego przez użytkownika parsera. |
fluentbit_managed_parsers_file | "{{ fluentbit_conf_directory }}/managed-parsers.conf" | Plik, w którym definiowane są niestandardowe parsery, jeśli to konieczne. |
fluentbit_svc_http | {} | Słownik do konfiguracji wbudowanego serwera HTTP. |
fluentbit_svc_storage | {} | Słownik do konfiguracji magazynu/bufora. |
fluentbit_svc_limit_open_files | Undefined | Skonfiguruj LimitNOFILE dla usługi systemd, jeśli zdefiniowane. |
Dla fluentbit_svc_http
, każdy klucz jest używany jako nazwa opcji konfiguracyjnej, a wartości jako wartości.
Nie musisz dodawać prefiksu HTTP_
, będzie on dodawany przez szablon.
Na przykład, możesz to zdefiniować w ten sposób:
fluentbit_svc_http:
server: On
listen: 0.0.0.0
port: "{{ fluentbit_monitoring_port }}"
To samo dotyczy fluentbit_svc_storage
: nie musisz określać prefiksu storage.
.
Przykład:
fluentbit_svc_storage:
path: /var/log/flb-storage/
sync: full
checksum: "off"
Inne zmienne:
Zmienne | Wartość domyślna | Opis |
---|---|---|
fluentbit_dbs_path | "" | Ścieżka do katalogu, który zostanie utworzony przez rolę. Na przykład, aby przechować pliki DB dla wejścia. |
Zmienne do przetwarzania logów:
Zmienne | Wartość domyślna | Opis |
---|---|---|
_fluentbit_inputs | "{{ lookup('template', 'get_vars.j2'), template_vars=dict(var_type='input') }}" | Lista słowników definiujących wszystkie wejścia logów. |
_fluentbit_filters | "{{ lookup('template', 'get_vars.j2'), template_vars=dict(var_type='filter') }}" | Lista słowników definiujących wszystkie filtry logów. |
_fluentbit_outputs | "{{ lookup('template', 'get_vars.j2'), template_vars=dict(var_type='output') }}" | Lista słowników definiujących wszystkie wyjścia logów. |
_fluentbit_parsers | "{{ lookup('template', 'get_vars.j2'), template_vars=dict(var_type='parser') }}" | Lista słowników definiujących wszystkie zarządzane parsery logów. |
_fluentbit_mlparsers | "{{ lookup('template', 'get_vars.j2'), template_vars=dict(var_type='mlparser') }}" | Lista słowników definiujących wszystkie zarządzane parsery wieloliniowe logów. |
W większości przypadków nie powinieneś modyfikować tych zmiennych. Szablonowanie jest używane do budowania tych list z innymi zmiennymi.
_fluentbit_inputs
zbiera wszystkie zmienne, których nazwa pasuje do tego wyrażenia regularnego:^fluentbit_.+_input(s)?$'
._fluentbit_filters
zbiera wszystkie zmienne, których nazwa pasuje do tego wyrażenia regularnego:^fluentbit_.+_filter(s)?$
._fluentbit_outputs
zbiera wszystkie zmienne, których nazwa pasuje do tego wyrażenia regularnego:^fluentbit_.+_output(s)?$
._fluentbit_parsers
zbiera wszystkie zmienne, których nazwa pasuje do tego wyrażenia regularnego:^fluentbit_.+_parser(s)?$
._fluentbit_outputs
zbiera wszystkie zmienne, których nazwa pasuje do tego wyrażenia regularnego:^fluentbit_.+_mlparser(s)?$
.
Każda zmienna pasująca do tych wyrażeń regularnych musi być:
- słownikiem definiującym jedno wejście/filter/wynik/parser lub
- listą słowników definiujących jedno lub więcej wejść/filterów/wyjść/parserów.
Każdy słownik jest używany do zdefiniowania jednej sekcji [INPUT]
, [FILTER]
, [OUTPUT]
, [PARSER]
lub [MULTILINE_PARSER]
w pliku konfiguracyjnym Fluentbit lub w zarządzanym pliku parserów. Każda sekcja konfiguracyjna
jest skonfigurowana za pomocą par klucz/wartość, więc klucze słownika są używane jako
klucze konfiguracyjne, a wartości jako wartości.
Na przykład:
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
utworzy:
[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
Pozwala to na zdefiniowanie zmiennych w wielu grupach group_vars
i ich kumulację dla
hostów w wielu grupach bez potrzeby przepisywania całej listy.
Słowniki Ansible nie mogą mieć tego samego klucza wielokrotnie. Może to stanowić problem
w przypadku używania rzeczy takich jak record
.
Aby rozwiązać ten problem, każdy klucz może być prefiksowany numerem, który zostanie usunięty
w pliku szablonu. Musi to pasować do tego wyrażenia regularnego: '^[0-9]+__'
.
Na przykład:
fluentbit_add_context_filter:
- name: record_modifier
match: '*'
0__record: hostname ${HOSTNAME}
1__record: product Awesome_Tool
utworzy:
[FILTER]
name record_modifier
match *
record hostname ${HOSTNAME}
record product Awesome_Tool
Zależności
Brak
Przykładowy Playbook
w 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 }}"
w group_vars/web.yml
:
fluentbit_nginx_input:
- name: tail
path: /var/log/nginx/access.log
- name: tail
path: /var/log/nginx/error.log
w playbook.yml
:
- hosts: web
gather_facts: True
become: yes
roles:
- bimdata.fluentbit
Licencja
BSD
Informacje o autorze
ansible-galaxy install bimdata.fluentbit