bimdata.fluentbit

Ansible-Rolle Fluentbit

Diese Rolle installiert und konfiguriert Fluentbit.

Anforderungen

  • Diese Rolle wird nur mit Ansible >= 2.9 getestet.

Variablen der Rolle

Diese Rolle versucht, die Standardkonfiguration so beizubehalten, als ob Sie Fluentbit manuell installieren. Weitere Informationen zu jeder Option finden Sie in der Fluentbit-Dokumentation.

Variablen für die Installation:

Variablen Standardwert Beschreibung
fluentbit_prerequisites ['apt-transport-https', 'curl', 'gnupg'] Liste der Pakete, die vor der Installation von Fluentbit benötigt werden.
fluentbit_apt_key_path "/usr/share/keyrings/fluentbit-keyring.gpg" APT-Schlüsselpfad zur Speicherung des Fluentbit-Schlüssels.
fluentbit_apt_key_url https://packages.fluentbit.io/fluentbit.key Der APT-Schlüssel für das Fluentbit-Paket.
fluentbit_apt_repos_url "https://packages.fluentbit.io/{{ ansible_distribution lower }}/{{ ansible_distribution_release
fluentbit_apt_repos_component main APT-Repository-Komponente.
fluentbit_pkg_name fluent-bit Der APT-Paketname von Fluentbit.
fluentbit_pkg_version "" Installiert eine spezifische Version des Pakets.
fluentbit_pkg_version_hold "{{ fluentbit_pkg_version default(False)
fluentbit_svc_name fluent-bit Der Dienstname von Fluentbit, um den Daemon zu starten/stoppen.
fluentbit_apt_cleanup_legacy false Entfernt alte Schlüssel und alte APT-Quellen, wenn true.
fluentbit_apt_key_legacy_id F209D8762A60CD49E680633B4FF8368B6EA0722A ID des alten GPG-Schlüssels, der aus dem Schlüsselbund entfernt werden soll.
fluentbit_naming_cleanup_legacy false Entfernt alte Dienste / Konfigurationen / APT mit dem Namen td-agent.
fluentbit_pkg_name_legacy td-agent-bit Paketname, der vom Legacy-Cleaner entfernt wird.
fluentbit_svc_name_legacy td-agent-bit Dienstname, der vom Legacy-Cleaner entfernt wird.
fluentbit_conf_directory_legacy /etc/td-agent-bit/ Konfigurationsverzeichnis, das vom Legacy-Cleaner entfernt wird.

Variablen für die allgemeine Konfiguration:

Variablen Standardwert Beschreibung
fluentbit_svc_flush 5 Flush-Zeit im Format Sekunden.Nanosekunden.
fluentbit_svc_grace 5 Setzt die Zeitgrenze in Sekunden.
fluentbit_svc_daemon "off" Ein/Aus-Wert, um anzugeben, ob Fluentbit als Daemon läuft. Soll "off" sein, wenn die bereitgestellte Systemd-Einheit verwendet wird.
fluentbit_svc_logfile "" Absoluter Pfad für eine optionale Protokolldatei. Loggt auf stdout, wenn nicht angegeben.
fluentbit_svc_loglevel info Setzt das Protokollierungslevel.
fluentbit_svc_parsers_file ["parsers.conf"] Liste der Pfade für die Konfigurationsdateien von parsers.
fluentbit_svc_plugins_file ["plugins.conf"] Liste der Pfade für die Konfigurationsdateien von plugins.
fluentbit_svc_streams_file [] Liste der Pfade für die Konfigurationsdateien von stream processors.
fluentbit_managed_parsers_enable "{{ ((_fluentbit_parsers length) or (_fluentbit_mlparsers
fluentbit_managed_parsers_file "{{ fluentbit_conf_directory }}/managed-parsers.conf" Datei, in der die benutzerdefinierten Parser definiert sind, falls erforderlich.
fluentbit_svc_http {} Wörterbuch zur Konfiguration des integrierten HTTP-Servers.
fluentbit_svc_storage {} Wörterbuch zur Konfiguration von Speicher/Puffer.
fluentbit_svc_limit_open_files Undefined Konfigurieren Sie LimitNOFILE für den Systemd-Dienst, falls definiert.

Für fluentbit_svc_http wird jeder Schlüssel als Konfigurationsoptionsname und die Werte als Werte verwendet. Sie müssen jedoch das Präfix HTTP_ nicht hinzufügen; es wird durch die Vorlage hinzugefügt.

Beispiel:

fluentbit_svc_http:
  server: On
  listen: 0.0.0.0
  port: "{{ fluentbit_monitoring_port }}"

Das gilt auch für fluentbit_svc_storage: Das Präfix storage. muss nicht angegeben werden. Beispiel:

