Aller au contenu

Monitoring de Proxmox

Pour monitorer un serveur Proxmox, il faut créer un stack avec deux conteneurs, le premier est Grafana qui permet de mettre en forme les métriques de son serveur, et de les afficher dans des Dashboards. Il n’est pas facile à configurer mais c’est l’outil le plus complet pour cette tâche. Il faut également un conteneur InfluxDB pour pouvoir extraire les métriques du serveur Proxomox et de les envoyer à Grafana.

Création du docker-compose.yml

1. Créer un dossier Grafana et un fichier docker-compose.yml
mkdir Grafana 
cd Grafana 
nano docker-compose.yml
2. Coller la configuration du docker-compose dans le fichier et l’enregistrer
version: "2"                                             
services:                                                
  grafana:                                               
    image: grafana/grafana                               
    container_name: grafana_container                    
    restart: always                                      
    ports:                                               
      - 3000:3000                                        
    networks:                                            
      - monitoring_network                               
    volumes:                                             
      - grafana-volume:/var/lib/grafana                  
  influxdb:                                              
    image: influxdb                                      
    container_name: influxdb_container                   
    restart: always                                      
    ports:                                               
      - 8086:8086                                        
      - 8089:8089/udp                                    
    networks:                                            
      - monitoring_network                               
    volumes:                                             
      - influxdb-volume:/var/lib/influxdb                
networks:                                                
  monitoring_network:                                    
volumes:                                                 
  grafana-volume:                                        
    external: true                                       
  influxdb-volume:                                       
    external: true                                       
3. Avant de lancer le stack, il faut créer les volumes persistants
docker volume create influxdb-volume
docker volume create grafana-volume
4. Lancer le stack avec docker-compose
docker-compose up -d 
5. Créez le réseau que vont partager les deux conteneurs
docker network create monitoring_network

Configuration de InfluxDB

InfluxDB va nous servir à mettre en forme les métriques du serveur Proxmox, pour qu’ils soient ensuite interpretés par Grafana.

1. Une fois votre stack lancé, connectez vous à InfluxDB qui est accessible à http://localhost:8086

Il faut faire la configuration de base en choisissant un nom d’utilisateur, un mot de passe mais également un nom d’organisation et un nom de bucket.

Je conseille de mettre ‘proxmox’ pour l’organisation et le bucket afin de ne pas avoir de problème par la suite. 

2. Une fois configuré, se rendre dans ‘Data’ puis dans ‘API TOKENS’ pour vérifier que votre token est bien créé.
Capture decran 2023 06 23 091650

Configuration de Proxmox

Il faut maintenant configurer le Proxmox pour qu’il puisse envoyer ses métriques au conteneur InfluxDB.
1. Se connecter à son serveur Proxmox, puis dans Datacenter aller dans l’onglet ‘Serveur de métriques’, cliquer sur ‘Ajouter’ et choisir ‘InfluxDB’
Capture decran 2023 06 23 095828

Il faut ensuite remplir les champs, nommer le métrique, renseigner l’adresse IP de InfluxDB, l’organisation, le bucket et le jeton API. Il faut également modifier le port en 8086 et le protocole en HTTP. 

2. Vérifier que les métriques arrivent bien jusqu’au conteneur InfluxDB en retournant sur la page d’administration dans le ‘Data Explorer’

La page devrait ressemble à quelque chose comme ceci : 

Capture decran 2023 06 23 100233

Configuration de Grafana

La dernière étape est la configuration de Grafana pour ajouter la source de données de InfluxDB et le Dashboard pour Proxmox.

1. Connectez vous Grafana qui est accessible à http://localhost:3000

Les identifiants par défaut sont admin / admin

2. Aller dans ‘Administration’ puis cliquer sur ‘Data sources’
Capture decran 2023 06 23 100829
3. Cliquer sur le bouton ‘+ Add’, et choisir ‘InfluxDB’ dans la liste
Capture decran 2023 06 23 101016
4. Dans le menu déroulant, changez ‘InfluxQL’ en ‘Flux’
Screen Shot 2022 04 27 at 4.23.56 PM
5. Dans ‘HTTP’, mettre l’URL du conteneur InfluxDB, ou le nom du conteneur Influx, ainsi que le port sur lequel on peut le joindre
Capture decran 2023 06 23 101558
6. Dans ‘Auth’, décocher ‘Basic auth’ et cocher ‘Skip TLS Verify’
Capture decran 2023 06 23 101733
7. Dans ‘InfluxDB Details’, renseigner l’organisation, le jeton API et le bucket de InfluxDB.
Capture decran 2023 06 23 101812
8. Valider avec le bouton ‘Save & Test’, vous devriez voir un message disant que 3 buckets ont été trouvés.

Configuration du Dashboard Grafana

1. Pour ajouter le Dashboard Proxmox à Grafana, il faut aller dans le menu ‘Dashboards’, cliquer sur le bouton ‘New’ puis sur ‘Import’
Capture decran 2023 06 23 102536
2. Entrez ‘15356’ puis cliquez sur ‘Load’
3. Quand vous irez sur le Dashboard, vous ne verrez aucune données, c’est normal :
Capture decran 2023 06 23 103007
Il faut en haut, aller sélectionner Proxmox dans le Bucket, et les métriques vont arriver comme par magie ! 😁
Capture decran 2023 06 23 103630