Projet PAINS : Grafana et Prometheus ( et les nodes_exporter.......) | partie 15

Projet PAINS : Grafana et Prometheus ( et les nodes_exporter.......) | partie 15

Bonjour à tous !

Après plusieurs semaines sans avoir touché à mon proxmox. On retourne enfin dessus ! 
Déja une première bonne nouvelle, ne pas y avoir touché pendant 10 semaines veut dire que ce qui est installé est plutôt fiable, coté matériel comme logiciel.
Deuxième bonne nouvelle, nous avons récupérer la carte graphique, ce qui veut dire que peut-etre un jour, nous pourrons enfin installer des services IA. 

Maintenant que les services "utilisateurs" sont installés et fonctionnent sans souci, nous pouvons nous attaquer aux services "de maintenance". 
Dans cette liste de services de maintenance à installer, nous avons : 
- le service de monitoring, que nous allons installer dans cet article
- le service de sauvegarde, pour que si j'ai un souci avec le proxmox ou une VM, j'ai une backup
- le service de notification, pour notifier

 

Mais à cet instant T, on commence par le monitoring.

 

ça fait quelques temps que je regarde quelle solution utiliser. 

En tant que particulier, ou personne ne voulant pas utiliser une solution propriétaire, nous avons moult choix de solutions open-source: Zabbix (essayé en cours ), Grafana, Pulserelay , checkmk, Centreon (essayé en cours ), Cockpit... 
Oui j'ai bien fouillé pour voir le plus de solutions possibles, et merci aux développeurs de laisser des versions de démo pour qu'on puisse voir ce que vaut votre produit. 

Mais après un grand tri, et une dernière bataille entre Grafana et Pulserelay, j'ai décidé de prendre Grafana. 
après rien n'est encore perdu pour les autres services, peut-etre que grafana va avoir un souci, et je changerai de crèmerie comme avec pufferpanel.

Donc après une journée de tutoriels et documentations, je vois ce qu'il faut faire. 

Grafana est simplement une "afficheuse" des informations récupérées.
Ces informations doivent être récupérées par quelqu'un d'autre. Cette autre, c'est Prometheus.
Mais Prometheus ne récupère les informations que si les VM; dont je veux récupérer ces informations; ont une "node_exporter".

Donc nous allons commencer par installer Prometheus, puis ensuite faire un script pour installer les node_exporter sur chaque VM. Nous n'allons pas nous embêter à faire la manip à chaque VM. j'en ai 9 actuellement, et plus prochainement, autant avoir un script, pour gagner du temps par la suite.

 

Prometheus

Nous allons commencer par installer Prometheus sur une VM debian 13. 
Après reflexion, grafana sera installé sur une autre VM, ce qui fait que je pourrais changer d'interface sans devoir tout changer, si un jour je veux changer grafana par un autre GUI.

Voici la VM de Prometheus :

Elle contient en plus une partition de 200go, du même HDD que syncthing. d'après mes calculs, à part si syncthing doit synchroniser un gros fichier, ou que Prometheus reçoit soudainement un gros paquet d'information, le HDD sera assez rapide. 
Mais cela veut dire qu'il reste encore 600go de place sur le HDD pour d'autres services, il va peut-etre falloir le passer sous SSD si ça continue...

On a plusieurs moyens d'installer Prometheus : 
- par docker : rien contre docker mais je n'ai pas la "vision" (comme disent les jeunes) de cette outil, donc nous oublions
- par compilation des fichiers sur github : C'est marrant à faire mais ça peut être long
- en installant les fichiers binaires : les fichiers sont déjà compilé, plus qu'a mettre au bon endroit

Et c'est avec cette 3ème solution que nous allons l'installer. Il existe aussi avec un apt, mais la version présente est celle en LTS, donc en 2.53.3. Nous sommes en 3.11.3 au moment où j'écris ces lignes.

Sur notre VM, on télécharge notre .tar.gz et nous le dezippons :