fluentbit_svc_storage:
  path: /var/log/flb-storage/
  sync: full
  checksum: "off"

Weitere Variablen:

Variablen Standardwert Beschreibung
fluentbit_dbs_path "" Ein Pfad für ein Verzeichnis, das von der Rolle erstellt wird. Zum Beispiel, um Ihre Eingabedatenbankdateien zu speichern.

Variablen für die Protokollverarbeitung:

Variablen Standardwert Beschreibung
_fluentbit_inputs "{{ lookup('template', 'get_vars.j2'), template_vars=dict(var_type='input') }}" Liste von Dictionnaries, die alle Log-Eingaben definieren.
_fluentbit_filters "{{ lookup('template', 'get_vars.j2'), template_vars=dict(var_type='filter') }}" Liste von Dictionnaries, die alle Log-Filter definieren.
_fluentbit_outputs "{{ lookup('template', 'get_vars.j2'), template_vars=dict(var_type='output') }}" Liste von Dictionnaries, die alle Log-Ausgaben definieren.
_fluentbit_parsers "{{ lookup('template', 'get_vars.j2'), template_vars=dict(var_type='parser') }}" Liste von Dictionnaries, die alle verwalteten Parser für Logs definieren.
_fluentbit_mlparsers "{{ lookup('template', 'get_vars.j2'), template_vars=dict(var_type='mlparser') }}" Liste von Dictionnaries, die alle verwalteten Multi-Zeilen-Parser für Logs definieren.

In den meisten Fällen sollten Sie diese Variablen nicht ändern. Templating wird verwendet, um diese Listen mit anderen Variablen zu erstellen.

  • _fluentbit_inputs aggregiert alle Variablen, deren Name mit diesem Regex übereinstimmt: ^fluentbit_.+_input(s)?$'.
  • _fluentbit_filters aggregiert alle Variablen, deren Name mit diesem Regex übereinstimmt: ^fluentbit_.+_filter(s)?$'.
  • _fluentbit_outputs aggregiert alle Variablen, deren Name mit diesem Regex übereinstimmt: ^fluentbit_.+_output(s)?$'.
  • _fluentbit_parsers aggregiert alle Variablen, deren Name mit diesem Regex übereinstimmt: ^fluentbit_.+_parser(s)?$'.
  • _fluentbit_outputs aggregiert alle Variablen, deren Name mit diesem Regex übereinstimmt: ^fluentbit_.+_mlparser(s)?$'.

Jede Variable, die mit diesen Regex übereinstimmt, muss:

  • ein Dictionary zur Definition eines Inputs/Filters/Outputs/Parsers oder
  • eine Liste von Dictionaries zur Definition von einem oder mehreren Inputs/Filters/Outputs/Parsers sein.

Jedes Dictionary wird verwendet, um einen Abschnitt [INPUT], [FILTER], [OUTPUT], [PARSER] oder [MULTILINE_PARSER] in der Fluentbit-Konfigurationsdatei oder in der verwalteten Parser-Datei zu definieren. Jeder Konfigurationsabschnitt ist mit Schlüssel/Wert-Paaren konfiguriert, sodass die Schlüssel des Dictionaries als Konfigurationsschlüssel und die Werte als Werte verwendet werden.

Beispiel:

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

wird erzeugen:

[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

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

Ansible-Dictionaries können die gleichen Schlüssel nicht mehrmals haben. Dies kann ein Problem sein, um Dinge wie record zu verwenden. Um dieses Problem zu umgehen, kann jeder Schlüssel mit einer Nummer präfixiert werden, die in der Vorlage entfernt wird. Es muss mit diesem Regex übereinstimmen: '^[0-9]+__'.

Beispiel:

fluentbit_add_context_filter:
  - name: record_modifier
    match: '*'
    0__record: hostname ${HOSTNAME}
    1__record: produkt Awesome_Tool

wird erzeugen:

[FILTER]
  name record_modifier
  match *
  record hostname ${HOSTNAME}
  record produkt Awesome_Tool

Abhängigkeiten

Keine

Beispiel-Playbook

in 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 }}"

in group_vars/web.yml:

fluentbit_nginx_input:
  - name: tail
    path: /var/log/nginx/access.log
  - name: tail
    path: /var/log/nginx/error.log

in playbook.yml:

- hosts: web
  gather_facts: True
  become: yes
  roles:
    - bimdata.fluentbit

Lizenz

BSD

Informationen zum Autor

BIMData.io

Über das Projekt

This role installs and configures Fluentbit.

Installieren
ansible-galaxy install bimdata.fluentbit
Lizenz
mit
Downloads
2.7k
Besitzer