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üsselname
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
ansible-galaxy install bimdata.fluentd