Deuxième partie de la série de tutoriels consacrés au monitoring avec Prometheus dans laquelle nous allons mettre en place Node Exporter.
Il va nous permettre d’avoir nos métriques systèmes à disposition. Cpu, Ram, Espace Disque et quantités d’informations bientôt à votre portée !
Pour commencer, nous allons l’installer sur le serveur Prometheus lui même.
I – Installation
Classique :
# cd # wget https://github.com/prometheus/node_exporter/releases/download/v0.18.1/node_exporter-0.18.1.linux-amd64.tar.gz # tar xvf node_exporter-0.18.1.linux-amd64.tar.gz # cd node_exporter-0.18.1.linux-amd64/ # cp node_exporter /usr/local/bin/
Oui, un air de déjà vu…
II – Mise en place
A – A la mimine
Node Exporter n’a pas besoin de fichier de config, il suffit juste de le lancer.
Ceci dit, vous pouvez jeter un œil la : https://github.com/prometheus/node_exporter et constater que par défaut, beaucoup de choses sont activées.
On peut les désactiver en passant l’argument –no-collector.<name>. Par ex : –no-collector.zfs.
Au contraire, d’autres sondes sont désactivées, on peut alors les activer avec –collector.<name>.
On lance avec, par exemple :
# node_exporter --no-collector.zfs --no-collector.pressure
A vous d’affiner ce qu’il vous faut ou non.
Ça se lance ? Parfait, alors on met ça en service.
B – En Service
La routine :
# useradd --no-create-home --shell /bin/false node_exporter # chown node_exporter:node_exporter /usr/local/bin/node_exporter
On créer le fichier /etc/systemd/system/node_exporter.service :
[Unit] Description=Node Exporter Wants=network-online.target After=network-online.target [Service] User=node_exporter Group=node_exporter Type=simple ExecStart=/usr/local/bin/node_exporter \ --no-collector.zfs \ --no-collector.pressure [Install] WantedBy=multi-user.target
Et ensuite :
# systemctl daemon-reload # systemctl enable node_exporter.service # service node_exporter start
Puis :
# service node_exporter status
C – Un peu de ménage
# cd # rm node_exporter-0.18.1.linux-amd64 -r # rm node_exporter-0.18.1.linux-amd64.tar.gz
D – Prometheus
La configuration dans Prometheus est déjà en place. Pour mémoire, dans le fichier /etc/prometheus/prometheus.yml :
- job_name: 'systems' static_configs: - targets: ['localhost:9100']
Il suffit ensuite d’aller voir dans son interface Web, et la target doit être Up.
III – Rajout d’un serveur à monitorer
Pour rajouter un serveur, rien de compliqué.
Vous installez Node Exporter comme on vient de le faire.
Puis dans la configuration de Prometheus, dans le fichier /etc/prometheus/prometheus.yml vous rajoutez la nouvelle target dans le job dédié à Node Exporter. Par exemple :
scrape_configs: [...] - job_name: 'systems' static_configs: - targets: ['localhost:9100','monautreserveur:9100']
On peut aussi tout à fait créer un nouveau job si besoin est. Et l’on peut aussi filtrer les métriques :
scrape_configs: [...] - job_name: 'newjob' static_configs: - targets: ['montruc:9100'] params: collect[]: - nfs - nfsd
Pour le nommage du serveur, avoir un DNS est pratique, car si vous donnez des IPS, ce sont ces dernières qui apparaitront comme label.
Je reviendrais cependant sur ce point plus tard. Et si vous n’avez pas de DNS, suivez le guide alors…
Puis pour terminer, on recharge :
# curl -X POST http://localhost:9090/-/reload
et la nouvelle target apparait bien dans l’interface web.
IV – Utilisation
On peut déjà tester avec curl :
# curl -s "monautreserveur:9100/metrics"
Et l’on voit toutes les métriques.
Ensuite, dans l’interface Web de Prometheus, on peut tester une requête, par exemple : node_cpu_seconds_total, et l’on obtient la métrique sur l’ensemble des serveurs surveillés.
Pour voir une machine en particulier : node_cpu_seconds_total{instance= »monautreserveur:9100″}
Ici, l’important est de voir que ça fonctionne, on reviendra sur les requêtes dans Grafana.
V – Conclusion
La aussi, très rapide à mettre en place et pas compliqué pour un sous.
Et pour visualiser tout cela au mieux, nous allons maintenant passer à l’installation de Grafana pour exploiter aux mieux ces nouvelles données et se faire de jolies Dashboards avec plein de jolies courbes !
Envie de me soutenir et de me payer un café ? C’est sur la page Don !
Nickel
Pas de souçi, Hâte d’en découvrir plus
Si tu as des idées, n’hésite pas… J’ai déjà quelques brouillons, mais j’écoute aussi les demandes des lecteurs.
Mon objectif en suivant ton tutos était d’avoir une infra fonctionnelle avec laquelle je puisse comprendre le fonctionnement de prometheus. L’idée étant de superviser des clusters kubernetes : outils de choix par excellence semble t il pour ce type de supervision.
En effet, un cluste Kubernetes, ca se supervise très bien avec Prometheus.
A vrai dire, tout se supervise bien avec 😉