L’objectif de ce travail était de tester l’outil Prometheus pour remonter les statistiques d’usage des modules EOLE.
Prometheus permet d’agréger et de stocker les métriques collectées par les agents nommés Exporters. Une interface rudimentaire permet de visualiser les données. Un gestionnaire d’alarme permet l’envoi d’alertes aux utilisateurs.
La visualisation des données agrégées peut s’effectuer avec Grafana.
Installation de Prometheus sur Eolebase 2.6.2
Une installation depuis les sources 2.0.0 est un peu laborieuse.
Sur Eolebase Prometheus est empaqueté en version 0.16, la version date un peu.
Le travail de packaging est effectué par ailleurs par un mainteneur : https://github.com/jtyr/prometheus-deb
Installation de curl :
# apt-eole install curl
Ajout du dépôt et installation du paquet Prometheus :
# curl -L https://packagecloud.io/prometheus-deb/release/gpgkey | apt-key add -
# echo 'deb https://packagecloud.io/prometheus-deb/release/ubuntu/ xenial main' > /etc/apt/sources.list.d/prometheus.list
# apt-get update
# apt-get install prometheus
Par défaut il n’y a pas besoin de modifier la configuration /etc/prometheus/prometheus.yml.
Pour démarrer le service Prometheus :
# systemctl start prometheus
En l’état une ouverture du port 9090 est nécessaire pour gagner du temps il est possible de désactiver le pare-feu du module :
# ouvre.firewall
L’application est disponible à l’adresse : http://<adresse_du_serveur>:9090
Les journaux permettent de déboguer la configuration de Promotheus :
# tail -f /var/log/rsyslog/local/prometheus/prometheus.info.log
Installation d’un Exporter sur le serveur lui-même
# apt-eole install prometheus-node-exporter
Il est possible de rafraîchir la configuration à l’aide d’une commande curl.
Rafraîchir la configuration :
# curl -X POST http://localhost:9090/-/reload
La visualisation des données peut se faire dans l’interface, choisir dans le menu déroulant l’information souhaitée et cliquer sur Execute.
Pour afficher sous forme de graphe, cliquer sur Graph.
Les informations du nœud sont disponibles sur le port 9100 : http://<adresse_du_serveur>:9100/metrics
# HELP go_gc_duration_seconds A summary of the GC invocation durations.
# TYPE go_gc_duration_seconds summary
go_gc_duration_seconds{quantile="0"} 0.00039782
go_gc_duration_seconds{quantile="0.25"} 0.00065545
go_gc_duration_seconds{quantile="0.5"} 0.0008008770000000001
go_gc_duration_seconds{quantile="0.75"} 0.000986045
go_gc_duration_seconds{quantile="1"} 0.005430900000000001
go_gc_duration_seconds_sum 3.6383615049999998
go_gc_duration_seconds_count 3921
Installation de Grafana
L’installation peut se faire de plusieurs manières documentés ici : http://docs.grafana.org/installation/debian/
Ajout du dépôt et installation du paquet Grafana :
# curl https://packagecloud.io/gpg.key | apt-key add -
# echo '
deb https://packagecloud.io/grafana/stable/debian/ stretch main' > /etc/apt/sources.list.d/grafana.list
# apt-get update
# apt-get install grafana
Et démarrer le service :
systemctl start grafana-server
L’application est disponible à l’adresse : http://<adresse_du_serveur:3000/
Le compte par défaut pour accéder à l’interface Grafana est admin avec le mot de passe admin.
Ajouter Prometheus comme source de données
Il faut se rendre dans le panneau de configuration : Configuration (icône roue crantée) → Data Sources → + Add data source.
Remplir au minium les champs : Name, Type et URL
Installer un modèle de tableau de bord
Télécharger le modèle Node Exporter Full sous forme de JSON : https://grafana.com/dashboards/1860
Ajouter un tableau de bord : Dashboard (icône +) → import
Ajouter des machines EOLE
Installation de sur chacune des machines 192.168.0.20:9100 et 192.168.0.26 :
# apt install prometheus-node-exporter
# ouvre.firewall
Configuration de Prometheus
scrape_configs: - job_name: 'Prometheus' # metrics_path defaults to '/metrics' # scheme defaults to 'http'. static_configs: - targets: ['localhost:9100'] - job_name: 'EOLE' static_configs: - targets: ['192.168.0.20:9100','192.168.0.26:9100']
Conclusion
Prometheus est relativement simple à mettre en œuvre. La configuration des tableaux de bord est un peu plus complexe. Prometheus pourrait être intégré à la nouvelle application Zéphir pour monitorer les différents serveurs EOLE.
Liens
Installation avec docker :