wget https://github.com/prometheus/prometheus/releases/download/v3.11.3/prometheus-3.11.3.linux-amd64.tar.gz
tar xvf prometheus-3.11.3.linux-amd64.tar.gz

Et maintenant, il faut mettre tout les fichiers décompressés au bon endroit.
De ce que j'ai compris, on peut laisser tout au même endroit, mais le fait de mettre chaque fichier dans le bon dossier, rend l'installation plus propre et facile à utiliser pour Debian.

Donc voici les commandes suivantes : 

mv prometheus /usr/local/bin/prometheus
mv promtool /usr/local/bin/promtool
mv prometheus.yml /etc/prometheus/prometheus.yml
 

Nous devons ensuite créer un fichier dans systemd pour pouvoir le démarrer.
Mais par propreté du système, nous allons créer un user spécialement pour prometheus. Nous rentrons donc la commande  : 

useradd --no-create-home prometheus

Puis nous devons monter le disque virtuel pour qu'il puisse y mettre les données.

mkdir /mnt/dossier
mkfs.ext4 /dev/vda
mount /dev/vda /mnt/pro
blkid (pour récupérer le UUID )
nano /etc/fstab

Et on rajoute la ligne UUID=xxxx-xxxx-xxxx-xxxx  /mnt/dossier  ext4  defaults  0  2

Ensuite nous donnons les permissions des fichiers prometheus à cette utilisateur prometheus. 

chown prometheus:prometheus /etc/prometheus
chown prometheus:prometheus /mnt/dossier
chown prometheus:prometheus /usr/local/bin/prometheus
chown prometheus:prometheus /usr/local/bin/promtool

Et nous ajoutons le service à systemd avec :

nano /etc/systemd/system/prometheus.service

puis nous rentrons les informations suivantes :

[Unit]
Description=Prometheus
Documentation=https://prometheus.io/docs/introduction/overview/
After=network.target

[Service]
User=prometheus
Group=prometheus
Restart=on-failure
ExecStart=/usr/local/bin/prometheus \
--config.file=/etc/prometheus/prometheus.yml \
--storage.tsdb.path=/mnt/dossier #le dossier de la partition rajouté

[Install]
WantedBy=multi-user.target

Nous démarrons ensuite prometheus aveec systemd :

systemctl daemon-reexec
systemctl daemon-reload
systemctl enable prometheus
systemctl start prometheus
systemctl status prometheus

Le service fonctionne !

Nous pouvons faire un ss -lnupt pour voir que prometheus à ouvert le port 9090.
Nous pouvons ensuite aller sur un navigateur, dans le même réseau que la VM de prometheus et voir sa page.

Nous avons la page !

Maintenant, il faut installer les node_exporter sur chaque VM. 

 

 

 

 

Donc l'installation de node_exporter custom :

Bizarrement, nous allons commencer par Nextcloud.
Depuis la version 33, Nextcloud a son propre node_exporter, ce qui fait que je n'ai rien à installer sur mon Nextcloud.
Donc nous allons l'ajouter à notre prometheus. 
Pour cela, nous nous rendons dans son fichier de configuration, soit /etc/prometheus/prometheus.yml , et nous rajoutons un job_name :

  - job_name: "nodes"
    static_configs:
      - targets:
        - "IP:port"
        labels:
          app: "node"

IP:port sont l'ip et le port de la VM dont on veut récupérer les informations.

Et sur notre VM nextcloud, ajouter dans sa configuration à /var/www/nextcloud/config/config.php , la ligne : 

'openmetrics_allowed_clients' => [

'192.168.0.0/16',
],

et voici le résultat :

Il faut faire attention avec Nextcloud, les metrics passent par le même port configuré dans Apache2 ( ou Nginx ).

 

 

 

 

OPNsense

OPNsense a une node exporter de base, avec le strict minimum, mais il y a un projet GIT-HUB qui permet de récupérer les informations d'API natif de OPNsense pour les envoyer sur prometheus, ce qui est parfaitement ce qu'on veut. Mais nous allons d'abord installer celui de base, qui reste quand même nécessaire, malgré le projet github. Je me suis aider de ce tuto youtube pour l'installation.

