kibatic.prometheus
kibatic.prometheus pour Ansible Galaxy
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 :
- Consul : William-Yeh.consul_exporter
- Elasticsearch : William-Yeh.es_cluster_exporter
- MongoDB : williamyeh.mongodb_exporter
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 querestart
)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
ouhttp://HOST:9090/consoles/node.html
- Alertmanager -
http://HOST:9093
Dépendances
Aucune.
Contributeurs
- William Yeh
- Robbie Trencheny - a contribué une version précoce de la construction de binaires à partir du code source Go.
- Travis Truman - a contribué une version précoce de l'installeur consul_exporter ; maintenant déplacé vers William-Yeh.consul_exporter.
- Musee Ullah
Licence
Licence MIT. Voir le fichier LICENSE pour plus de détails.
ansible-galaxy install kibatic.prometheus