bimdata.fluentd
Rôle Ansible Fluentd
Ce rôle installe et configure Fluentd.
Exigences
- Ce rôle est uniquement testé sur Debian 12.x (Bookworm).
Variables du rôle
Ce rôle essaie de conserver la même configuration par défaut que si vous installiez Fluentd manuellement. Vous pouvez trouver plus d'informations sur chaque option dans la documentation de Fluentd.
Variables utilisées pour l'installation :
Variables | Valeur par défaut | Description |
---|---|---|
fluentd_prerequisites | ['apt-transport-https', 'curl', 'gnupg'] | Liste des paquets à installer avant Fluentd. |
fluentd_major_version | 5 | Version majeure de Fluentd que vous souhaitez installer. |
fluentd_apt_key_url | https://packages.treasuredata.com/GPG-KEY-td-agent | La clé APT pour le paquet 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'] | Les composants des dépôts APT. |
fluentd_pkg_name | fluent-package | Nom du paquet APT de Fluentd. |
fluentd_pkg_version: | "" | Installer une version spécifique du paquet. |
fluentd_pkg_version_hold | "{{ fluentd_pkg_version | default(False) |
fluentd_svc_name | fluentd | Le nom du service Fluentd pour démarrer/arrêter le démon. |
Variables utilisées pour supprimer les éléments hérités (par exemple si installés avant le renommage de td-agent -> fluentd)
Variables | Valeur par défaut | Description |
---|---|---|
fluentd_apt_cleanup_legacy | false | Supprime les anciennes clés et anciennes sources APT si vrai. |
fluentd_apt_key_legacy_id | BEE682289B2217F45AF4CC3F901F9177AB97ACBE | ID de l'ancienne clé GPG à supprimer de la clé. |
fluentd_naming_cleanup_legacy | false | Supprime les anciens services / conf / apt avec le nom td-agent. |
fluentd_pkg_name_legacy | td-agent | Nom du paquet qui sera supprimé par le nettoyeur hérité. |
fluentd_svc_name_legacy | td-agent | Nom du service qui sera supprimé par le nettoyeur hérité. |
fluentd_conf_directory_legacy | /etc/td-agent/ | Répertoire de configuration qui sera supprimé par le nettoyeur hérité. |
Variables utilisées pour la configuration générale :
Variables | Valeur par défaut | Description |
---|---|---|
fluentd_plugins | [] | Liste des plugins à installer. |
fluentd_gem_exec_path | /usr/sbin/fluent-gem | Chemin binaire gem pour installer des plugins Fluentd. |
fluentd_system | {} | Configuration système de Fluentd. |
fluentd_conf_directory | "/etc/fluent" | Répertoire de configuration de Fluentd. |
fluentd_conf_file_path | "{{ fluentd_conf_directory }}/fluentd.conf" | Chemin du fichier de configuration de Fluentd. |
fluentd_include_directory | Indéfini | Peut être utilisé pour inclure d'autres fichiers de configuration. Cela ajoutera @include {{ fluentd_include_directory }}*.conf dans la conf. |
Pour fluentd_system
, chaque clé est utilisée comme nom d'option de configuration et les valeurs comme valeurs.
Vous pouvez voir toutes les options disponibles dans la documentation de Fluentd.
fluentd_plugins
est une liste des plugins qui seront installés par fluentd_gem_exec_path
.
Vous pouvez spécifier la version souhaitée pour chaque plugin :
fluentd_plugins:
- name: fluent-plugin-prometheus
version: 2.0.0
Variables pour le traitement des logs :
Variables | Valeur par défaut | Description |
---|---|---|
_fluentd_sources: | "{{ lookup('template', './lookup/get_sources.j2') }}" | Liste de dictionnaires définissant toutes les sources de configuration. |
_fluentd_filters: | "{{ lookup('template', './lookup/get_filters.j2') }}" | Liste de dictionnaires définissant toutes les configurations de filtre. |
_fluentd_labels: | "{{ lookup('template', './lookup/get_labels.j2') }}" | Liste de dictionnaires définissant toutes les configurations d'étiquettes. |
_fluentd_matches: | "{{ lookup('template', './lookup/get_matches.j2') }}" | Liste de dictionnaires définissant toutes les configurations de correspondance. |
Dans la plupart des cas, vous ne devez pas modifier ces variables. Le templating est utilisé pour construire ces listes avec d'autres variables.
_fluentd_sources
regroupera toutes les variables dont le nom correspond à cette expression régulière :^fluentd_.+_source(s)?$
._fluentd_filters
regroupera toutes les variables dont le nom correspond à cette expression régulière :^fluentd_.+_filter(s)?$
._fluentd_labels
regroupera toutes les variables dont le nom correspond à cette expression régulière :^fluentd_.+_label(s)$
._fluentd_matches
regroupera toutes les variables dont le nom correspond à cette expression régulière :^fluentd_.+_match(es)?$
.
Chaque variable correspondant à ces expressions régulières doit être :
- un dictionnaire définissant une source/un filtre/une étiquette/une correspondance ou
- une liste de dictionnaires définissant une ou plusieurs sources/filtres/étiquettes/correspondances.
Chaque dictionnaire est utilisé pour définir une section <source>
, <filter>
, <label>
ou <match>
dans le fichier de configuration de Fluentd. Chaque section de configuration est configurée
avec des couples clé/valeur, les clés du dictionnaire étant utilisées comme clés de configuration et
les valeurs comme valeurs.
Certaines clés ont des comportements spéciaux :
type
sera remplacé par@type
.id
sera remplacé par@id
.label
sera remplacé par@label
.log_level
sera remplacé par@log_level
._section_args
est une clé spéciale utilisée pour définir des choses comme des tags qui seront adaptés par la configuration.- Pour la configuration des étiquettes (variables correspondant à
^fluentd_.+_label(s)$
), la cléname
est utilisée pour définir le nom de l'étiquette, comme ceci<label @my_name>
. - Les dictionnaires ne peuvent pas avoir de clés dupliquées, donc chaque clé devant être répétée peut être précédée d'un préfixe qui correspond à cette expression régulière
^[0-9]+__
. Le préfixe sera supprimé lorsque la configuration sera générée.
Par exemple :
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
créera :
<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>
Cela vous permet de définir des variables dans plusieurs group_vars et de les cumuler pour des hôtes dans plusieurs groupes sans avoir besoin de réécrire la liste complète.
Dépendances
Aucune
Licence
BSD
Informations sur l'auteur
ansible-galaxy install bimdata.fluentd