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)$), klucz name 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

BIMData.io

O projekcie

This role installs and configures Fluentd.

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