26 avril 2024

Tuto monitoring Prometheus, partie II : Node Exporter, le collecteur de métriques systèmes

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 !

4 réflexions sur « Tuto monitoring Prometheus, partie II : Node Exporter, le collecteur de métriques systèmes »

    1. Si tu as des idées, n’hésite pas… J’ai déjà quelques brouillons, mais j’écoute aussi les demandes des lecteurs.

      1. 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.

        1. En effet, un cluste Kubernetes, ca se supervise très bien avec Prometheus.
          A vrai dire, tout se supervise bien avec 😉

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *