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
ansible-galaxy install bimdata.fluentbit