patrickjahns.promtail

Ansible Rôle : promtail

Test Licence Rôle Ansible Tag GitHub

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

Installer
ansible-galaxy install patrickjahns.promtail
Licence
mit
Téléchargements
514.5k
Propriétaire
Site Reliability Engineer with a ❤️ for "everything as code". Passionate about software craftsmanship and deliberately breaking things (aka Chaos Engineering)