Donc on commence par se rendre sur le GUI OPNsense et nous allons dans Système / Micrologiciel / Greffons ( plugins si vous l'avez laissé en anglais ). 
Et nous cherchons le plugin " os-node-exporter " ( il faut cocher "afficher les plugins de la communauté ")

Surligné avec précision

 

Ensuite, nous descendons dans l'onglet " Services" et nous cliquons sur la nouvelle page "Explorateur prometheus" :

Pour la sécurité, nous pouvons mettre en adresse d'écoute, l'ip de OPNsense dans le LAN, pour que tout le monde n'ait pas accès aux données. Et ensuite on coche tout. Nous voulons de la Data, alors on prend tout ce qu'on peut monitorer.

Ensuite nous nous rendons dans la partie Système / Utilisateurs et nous créons un nouvel utilisateur. Cet utilisateur va être utilisé par le node custom pour récupérer les infos.

A la création du compte, nous pouvons être flemmard et lui donner tout les droits. Ou lire la documentation sur Github, qui indique quelles permissions a besoin le compte : 

Et ensuite, on appuie sur "créer et télécharger la clé API pour cet utilisateur"

Et il va nous téléchager le fichier contenant la KEY et le "SECRET" du compte. Ce sont ces deux valeurs que nous allons mettre dans le node exporter OPNsense un peu plus bas dans cette page.

Nous pouvons ensuite installer le deuxième node_exporter qui lui, est custom.
Le github du projet ( le lien en cliquant ICI )  nous indique comment l'installer sur docker et docker composer.


Sauf que je suis anti-docker. Pas à ce point extrémiste mais je ne vois pas l'utilité de Docker dans mon serveur et donc pour l'instant, si je peux ne pas l'installer, je ne le fais pas. Mais un jour je devrais l'installer pour pufferpanel, mais on verra plus tard, là on est sur Node_exporter.

Ce node_exporter custom peut être installé sur une machine autre que celle de OPNsense, donc nous allons le mettre sur une LXC proxmox. Ne servant qu'à récupérer les information, pas besoin de faire une grosse VM. Et si d'autres node_exporter custom ont besoin d'une machine à part, nous pourront utiliser celle ci.

Une petite LXC sous debian13, pas besoin de grosses performances, ne faisant que scraper chez OPNsense pour être scrapé par Prométheus.
Il est vrai que j'aurais pu mettre cette node dans la VM prometheus, mais autant mettre les nodes ensembles, si une doit faire crash la VM, qu'elle ne fasse pas crash tout le système.

Donc, nous passons à l'installation.

Nous allons créer un nouvel utilisateur pour cette node : 

useradd --no-create-home --shell /bin/false opnsense_node

Vous pouvez l'appeller comme vous voulez, faudra juste s'en souvenir pour le mettree dans le fichier de configuration plus tard.


Pour cela, nous téléchargeons le Binaire de la node_exporter custom sur la LXC : 

wget https://github.com/AthennaMind/opnsense-exporter/releases/download/v0.0.14/opnsense-exporter_Linux_x86_64.tar.gz
tar xvf opnsense-exporter_Linux_x86_64.tar.gz
mv opnsense-exporter /usr/local/bin/
chmod +x /usr/local/bin/opnsense-exporter

Théoriquement, on peut mettre ces fichiers où on veut, mais ça fait plus propre et ça coûte pas trop cher en temps.

Et nous créons le fichier de démarrage pour systemd :

nano /etc/systemd/system/opnsense-exporter.service

On peut l'appeler n'importe comment, mais j'ai repris le nom du projet pour le trouver plus facilement au besoin

Et on colle ça dans le fichier : 

[Unit]
Description=OPNsense Exporter
After=network.target

[Service]
User=opnsense-exporter
Group=opnsense-exporter
ExecStart=/usr/local/bin/opnsense-exporter \
  --opnsense.protocol=https \ 
  --opnsense.address=IP_OPNSENSE \
  --opnsense.api-key=LA_KEY \
  --opnsense.api-secret=LE_SECRET \
  --opnsense.insecure \
  --exporter.instance-label=opnsense

Restart=always

[Install]
WantedBy=multi-user.target

Si pour acceder au OPNsense, vous utiliser le HTTP et non le HTTPS, changer la ligne opnsense.protocol .
Et donc on met la KEY et le SECRET récupérer précedemment dans ce fichier.

Et nous pouvons démarrer cette node, voir si les configurations sont bonnes : 

systemctl daemon-reload
systemctl enable opnsense-exporter
systemctl start opnsense-exporter
systemctl status opnsense-exporter

Et ça marche ! 
( et faite attention à bien télécharger la version x86_64 et non arm64, ça ne marche, j'ai testé pour vous... )

Donc maintenant, nous pouvons ajouter les deux nodes à prometheus, dans /etc/prometheus/prometheus.yml .

( il y a un s à la fin de static_configs et deux espaces en trop a labels et app )

Et ça marche ! 

 

 

 

 

 

Syncthing 

il n'y a pas de sens défini, c'est en fonction de qui apparait en premier dans les recherches google. 
Donc maintenant la node_exporter de Synthing .

Bonne nouvelle, elle est incluse par défaut

Dans l'URL nomdedomaine.fr/metrics il est déjà présent et actif, visible seulement si nous sommes connectés.
Donc nous n'avons qu'à aller sur le fichier de configuration de Prometheus... Enfin presque. Il va d'abord falloir se connecter sur le GUI ( ou par CLI ) pour récupérée la clé d'API pour que prometheus est le droit d'aller sur la page metrics. 

Pour cela, par le GUI, il suffit d'aller sur ACTION / configuration et nous avons l'API

Et dès que la clé est récupéré, nous pouvons aller sur prometheus.
nous rentrons dans le fichier de configuration, les lignes suivantes : 

- job_name: "syncthing"
scheme: http
authorization:
type: Bearer
credentials: "LA_CLE_API"
static_configs:
- targets:
- "IPsyncthing:8384"

étant dans un réseau local, il passe en http, donc j'ai moins de lignes à écrire que si j'aurais mis du HTTPS partout.

Un nouveau de rajouté.

 

 

 

 

 

Apache2

Et oui, le site dont vous lisez ces lignes est hébergé aux même endroit que les autres. Donc même punition
L'installation est plus simple puisuq'on peut le faire avec un :

apt install prometheus-apache-exporter

Ensuite on peut faire un :

ss -lnupt

Et voir que nous avons bien un port ouvert : 

Maintenant, nous pouvons l'ajouter à prometheus, dans son fichier de configuration.

Dans la documentation du node_exporter sur github, j'ai lu qu'il est mieux de mettre "apache" pour le job_name pour les dashboard grafana.

Petite astuce : pour vérifier si votre fichier de configuration est bon, vous pouvez rentrer la commande suivante : 

promtool check config /etc/prometheus/prometheus.yml

Avant de restart le service, vous pouvez savoir si la syntaxe est bonne ou non.

C'est bon, ça marche !

 

 

 

 

 

Myspeed

Notre service de speedtest est superbe. il a nativement un node_export intégré. Il nous suffit juste de rentrer son IP /api/prometheus/metrics

Merci à cette issue pour la config.

Et ça marche !

 

 

 

 

 

Proxmox

La partie la plus sensible de l'infrastructure. Proxmox n'a pas de node_exporter natif, seulement un projet github mis à jour assez souvent.
Donc nous n'allons pas l'installer directement sur Proxmox. Il sera installé dans le LXC créé un peu plus haut dans le lan. Nous ferons ensuite une règle dans le OPNsense pour pouvoir laisser la LXC scraper les métrics proxmox. 

Pour cela, nous allons d'abord sur le proxmox. Pour récupérer les informations depuis l'API proxmox, il faut un compte. Même si la cybersécurité n'est pas mon fort, je ne vais pas mettre le compte root par simplicité. 
Nous allons donc créer un compte dédié pour cet objectif.

Pour cela, nous allons dans l'onglet au dessus du PVE ( le datacenter ), puis à l'onglet "Users". Nous cliquons sur "add"

Ensuite, nous donnons des permissions à ce nouvel utilisateur. On se rend sur "permissions" juste au dessus, puis nous cliquons sur "add" et "user permission" .

Pour le Path, nous mettons la racine, et le role sur "PVEAuditor". Cet utilisateur n'aura pas besoin de plus de permission. 
Puis nous appuyons sur "add".

Et maintenant, il faut un mot de passe pour ce compte. Proxmox étant bien fait, l'onglet qui nous intéresse est juste en dessous, "API tokens".
Nous appuyons sur "add", puis nous selectionnons le compte pour le node_exporter. 

on met un token ID et on décoche "privilege Separation". 
privilege Separation permet de mettre des permissions spécifiques à ce token. Dans mon cas, les bonnes permissions ont déjà été mises, donc pas besoin de s'embêter avec cela. 

 On appuie sur add et nous nous retrouvons avec ceci :

Oui, la capture ne vient pas de moi, mais de cette vidéo

Proxmox nous donne un token ID regroupant le user et le tokenID écrit juste avant, et le "secret". C'est le mot de passe du compte, donc il ne faut pas le montrer à d'autres personnes.

Copier bien la clé secrète, dès que vous quittez la page, vous ne la reverrez plus jamais.

Nous avons fini avec cette parti, maintenant nous allons sur notre LXC regroupeuse de node_exporter.

Il faut avant tout que notre LXC ( ou VM si vous préférez, ou même docker, mais là c'est bien trop différent ) est python 3.9 et pip pour pouvoir installer cette node exporter.
pour installer les deux : 

apt install python3 python3-pip python3-venv

J'ai lu que pip avait tendance à casser quand il était entouré d'autres, et donc qu'il est mieux de le "confiner". Pour cela que j'ai installer python-venv

Pour le confiner, nous allons créer un dossier et nous mettre dedans: 

mkdir /opt/pve-exporter
cd /opt/pve-exporter

ensuite, nous créeons l'environnement venv, et nous l'activons

python3 -m venv venv
source venv/bin/activate

Et nous pouvons installer l'exporter PVE : 

python3 -m pip install prometheus-pve-exporter



En rentrant cette commande, nous pouvons vérifier si la node_exporter est bien installé : 

pve_exporter --help



C'est bien le cas !
Ensuite, nous devons créer un user pour ce service. On ressort la même commande que pour le OPNsense

useradd --no-create-home --shell /bin/false pve_node

Maintenant, son fichier de configuration. Pour cela, nous allons créer un dossier et son fichier : 

mkdir /etc/pve-exporter
nano /etc/pve-exporter/pve.yml

Et dedans nous mettons ceci : 

default:
    user: prometheus@pve  #le nom du user dans proxmox
    token_name: "your-token-id"
    token_value: "le_long_token"
verify_ssl: false #si la liaison entre les deux machine est en http. Sinon mettez true
host: 192.168.15.250

Et ensuite, nous pouvons enfin le démarrer avec systemd. Pour cela, nous créons le fichier de démarrage /etc/systemd/system/pve-exporter.service :

[Unit]
Description=Prometheus exporter for Proxmox VE
Documentation=https://github.com/znerol/prometheus-pve-exporter

[Service]
Restart=always
User=pve_node
ExecStart=/opt/pve-exporter/venv/bin/pve_exporter --config.file /etc/pve-exporter/pve.yml

[Install]
WantedBy=multi-user.target

Et ensuite, les traditionnelles commandes systemctl : 

systemctl daemon-reload
systemctl enable pve-exporter
systemctl start pve-exporter
systemctl status pve-exporter

Ensuite nous allons sur OPNsense.

Sur le coup, il ne voulait pas limiter au port 8006, donc j'ai mis "any" pour tester, mais par la suite, j'ai bloquer pour seulement le port 8006

Maintenant, la config sur prometheus. Et là, il y a du travail.

nous devons ajouter ceci : 

 - job_name: 'pve'
    static_configs:
      - targets:
        - 192.168.1.2  # IP de notre OPNense, qui redirigera vers notre proxmox.
    metrics_path: /pve
    params:
      module: [default]
      cluster: ['1']
      node: ['1']
    relabel_configs:
      - source_labels: [__address__] 
        target_label: __param_target
      - source_labels: [__param_target]
        target_label: instance
      - target_label: __address__
        replacement: 127.0.0.1:9221  # PVE exporter.

ensuite on restart prometheus et....

ça marche ! 

Il est vrai que ça va augmenter le flux à passer dans le OPNsense, mais je n'ai pas trop d'autre moyens, mon Proxmox et mon LAN étant séparé par ce OPNsense. Cela rajoute une couche de sécurité au moins. 

 

 

 

 

 

Caddy

Caddy est sympa, il a lui aussi, il a son node exporter custom. Il faut juste l'activer dans les paramètres. Pour cela, nous allons dans le fichier de configuration caddyfile, et nous ajoutons à la suite : 

http://IPcaddy:port { 
metrics
}

J'ai préféré le mettre en haut du fichier pour faire joli, mais vous pouvez le mettre où vous voulez.

On ajoute l'ip pour que Caddy laisse les metrics en http, si vous voulez que ça passe en https, il ne faut juste pas mettre l'ip et commencer par {.

Ensuite nous allons sur prometheus, ajouter Caddy dans le fichier de config. 

Et ça marche !

 

 

Et donc, il nous reste Rustdesk et Pufferpanel. 
Malheureusement, ils n'ont pas de node exporter custom, et nous devrons nous contenter des node_exporter de base.
Cela nous amène à la deuxième partie de l'installation du projet : un script pour automatiser l'installation d'une node exporter.
Il est vrai que nous pouvons installer le node_exporter de base avec un apt, mais la version est souvent moins à jour que celle sur github, alors autant prendre la version la plus récente

Et donc pendant une petite journée, j'ai fait un petit script, accessible sur Github, pour automatiser l'installation des nodes_exporter
Il fonctionne de la manière suivante :

sur la machine, nous écrivons 3 commandes : 

wget https://raw.githubusercontent.com/Anto23fr/node_exporter-script-installer/refs/heads/main/script.sh
chmod +x script.sh
./script.sh

Il faut bien sûr les bonnes permissions, sinon le script vous le dira... Mon script est assez verbeux....

Il est vrai que l'utilisation de ansible pour automatiser cette action sur toute mes VM est superbe, mais pour des raisons de temps, il va m'être plus rapide de faire par script que de découvrir Ansible ( même si je ne pars pas de zéro, l'aillant vu en cours ).

Pour montrer le fonctionnement de mon script,  nous allons le montrer sur une de mes VM, dans l'exemple c'est la LXC Pufferpanel : 

Il faut peut-etre l'ouvrir dans un nouvel onglet pour bien voir ce qui est écrit

Et ensuite nous allons dans la VM prometheus pour rajouter ce node_exporter :

Et nous pouvons utiliser le script dans toutes nos VM ( sauf prométheus qui l'intègre de base et OPNsense qui a été installé précedément ), puis ajouter une ligne dans le fichier de configuration prometheus.

 

C'est presque beau. 

Le souci vient que j'ai mis les deux node_exporter de la VM myspeed ensemble. Hors l'un est accessible par un lien personnalisé, alors que celui de base, par le chemin de base, soit /metrics. Donc j'ai créé un deuxième "job_name" pour régler le conflit

C'est parfait.
Nous pouvons maintenant passer à l'installation de Grafana....

 

 

 

 

 

Grafana

Grafana sera installé sur une VM avec 2 coeurs et 3go de ram.

pour l'installer sur Debian 13, il faut ajouter le dépot de grafana. Pour cela, il faut suivre la documentation officiel : 

apt install -y apt-transport-https wget gnupg
mkdir -p /etc/apt/keyrings
wget -O /etc/apt/keyrings/grafana.asc https://apt.grafana.com/gpg-full.key
chmod 644 /etc/apt/keyrings/grafana.asc
echo "deb [signed-by=/etc/apt/keyrings/grafana.asc] https://apt.grafana.com stable main" | sudo tee -a /etc/apt/sources.list.d/grafana.list

Et nous pouvons faire un apt update pour vérifier que ça fonctionne

J'ai surligné la ligne qui nous intéresse

Cela fonctionne. Nous pouvons installer Grafana.

Malgré l'installation par paquet, il faut quand même executer des commandes, mais au moins, les mises à jours seront "automatiques" : 

systemctl daemon-reload
systemctl enable grafana-server
systemctl start grafana-server

Et notre Grafana est enfin installé !

Sur une linux graphique dans notre réseau, nous pouvons voir que ça fonctionne : 

Par défaut, les identifiants de connexion sont admin / admin, ce qui fera que la première connexion demandera un changement de mot de passe. Ensuite, nous arrivons sur cette page.

 

Le mot de passe changé, je vais aller sur le reverse proxy Caddy, pour ajouter le nouveau sous domaine qui redirigera vers notre page WEB grafana.

Pour relier Grafana à Prometheus, nous allons dans le panneau latéral, puis "connexion / Ajouter une nouvelle connexion "

Puis nous sélectionnons "Prometheus"
Nous arrivons sur cette page : 

En haut à droite, nous cliquons sur "Ajouter une nouvelle source de données"

 

Nous avons plusieurs paramètres qui se proposent à nous : 

Donc nous rentrons l'ip du serveur de prometheus. Si nous descendons dans la page, nous avons le bouton "enregistrer et tester" . Et juste en rentrant l'ip, les données sont accessibles

Un bon moyen de voir si les metrics sont récupéré est de cliquer sur "vue Explorer". Un nouvel onglet s'ouvre, et nous pouvons choisir une métric à afficher.

On voit du apache, du caddy et 44 pages de variables différentes, c'est qu'il a bien récupérées les données.

Nous pouvons donc faire maintenant les tableaux de bord...
Enfin faire, plutôt les télécharger. Nous avons souvent installer des nodes_exporter custom pour un service particulier. Souvent ces nodes_exporter sont accompagnés de dashboard adaptés.
Et souvent sont disponible sur le site officiel des dashboard grafana : https://grafana.com/grafana/dashboards/

Pour importer un dashboard, nous allons dans l'onglet "tableau de bord" puis "nouveau" , "importer".

Et nous pouvons choisir entre l'ID des dashboard ou son fichier JSON. 
Dans mon cas je vais importer le JSON téléchargé sur la page du dashboard.

Nous lui précisons la source de "data", puis nous appuyons sur "import".

Et ça marche pas trop. Le souci vient que le dashboard utilise les noms de metrics d'un node exporter fait par une personne indépendante, et que moi j'utilise celui mis en place par Nextcloud récemment. Donc soit modifier les métrics du dashboard par les versions Nextcloud, soit faire son propre dashboard. Et j'ai choisis la 2ème solution :

Certains ne le trouveront pas très optimisé, pas très lisible, mais pour mon cas ça me convient, et Grafana permet de personnaliser un maximum les icônes

Donc après ce long article, qui fête un petit peu les 6 mois de ce serveur et les 15 articles dessus, nous allons pouvoir se concentrer sur les examens de fin d'année, puis ensuite attaquer PBS ( proxmox Backup Server )

bonne soirée !

 


Posté le 20 mai 2026 par _Antonin_