William-Yeh.prometheus
william-yeh.prometheus pour Ansible Galaxy
============
Résumé
Nom du rôle dans Ansible Galaxy : william-yeh.prometheus
Ce rôle Ansible a les fonctionnalités suivantes pour Prometheus :
- Installer des versions spécifiques du serveur Prometheus, de Node exporter, et de Alertmanager.
- Gestionnaires pour les événements de redémarrage/rechargement/arrêt ;
- Configuration basique (la vraie configuration doit être laissée aux fichiers de modèles de l'utilisateur ; voir la section Utilisation ci-dessous).
Pour garder ce rôle simple, il installe uniquement 3 composants : le serveur Prometheus, Node exporter et Alertmanager. Utilisez les rôles suivants si vous souhaitez installer d'autres exportateurs Prometheus :
- Consul : william-yeh.consul_exporter
- Elasticsearch : william-yeh.es_cluster_exporter
- MongoDB : williamyeh.mongodb_exporter
Le support pour Ubuntu 12.04 (Precise) et CentOS 6 a été arrêté depuis novembre 2018.
Variables de rôle
Variables obligatoires
Les composants à installer :
# Composants pris en charge :
#
# [Composants serveur]
# - "prometheus"
# - "alertmanager"
#
# [Composants exporter]
# - "node_exporter"
#
prometheus_components
Variables optionnelles : paramètres généraux
Defaults 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 helper "gosu"
gosu_version: "1.11"
Variables optionnelles : avec ou sans systemd
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 SysV traditionnel) en définissant la\ (les) variable(s) suivante(s) à false
:
prometheus_use_systemd
Variables optionnelles : serveur Prometheus
Defaults configurables par l'utilisateur :
# quelle version ?
prometheus_version: 2.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 des détails) :
# modèle principal de conf relatif à `playbook_dir`;
# à installer à "{{ prometheus_config_path }}/prometheus.yml"
prometheus_conf_main
Fichiers de règles installables par l'utilisateur (voir doc pour des détails) :
# fichiers de règles à installer dans le répertoire "{{ prometheus_rule_path }}";
# champs dict :
# - 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_hostport
Arguments supplémentaires en ligne de commande, si présents (utilisez prometheus --help
pour voir la liste complète des arguments) :
prometheus_opts
Variables optionnelles : Node exporter
Defaults configurables par l'utilisateur :
# quelle version ?
prometheus_node_exporter_version: 0.16.0
Arguments supplémentaires en ligne de commande, si présents (utilisez node_exporter --help
pour voir la liste complète des arguments) :
prometheus_node_exporter_opts
Variables optionnelles : Alertmanager
Defaults configurables par l'utilisateur :
# quelle version ?
prometheus_alertmanager_version: 0.15.3
# 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 d'Alertmanager (voir doc pour des détails) :
# modèle principal de conf relatif à `playbook_dir`;
# à installer à "{{ prometheus_config_path }}/alertmanager.yml"
prometheus_alertmanager_conf
Arguments supplémentaires en ligne de commande, si présents (utilisez alertmanager --help
pour voir la liste complète des arguments) :
prometheus_alertmanager_opts
Optionnel : construction à partir de l'arborescence source
(Crédit : Robbie Trencheny)
Pour les prometheus_components
mentionnés ci-dessus, vous pouvez optionnellement télécharger/compiler à partir de la branche master des dépôts Prometheus en définissant la version respective à git
.
Il installera un compilateur Golang temporaire dans le répertoire prometheus_workdir
(défini dans defaults/main.yml
).
Par exemple, obtenez le dernier code 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 la reconstruction à chaque fois, activez la variable suivante (par défaut à false
) :
prometheus_rebuild: true
Gestionnaires
Serveur Prometheus :
restart prometheus
reload prometheus
stop prometheus
Node exporter :
restart node_exporter
reload node_exporter
(en réalité, même commande querestart
)stop node_exporter
Alertmanager :
restart alertmanager
reload alertmanager
stop alertmanager
Utilisation
Étape 1 : ajouter le rôle
Ajoutez le nom du rôle william-yeh.prometheus
à votre fichier de playbook.
Étape 2 : ajouter des variables
Définissez des variables dans votre fichier de playbook, si nécessaire.
Exemple simple :
---
# fichier : simple-playbook.yml
- hosts: all
become: True
roles:
- william-yeh.prometheus
vars:
prometheus_components: [ "prometheus", "alertmanager" ]
prometheus_alertmanager_hostport: "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:
- william-yeh.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 : naviguer sur 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 - contribution d'une version précoce de la construction de binaires à partir du code source Go.
- Travis Truman - contribution d'une version précoce de l'installateur consul_exporter ; maintenant déplacé vers William-Yeh.consul_exporter.
- Musee Ullah
Licence
Licence MIT. Voir le fichier LICENSE pour des détails.
ansible-galaxy install William-Yeh.prometheus