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

BIMData.io

O projekcie

This role installs and configures Fluentbit.

Zainstaluj
ansible-galaxy install bimdata.fluentbit
Licencja
mit
Pobrania
2.7k
Właściciel