bimdata.fluentbit
Rôle Ansible Fluentbit
Ce rôle installe et configure Fluentbit.
Exigences
- Ce rôle est testé uniquement avec Ansible >= 2.9.
Variables du rôle
Ce rôle essaye de garder la même configuration par défaut que si vous installiez manuellement Fluentbit. Vous pouvez trouver plus d'informations sur chaque option dans la documentation Fluentbit.
Variables utilisées pour l'installation :
Variables | Valeur par défaut | Description |
---|---|---|
fluentbit_prerequisites | ['apt-transport-https', 'curl', 'gnupg'] | Liste des paquets à installer avant Fluentbit. |
fluentbit_apt_key_path | "/usr/share/keyrings/fluentbit-keyring.gpg" | Chemin du keyring APT utilisé pour stocker la clé Fluentbit. |
fluentbit_apt_key_url | https://packages.fluentbit.io/fluentbit.key | La clé APT pour le paquet Fluentbit. |
fluentbit_apt_repos_url | "https://packages.fluentbit.io/{{ ansible_distribution | lower }}/{{ ansible_distribution_release | lower }}" | L'adresse du dépôt APT nécessaire pour installer Fluentbit. |
fluentbit_apt_repos_component | main | Composant du dépôt APT. |
fluentbit_pkg_name | fluent-bit | Le nom du paquet APT Fluentbit. |
fluentbit_pkg_version | "" | Installer une version spécifique du paquet. |
fluentbit_pkg_version_hold | "{{ fluentbit_pkg_version | default(False) | ternary(True, False) }}" | Verrouiller la version du paquet pour éviter les mises à jour accidentelles. Par défaut, True si fluentbit_pkg_version est défini, False sinon. |
fluentbit_svc_name | fluent-bit | Le nom du service Fluentbit à démarrer/arrêter. |
fluentbit_apt_cleanup_legacy | false | Supprimer les anciennes clés et anciennes sources APT si vrai. |
fluentbit_apt_key_legacy_id | F209D8762A60CD49E680633B4FF8368B6EA0722A | ID de l'ancienne clé GPG à supprimer du keyring. |
fluentbit_naming_cleanup_legacy | false | Supprimer les anciens services / conf / apt avec le nom td-agent. |
fluentbit_pkg_name_legacy | td-agent-bit | Nom du paquet qui sera supprimé par le nettoyeur legacy. |
fluentbit_svc_name_legacy | td-agent-bit | Nom du service qui sera supprimé par le nettoyeur legacy. |
fluentbit_conf_directory_legacy | /etc/td-agent-bit/ | Répertoire de configuration qui sera supprimé par le nettoyeur legacy. |
Variables utilisées pour la configuration générale :
Variables | Valeur par défaut | Description |
---|---|---|
fluentbit_svc_flush | 5 | Temps de vidage en format secondes.nanosecondes. |
fluentbit_svc_grace | 5 | Définir le temps de grâce en secondes. |
fluentbit_svc_daemon | "off" | Valeur On/Off pour spécifier si Fluentbit fonctionne en tant que démon. Doit être désactivé lors de l'utilisation de l'unité Systemd fournie. |
fluentbit_svc_logfile | "" | Chemin absolu pour un fichier journal optionnel. Écrit dans stdout si non précisé. |
fluentbit_svc_loglevel | info | Définir le niveau de verbosité des journaux. |
fluentbit_svc_parsers_file | ["parsers.conf"] | Liste des chemins pour les fichiers de configuration parsers. |
fluentbit_svc_plugins_file | ["plugins.conf"] | Liste des chemins pour les fichiers de configuration plugins. |
fluentbit_svc_streams_file | [] | Liste des chemins pour les fichiers de configuration stream processors. |
fluentbit_managed_parsers_enable | "{{ ((_fluentbit_parsers | length) or (_fluentbit_mlparsers | length)) | bool }}" | Définir si Ansible doit créer/mettre à jour un fichier personnalisé pour le parser défini par l'utilisateur. |
fluentbit_managed_parsers_file | "{{ fluentbit_conf_directory }}/managed-parsers.conf" | Fichier où les parsers personnalisés sont définis si nécessaire. |
fluentbit_svc_http | {} | Dictionnaire pour la configuration du serveur HTTP intégré. |
fluentbit_svc_storage | {} | Dictionnaire pour la configuration de stockage/tampon. |
fluentbit_svc_limit_open_files | Indéfini | Configurer LimitNOFILE pour le service systemd si défini |
Pour fluentbit_svc_http
, chaque clé est utilisée comme nom d'option de configuration et les valeurs comme valeurs.
Mais vous n'avez pas besoin d'ajouter le préfixe HTTP_
, il sera ajouté par le template.
Par exemple, vous pouvez le définir de cette manière :
fluentbit_svc_http:
server: On
listen: 0.0.0.0
port: "{{ fluentbit_monitoring_port }}"
C'est la même chose pour fluentbit_svc_storage
: vous n'avez pas besoin de spécifier le préfixe storage.
.
Exemple :
fluentbit_svc_storage:
path: /var/log/flb-storage/
sync: full
checksum: "off"
Autres variables :
Variables | Valeur par défaut | Description |
---|---|---|
fluentbit_dbs_path | "" | Un chemin pour un répertoire qui sera créé par le rôle. Par exemple pour stocker vos fichiers DB d'entrée. |
Variables pour le traitement des journaux :
Variables | Valeur par défaut | Description |
---|---|---|
_fluentbit_inputs | "{{ lookup('template', 'get_vars.j2'), template_vars=dict(var_type='input') }}" | Liste de dictionnaires définissant toutes les entrées de journaux. |
_fluentbit_filters | "{{ lookup('template', 'get_vars.j2'), template_vars=dict(var_type='filter') }}" | Liste de dictionnaires définissant tous les filtres de journaux. |
_fluentbit_outputs | "{{ lookup('template', 'get_vars.j2'), template_vars=dict(var_type='output') }}" | Liste de dictionnaires définissant toutes les sorties de journaux. |
_fluentbit_parsers | "{{ lookup('template', 'get_vars.j2'), template_vars=dict(var_type='parser') }}" | Liste de dictionnaires définissant tous les parsers gérés de journaux. |
_fluentbit_mlparsers | "{{ lookup('template', 'get_vars.j2'), template_vars=dict(var_type='mlparser') }}" | Liste de dictionnaires définissant tous les parsers multilignes gérés de journaux. |
Dans la plupart des cas, vous ne devez pas modifier ces variables. La templating est utilisée pour construire ces listes avec d'autres variables.
_fluentbit_inputs
va agréger toutes les variables dont le nom correspond à cette expression régulière :^fluentbit_.+_input(s)?$'
._fluentbit_filters
va agréger toutes les variables dont le nom correspond à cette expression régulière :^fluentbit_.+_filter(s)?$'
._fluentbit_outputs
va agréger toutes les variables dont le nom correspond à cette expression régulière :^fluentbit_.+_output(s)?$'
._fluentbit_parsers
va agréger toutes les variables dont le nom correspond à cette expression régulière :^fluentbit_.+_parser(s)?$'
._fluentbit_outputs
va agréger toutes les variables dont le nom correspond à cette expression régulière :^fluentbit_.+_mlparser(s)?$'
.
Chaque variable correspondant à ces expressions régulières doit être :
- un dictionnaire définissant une entrée/filter/sortie/parser ou
- une liste de dictionnaires définissant une ou plusieurs entrées/filtres/sorties/parsers.
Chaque dictionnaire est utilisé pour définir une section [INPUT]
, [FILTER]
, [OUTPUT]
, [PARSER]
ou [MULTILINE_PARSER]
dans le fichier de configuration Fluentbit ou dans le fichier de parser géré. Chaque section de configuration
est configurée avec des paires clé/valeur, donc les clés du dictionnaire sont utilisées comme
clés de configuration et les valeurs comme valeurs.
Par exemple :
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
créera :
[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
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.
Les dictionnaires Ansible ne peuvent pas avoir la même clé plusieurs fois. Cela peut être un problème
pour utiliser des éléments comme record
.
Pour contourner ce problème, chaque clé peut être prefixée par un numéro qui sera supprimé dans le fichier de template. Il doit correspondre à cette expression régulière : '^[0-9]+__'
.
Par exemple :
fluentbit_add_context_filter:
- name: record_modifier
match: '*'
0__record: hostname ${HOSTNAME}
1__record: product Awesome_Tool
créera :
[FILTER]
name record_modifier
match *
record hostname ${HOSTNAME}
record product Awesome_Tool
Dépendances
Aucune
Exemple de Playbook
dans 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 }}"
dans group_vars/web.yml
:
fluentbit_nginx_input:
- name: tail
path: /var/log/nginx/access.log
- name: tail
path: /var/log/nginx/error.log
dans playbook.yml
:
- hosts: web
gather_facts: True
become: yes
roles:
- bimdata.fluentbit
Licence
BSD
Informations sur l'auteur
ansible-galaxy install bimdata.fluentbit