patrickjahns.promtail
Ansible Rôle : promtail
Description
Déployez promtail en utilisant ansible. Supporte les architectures amd64 et arm. Pour les changements récents, veuillez consulter le CHANGELOG ou jetez un œil aux versions GitHub
Exigences
- Ansible >= 2.7
Variables du Rôle
Toutes les variables qui peuvent être remplacées sont stockées dans le fichier defaults/main.yml ainsi que dans le tableau ci-dessous.
Nom | Valeur par Défaut | Description |
---|---|---|
promtail_version |
"3.0.0" | Version du paquet promtail. Accepte également latest comme paramètre. |
promtail_custom_checksum |
"" | Somme de contrôle personnalisée pour les binaires promtail construits sur mesure. |
promtail_binary_local_dir |
"" | Permet d'utiliser des paquets locaux au lieu de ceux distribués sur GitHub. Prend comme paramètre le chemin où l'archive zip de promtail est stockée sur l'hôte sur lequel Ansible est exécuté. |
promtail_extra_args |
[] | Permet de définir des arguments supplémentaires pour le binaire dans le fichier de service systemd. |
promtail_config_dir |
/etc/promtail | Répertoire pour stocker le fichier de configuration de promtail. |
promtail_config_expand_env |
"false" | Valeur de l'option promtail -config.expand-env. |
promtail_config_file_sd_dir |
"{{ promtail_config_dir }}/file_sd" | Répertoire par défaut pour la découverte file_sd . |
promtail_config_file |
"{{ promtail_config_dir }}/promtail.yml" | Fichier de configuration utilisé par promtail. |
promtail_system_user |
promtail | Utilisateur sous lequel le processus promtail s'exécutera. |
promtail_system_group |
"{{ promtail_system_user }}" | Groupe de l'utilisateur promtail. |
promtail_user_additional_groups |
"adm" | Groupes supplémentaires à ajouter à l'utilisateur promtail pour permettre l'accès à certains fichiers journaux. |
promtail_config_clients |
Voir defaults/main.yml | Section des clients de promtail. |
promtail_loki_server_url |
http://127.0.0.1:3100 | URL du serveur où promtail enverra ses résultats. |
promtail_config_server |
Voir defaults/main.yml | Section du serveur de promtail. |
promtail_positions_directory |
/var/lib/promtail | Chemin vers le répertoire où promtail suit les positions des journaux extraits. |
promtail_config_positions |
{"filename": "{{ promtail_positions_directory }}/positions.yml"} | Section des positions de promtail. |
promtail_config_scrape_configs |
[] | Section des scrape_configs de promtail. |
promtail_target_config |
{} | Section des target_config de promtail. |
promtail_log_level |
"info" | Niveau de journalisation de promtail (un des : debug ,info ,warn ,error ). |
promtail_config_include_default_file_sd_config |
"True" | Si fixé à faux, le file_sd par défaut ne sera pas provisionné. |
promtail_apt_update_cache |
"True" | Si fixé à faux, le rôle ne mettra pas à jour le cache APT de lui-même. |
Pour chaque section (promtail_config_clients
, promtail_config_server
,promtail_config_positions
,promtail_config_scrape_configs
,promtail_target_config
), la configuration peut être passée conformément à la configuration officielle de promtail.
Le rôle convertira les variables Ansible en configuration YAML correspondante pour Loki.
Exemple de Playbook
Playbook de base qui supposera que Loki écoutera à http://127.0.0.1:3100
et une configuration simple pour extraire les journaux de /var/log
:
---
- hosts: all
roles:
- role: patrickjahns.promtail
vars:
promtail_config_scrape_configs:
- job_name: system
static_configs:
- targets:
- localhost
labels:
job: varlogs
__path__: /var/log/*log
Un exemple plus complexe, qui remplace la configuration du serveur, du client, des positions et fournit une configuration d'extraction pour /var/log
:
---
- hosts: all
roles:
- role: patrickjahns.promtail
vars:
promtail_config_server:
http_listen_port: 9080
grpc_listen_port: 9081
promtail_config_clients:
- url: "http://prometheus.domain.tld:3100/loki/api/v1/push"
external_labels:
host: "{{ ansible_hostname }}"
promtail_config_positions:
filename: "{{ promtail_positions_directory }}/positions.yaml"
sync_period: "60s"
promtail_config_scrape_configs:
- job_name: system
static_configs:
- targets:
- localhost
labels:
job: varlogs
__path__: /var/log/*log
Test Local
La façon préférée de tester localement le rôle est d'utiliser Docker et molecule (v3.x). Vous devrez installer Docker sur votre système. Voir "Commencer" pour un paquet Docker adapté à votre système. Nous utilisons tox pour simplifier le processus de test sur plusieurs versions d'Ansible. Pour installer tox, exécutez :
pip3 install tox
Pour exécuter des tests sur toutes les versions d'Ansible (AVERTISSEMENT : cela peut prendre du temps) :
tox
Pour exécuter une commande moleculaire personnalisée dans un environnement personnalisé avec seulement le scénario de test par défaut :
tox -e ansible29 -- molecule test -s default
Pour plus d'informations sur molecule, consultez leur documentation.
Si vous souhaitez exécuter des tests sur un hôte Docker distant, spécifiez simplement la variable DOCKER_HOST
avant d'exécuter les tests tox.
CI
Les actions GitHub sont utilisées pour tester et valider ce rôle Ansible via ansible-later et molecule. Les tests de molecule s'exécuteront avec plusieurs systèmes d'exploitation ainsi que des versions d'Ansible pour garantir la compatibilité.
Licence
Ce projet est sous licence MIT. Voir LICENSE pour plus de détails.
Mainteneurs et Contributeurs
Deploy (loki) promtail
ansible-galaxy install patrickjahns.promtail