bimdata.fluentd

Ansible Rolle Fluentd

Diese Rolle installiert und konfiguriert Fluentd.

Anforderungen

  • Diese Rolle wurde nur auf Debian 12.x (Bookworm) getestet.

Rollenvariablen

Diese Rolle versucht, die gleiche Standardkonfiguration beizubehalten, als ob Sie Fluentd manuell installieren würden. Weitere Informationen zu jeder Option finden Sie in der Fluentd-Dokumentation.

Variablen, die für die Installation verwendet werden:

Variablen Standardwert Beschreibung
fluentd_prerequisites ['apt-transport-https', 'curl', 'gnupg'] Liste der Pakete, die vor der Installation von Fluentd benötigt werden.
fluentd_major_version 5 Hauptversion von Fluentd, die Sie installieren möchten.
fluentd_apt_key_url https://packages.treasuredata.com/GPG-KEY-td-agent Der APT-Schlüssel für das Fluentd-Paket.
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'] Die APT-Repository-Komponenten.
fluentd_pkg_name fluent-package Der Paketname des Fluentd APT-Pakets.
fluentd_pkg_version "" Installieren Sie eine bestimmte Version des Pakets.
fluentd_pkg_version_hold "{{ fluentd_pkg_version default(False)
fluentd_svc_name fluentd Der Name des Fluentd-Dienstes zum Starten/Stoppen des Daemons.

Variablen zur Entfernung von alten Inhalten (zum Beispiel, wenn vor der Umbenennung von td-agent -> fluentd installiert wurde)

Variablen Standardwert Beschreibung
fluentd_apt_cleanup_legacy false Alte Schlüssel und alte APT-Quellen entfernen, wenn wahr.
fluentd_apt_key_legacy_id BEE682289B2217F45AF4CC3F901F9177AB97ACBE ID des alten GPG-Schlüssels, der aus dem Schlüsselbund entfernt werden soll.
fluentd_naming_cleanup_legacy false Alte Dienste / Konfigurationen / APT mit dem Namen td-agent entfernen.
fluentd_pkg_name_legacy td-agent Paketname, der vom Legacy-Cleaner entfernt wird.
fluentd_svc_name_legacy td-agent Dienstname, der vom Legacy-Cleaner entfernt wird.
fluentd_conf_directory_legacy /etc/td-agent/ Verzeichnis, das vom Legacy-Cleaner entfernt wird.

Variablen für die allgemeine Konfiguration:

Variablen Standardwert Beschreibung
fluentd_plugins [] Liste der Plugins, die installiert werden sollen.
fluentd_gem_exec_path /usr/sbin/fluent-gem Gem-Binärpfad zum Installieren von Fluentd-Plugins.
fluentd_system {} Fluentd-Systemkonfiguration.
fluentd_conf_directory "/etc/fluent" Fluentd-Konfigurationsverzeichnis.
fluentd_conf_file_path "{{ fluentd_conf_directory }}/fluentd.conf" Pfad zur Fluentd-Konfigurationsdatei.
fluentd_include_directory Nicht definiert Kann verwendet werden, um andere Konfigurationsdateien einzuschließen. Es wird @include {{ fluentd_include_directory }}*.conf in der Konfiguration hinzugefügt.

Für fluentd_system wird jeder Schlüssel als Konfigurationsoptionsname und die Werte als Werte verwendet. Sie können alle verfügbaren Optionen in der Fluentd-Dokumentation einsehen.

fluentd_plugins ist eine Liste der Plugins, die über fluentd_gem_exec_path installiert werden. Sie können die gewünschte Version für jedes Plugin angeben:

fluentd_plugins:
  - name: fluent-plugin-prometheus
    version: 2.0.0

Variablen für die Protokollverarbeitung:

Variablen Standardwert Beschreibung
_fluentd_sources "{{ lookup('template', './lookup/get_sources.j2') }}" Liste von Dictionaries, die alle Quellkonfigurationen definieren.
_fluentd_filters "{{ lookup('template', './lookup/get_filters.j2') }}" Liste von Dictionaries, die alle Filterkonfigurationen definieren.
_fluentd_labels "{{ lookup('template', './lookup/get_labels.j2') }}" Liste von Dictionaries, die alle Labelkonfigurationen definieren.
_fluentd_matches "{{ lookup('template', './lookup/get_matches.j2') }}" Liste von Dictionaries, die alle Matchkonfigurationen definieren.

In den meisten Fällen sollten Sie diese Variablen nicht ändern. Template-Daten werden verwendet, um diese Listen mit anderen Variablen zu erstellen.

  • _fluentd_sources fasst alle Variablen zusammen, deren Name diesem Regulären Ausdruck entspricht: ^fluentd_.+_source(s)?$.
  • _fluentd_filters fasst alle Variablen zusammen, deren Name diesem Regulären Ausdruck entspricht: ^fluentd_.+_filter(s)?$.
  • _fluentd_labels fasst alle Variablen zusammen, deren Name diesem Regulären Ausdruck entspricht: ^fluentd_.+_label(s)$.
  • _fluentd_matches fasst alle Variablen zusammen, deren Name diesem Regulären Ausdruck entspricht: ^fluentd_.+_match(es)?$.

Jede Variable, die mit diesen Regulären Ausdrücken übereinstimmt, muss:

  • ein Dictionary sein, das eine Quelle/Filter/Label/Match definiert oder
  • eine Liste von Dictionaries, die eine oder mehrere Quellen/Filter/Labels/Matches definieren.

Jedes Dictionary wird verwendet, um einen <source>, <filter>, <label> oder <match> Abschnitt in der Fluentd-Konfigurationsdatei zu definieren. Jeder Konfigurationsabschnitt wird mit Schlüssel/Wert-Paaren konfiguriert, sodass die Schlüssel des Dictionaries als Konfigurationsschlüssel und die Werte als Werte verwendet werden.

Einige Schlüssel haben besondere Verhaltensweisen:

  • type wird durch @type ersetzt.
  • id wird durch @id ersetzt.
  • label wird durch @label ersetzt.
  • log_level wird durch @log_level ersetzt.
  • _section_args ist ein spezieller Schlüssel, der verwendet wird, um Dinge wie Tags zu definieren, die von der Konfiguration gematcht werden.
  • Bei der Labelkonfiguration (Variablen, die mit ^fluentd_.+_label(s)$ übereinstimmen) wird der Schlüssel name verwendet, um den Namen des Labels zu definieren, so wie <label @my_name>.
  • Dictionaries dürfen keine doppelten Schlüssel haben, daher kann jeder Schlüssel, der wiederholt werden muss, durch ein Präfix, das diesem Regulären Ausdruck entspricht ^[0-9]+__ vorangestellt werden. Das Präfix wird entfernt, wenn die Konfiguration generiert wird.

Zum Beispiel:

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

wird erstellt:

<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>

Es ermöglicht Ihnen, Variablen in mehreren group_vars zu definieren und sie für Hosts in mehreren Gruppen zu kumulieren, ohne die vollständige Liste neu schreiben zu müssen.

Abhängigkeiten

Keine

Lizenz

BSD

Autoreninformationen

BIMData.io

Über das Projekt

This role installs and configures Fluentd.

Installieren
ansible-galaxy install bimdata.fluentd
GitHub Repository
Lizenz
mit
Downloads
1.1k
Besitzer