kibatic.prometheus

kibatic.prometheus pour Ansible Galaxy

Circle CI Build Status

Résumé

Nom du rôle dans Ansible Galaxy : kibatic.prometheus

Ce rôle Ansible a les fonctionnalités suivantes pour Prometheus :

  • Installer des versions spécifiques de Prometheus server, Node exporter, Alertmanager.
  • Gestionnaires pour les événements de redémarrage/rechargement/arrêt ;
  • Configuration minimale (la véritable configuration doit être laissée aux fichiers de modèle de l'utilisateur ; voir la section Utilisation ci-dessous).

Pour garder ce rôle simple, il installe uniquement 3 composants : le serveur Prometheus, le Node exporter et l'Alertmanager. Utilisez les rôles suivants si vous souhaitez installer d'autres exporters Prometheus :

Variables de rôle

Variables obligatoires

Les composants à installer :

# Composants supportés :
#
#   [Composants serveur]
#     - "prometheus"
#     - "alertmanager"
#
#   [Composants exporter]
#     - "node_exporter"
#
prometheus_components

Variables optionnelles : paramètres généraux

Valeurs par défaut configurables par l'utilisateur :

# utilisateur et groupe
prometheus_user:   prometheus
prometheus_group:  prometheus

# répertoire pour les fichiers exécutables
prometheus_install_path:   /opt/prometheus

# répertoire pour les fichiers de configuration
prometheus_config_path:    /etc/prometheus

# répertoire pour les logs
prometheus_log_path:       /var/log/prometheus

# répertoire pour les fichiers PID
prometheus_pid_path:       /var/run/prometheus

# répertoire pour les fichiers temporaires
prometheus_download_path:  /tmp

# version de l'utilitaire auxiliaire "gosu"
gosu_version:  "1.10"

Variables optionnelles : systemd ou non

Si les distributions Linux sont équipées de systemd, ce rôle utilisera ce mécanisme en conséquence. Vous pouvez désactiver cela (c'est-à-dire utiliser un script d'initialisation traditionnel de style SysV) en définissant la ou les variables suivantes sur false :

# actuellement, seul le node_exporter est supporté.
prometheus_node_exporter_use_systemd

Variables optionnelles : serveur Prometheus

Valeurs par défaut configurables par l'utilisateur :

# quelle version ?
prometheus_version:  1.5.0

# répertoire pour les fichiers de règles
prometheus_rule_path:  {{ prometheus_config_path }}/rules

# répertoire pour les fichiers file_sd
prometheus_file_sd_config_path:  {{ prometheus_config_path }}/tgroups

# répertoire pour la base de données d'exécution
prometheus_db_path:   /var/lib/prometheus

Fichier de configuration installable par l'utilisateur (voir doc pour plus de détails) :

# modèle de config principal relatif à `playbook_dir` ;
# à installer à "{{ prometheus_config_path }}/prometheus.yml"
prometheus_conf_main

Fichiers de règles installables par l'utilisateur (voir doc pour plus de détails) :

# fichiers de règles à installer dans le répertoire "{{ prometheus_rule_path }}" ;
# champs du dictionnaire :
#   - clé : mémo pour cette règle
#   - valeur :
#     - src :  fichier relatif à `playbook_dir`
#     - dest : fichier cible relatif à `{{ prometheus_rule_path }}`
prometheus_rule_files

Alertmanager à déclencher :

prometheus_alertmanager_url

Arguments de ligne de commande supplémentaires, le cas échéant (utilisez prometheus --help pour voir la liste complète des arguments) :

prometheus_opts

Variables optionnelles : Node exporter

Valeurs par défaut configurables par l'utilisateur :

# quelle version ?
prometheus_node_exporter_version:  0.13.0

Arguments de ligne de commande supplémentaires, le cas échéant (utilisez node_exporter --help pour voir la liste complète des arguments) :

prometheus_node_exporter_opts

Variables optionnelles : Alertmanager

Valeurs par défaut configurables par l'utilisateur :

# quelle version ?
prometheus_alertmanager_version:  0.5.1

# répertoire pour la base de données d'exécution (actuellement pour `silences.json`)
prometheus_alertmanager_db_path: /var/lib/alertmanager

Fichier de configuration installable par l'utilisateur pour l'alertmanager (voir doc pour plus de détails) :

# modèle de config principal relatif à `playbook_dir` ;
# à installer à "{{ prometheus_config_path }}/alertmanager.yml"
prometheus_alertmanager_conf

Arguments de ligne de commande supplémentaires, le cas échéant (utilisez alertmanager --help pour voir la liste complète des arguments) :

prometheus_alertmanager_opts

Optionnel : construire à partir de l'arborescence source

(Crédit : Robbie Trencheny)

Pour les prometheus_components mentionnés ci-dessus, vous pouvez optionnellement télécharger/compliler à partir de la master branche des dépôts Prometheus en définissant les versions respectives sur git.

Cela installera un compilateur Golang temporaire dans le répertoire prometheus_workdir (défini dans defaults/main.yml).

Par exemple, obtenez le code le plus récent pour tous les composants en assignant toutes les variables *_version à git :

prometheus_version: git
prometheus_node_exporter_version: git
prometheus_alertmanager_version: git

Si vous souhaitez forcer une reconstruction à chaque fois, activez la variable suivante (par défaut, c'est false) :

prometheus_rebuild: true

Gestionnaires

Serveur Prometheus :

  • restart prometheus
  • reload prometheus
  • stop prometheus

Node exporter :

  • restart node_exporter
  • reload node_exporter (en fait, la même chose que restart)
  • stop node_exporter

Alertmanager :

  • restart alertmanager
  • reload alertmanager
  • stop alertmanager

Utilisation

Étape 1 : ajouter le rôle

Ajoutez le nom du rôle kibatic.prometheus à votre fichier de playbook.

Étape 2 : ajouter des variables

Définissez des vars dans votre fichier de playbook, si nécessaire.

Exemple simple :

---
# fichier : simple-playbook.yml

- hosts: all
  become: True
  roles:
    - kibatic.prometheus

  vars:
    prometheus_components: [ "prometheus", "alertmanager" ]

    prometheus_alertmanager_url: "http://localhost:9093/"

Étape 3 : copier les fichiers de configuration de l'utilisateur, si nécessaire

Exemple plus pratique :

---
# fichier : complex-playbook.yml

- hosts: all
  become: True
  roles:
    - kibatic.prometheus

  vars:
    prometheus_components:
      - prometheus
      - node_exporter
      - alertmanager

    prometheus_rule_files:
      this_is_rule_1_InstanceDown:
        src:  some/path/basic.rules
        dest: basic.rules

    prometheus_alertmanager_conf: some/path/alertmanager.yml.j2

Étape 4 : consultez les pages par défaut de Prometheus

Ouvrez la page dans votre navigateur :

  • Prometheus - http://HOST:9090 ou http://HOST:9090/consoles/node.html
  • Alertmanager - http://HOST:9093

Dépendances

Aucune.

Contributeurs

Licence

Licence MIT. Voir le fichier LICENSE pour plus de détails.

À propos du projet

Install and configure Prometheus

Installer
ansible-galaxy install kibatic.prometheus
Licence
mit
Téléchargements
1k
Propriétaire
Ajoutez de l'intelligence à vos systèmes