Skip to main content

Ajout d'un hôte et configuration

Supervision avec Centreon — Ajout d'un hôte et configuration

Projet SIGACS — BTS CIEL — Lycée Saint Joseph La Salle Lorient


1 — Prérequis

Avant de commencer, assurez-vous que :

  • Centreon est installé et accessible via l'interface web
  • Les équipements à superviser sont joignables depuis le serveur Centreon
  • Le protocole SNMP est activé sur les équipements cibles

Voici le plan d'adressage utilisé dans le projet SIGACS :

Hôte IP Rôle
Serveur Centreon 192.168.42.132 Supervision
pfSense 192.168.42.129 Firewall / Routeur
Serveur Broker 192.168.42.66 Broker MQTT
Serveur Web 192.168.42.131 Serveur Web

2 — Configuration SNMPv3 sur pfSense

2.1 Pourquoi NET-SNMP ?

Le SNMP natif de pfSense ne supporte que SNMPv2c. Pour utiliser SNMPv3 (chiffrement AES + authentification SHA), il est nécessaire d'installer le paquet NET-SNMP.

⚠️ Prérequis : pfSense version 2.7.2 minimum — les versions antérieures utilisent OpenSSL 1.x incompatible avec NET-SNMP.

Vérifiez votre version OpenSSL depuis Diagnostics > Command Prompt :

openssl version
# Doit retourner : OpenSSL 3.x.x

2.2 Désactiver le SNMP natif

Avant d'installer NET-SNMP, désactivez le SNMP natif pour éviter tout conflit sur le port UDP/161 :

Services > SNMP → décocher EnableSave

Image : Interface pfSense — Désactivation du SNMP natif

2.3 Installer NET-SNMP

System > Package Manager > Available Packages

  • Rechercher : net-snmp
  • Cliquer sur Install
  • Confirmer l'installation

Image : Package Manager pfSense — Installation de NET-SNMP

2.4 Configurer NET-SNMP

Services > Net-SNMP > General

Champ Valeur
✅ Enable snmpd Cocher
Liaison d'interface Cliquer + Ajouter → Transport : UDP, IP : vide, Port : vide
System Location Salle-Formation
System Contact admin@sigacs.com

Note : Laisser l'IP vide permet à NET-SNMP d'écouter sur toutes les interfaces, y compris LAN_MNGT. Image : Configuration générale NET-SNMP

2.5 Créer l'utilisateur SNMPv3

Services > Net-SNMP > UsersAdd

Champ Valeur
Username centreon
Auth Type SHA
Auth Password VotreMotDePasse!
Priv Type AES
Priv Password VotreMotDePasse!
Access Read Only

Save Image : Création de l'utilisateur SNMPv3 dans NET-SNMP

2.6 Créer la règle pare-feu

Pare-feu > Règles > LAN_MNGTAjouter

Champ Valeur
Action Pass
Protocol UDP ← important, pas TCP
Source IP du serveur Centreon
Destination This Firewall
Port destination 161
Description SNMP Centreon

SaveApply Changes

Image : Règle pare-feu UDP/161 sur LAN_MNGT

2.7 Vérifier que NET-SNMP tourne

Diagnostics > Command Prompt :

sockstat -4 | grep 161

Résultat attendu :

root  snmpd  ...  udp4  *:161  *:*

⚠️ Si vous voyez bsnmpd au lieu de snmpd → le SNMP natif est encore actif. Retournez dans Services > SNMP et désactivez-le.


3 — Configuration SNMPv3 sur Ubuntu Server

3.1 Installer l'agent SNMP

sudo apt install -y snmpd snmp

3.2 Modifier le fichier de configuration

sudo systemctl stop snmpd
sudo nano /etc/snmp/snmpd.conf

Modifiez les lignes suivantes :

# Informations système
sysLocation    location
sysContact     email 
sysServices    

# Écoute sur toutes les interfaces (nécessaire pour Centreon)
agentaddress  0.0.0.0,[::1]

# Vue complète pour CPU, RAM, interfaces
view   systemonly  included   .1

# SNMPv3 — createUser à mettre dans /var/lib/snmp/snmpd.conf
rouser centreon authpriv -V systemonly

includeDir /etc/snmp/snmpd.conf.d

Note : La ligne agentaddress 0.0.0.0 est indispensable. Par défaut, snmpd écoute uniquement sur 127.0.0.1 et Centreon ne peut pas s'y connecter.

3.3 Créer l'utilisateur SNMPv3

echo "createUser centreon SHA VotreMotDePasse! AES VotreMotDePasse!" | sudo tee -a /var/lib/snmp/snmpd.conf

Démarrez le service :

sudo systemctl start snmpd
sudo systemctl enable snmpd

Note : Après le démarrage, la ligne createUser est automatiquement remplacée par une ligne usmUser contenant les clés générées. C'est normal.

3.4 Vérifier que snmpd tourne

sudo ss -ulnp | grep 161

Résultat attendu :

udp  0.0.0.0:161  0.0.0.0:*  users:(("snmpd",...))

4 — Tests de connectivité SNMP

4.1 Test depuis le serveur Centreon

Avant de configurer Centreon, vérifiez que la communication SNMP fonctionne :

# Test pfSense
snmpwalk -v3 -u centreon -l authPriv -a SHA -A "VotreMotDePasse!" -x AES -X "VotreMotDePasse!" 192.168.42.129 .1.3.6.1.2.1.1.1.0

# Test Ubuntu
snmpwalk -v3 -u centreon -l authPriv -a SHA -A "VotreMotDePasse!" -x AES -X "VotreMotDePasse!" 192.168.42.66 .1.3.6.1.2.1.1.1.0

Résultats attendus :

# pfSense
iso.3.6.1.2.1.1.1.0 = STRING: "pfSense pare-feu.SIGACS.com 2.7.2-RELEASE FreeBSD 14.0-CURRENT amd64"

# Ubuntu
iso.3.6.1.2.1.1.1.0 = STRING: "Linux broker-server 6.8.0-107-generic #107-Ubuntu SMP..."

4.2 Lister les interfaces de pfSense

Cette commande permet de récupérer les index des interfaces, nécessaires pour configurer la supervision des VLANs :

snmpwalk -v3 -u centreon -l authPriv -a SHA -A "VotreMotDePasse!" -x AES -X "VotreMotDePasse!" 192.168.42.129 .1.3.6.1.2.1.2.2.1.2

Résultat sur l'infrastructure SIGACS :

Index Interface Type Statut
1 igb0 WAN up
2 igb1 LAN up
9 igb1.101 VLAN 101 Serres up
10 igb1.102 VLAN 102 Management up

Note : L'index (9, 10...) est utilisé comme argument dans les commandes Centreon pour cibler une interface spécifique.


5 — Création des commandes dans Centreon

5.1 Commande universelle pfSense

Configuration > Commands > ChecksAdd

Champ Valeur
Command Name pfsense_check
Command Type Check

Command Line :

/usr/lib/centreon/plugins/centreon_pfsense.pl --plugin=apps::pfsense::snmp::plugin --mode=$ARG1$ --hostname=$HOSTADDRESS$ --snmp-version='3' --snmp-username='$_HOSTSNMPUSERNAME$' --authprotocol='$_HOSTSNMPAUTHPROTOCOL$' --authpassphrase='$_HOSTSNMPAUTHPASSPHRASE$' --privprotocol='$_HOSTSNMPPRIVPROTOCOL$' --privpassphrase='$_HOSTSNMPPRIVPASSPHRASE$'

Save

Modes disponibles pour pfSense (valeur de ARG1) :

ARG1 Mesure
cpu Charge CPU
memory Utilisation RAM
load Charge système
uptime Temps de fonctionnement
packet-stats Statistiques paquets
swap Utilisation swap

5.2 Commande interfaces pfSense

Configuration > Commands > ChecksAdd

Champ Valeur
Command Name pfsense_interfaces
Command Type Check

Command Line :

/usr/lib/centreon/plugins/centreon_linux_snmp.pl --plugin=os::linux::snmp::plugin --mode=interfaces --hostname=$HOSTADDRESS$ --snmp-version='3' --snmp-username='$_HOSTSNMPUSERNAME$' --authprotocol='$_HOSTSNMPAUTHPROTOCOL$' --authpassphrase='$_HOSTSNMPAUTHPASSPHRASE$' --privprotocol='$_HOSTSNMPPRIVPROTOCOL$' --privpassphrase='$_HOSTSNMPPRIVPASSPHRASE$' --interface='$ARG1$' --add-traffic --add-status --reload-cache-time=0

Save

Note : ARG1 correspond à l'index numérique de l'interface (ex: 9 pour igb1.101, 10 pour igb1.102).

5.3 Commande universelle Linux SNMP

Configuration > Commands > ChecksAdd

Champ Valeur
Command Name linux_snmp_check
Command Type Check

Command Line :

/usr/lib/centreon/plugins/centreon_linux_snmp.pl --plugin=os::linux::snmp::plugin --mode=$ARG1$ --hostname=$HOSTADDRESS$ --snmp-version='3' --snmp-username='$_HOSTSNMPUSERNAME$' --authprotocol='$_HOSTSNMPAUTHPROTOCOL$' --authpassphrase='$_HOSTSNMPAUTHPASSPHRASE$' --privprotocol='$_HOSTSNMPPRIVPROTOCOL$' --privpassphrase='$_HOSTSNMPPRIVPASSPHRASE$'

Save

Modes disponibles pour Linux (valeur de ARG1) :

ARG1 Mesure
cpu Charge CPU
memory Utilisation RAM
load Charge système
uptime Temps de fonctionnement

6 — Ajout d'un hôte dans Centreon

6.1 Créer le template hôte

Configuration > Hosts > TemplatesAdd

Champ Valeur
Name TMPL-SNMP-Custom
Alias Hôte SNMP v3
Check Command Laisser vide

Save

Image : Création du template hôte dans Centreon

6.2 Créer l'hôte

Configuration > Hosts > HostsAdd

Champ Valeur exemple
Name pfsense-fw
Alias pfSense Firewall SIGACS
IP Address 192.168.42.129
Template TMPL-SNMP-Custom
Monitored from Central

Image : Formulaire de création d'un hôte Centreon

6.3 Ajouter les macros SNMPv3

Dans l'onglet MacrosCustom macros :

Macro Valeur Password
SNMPUSERNAME centreon ☐ Non
SNMPAUTHPROTOCOL SHA ☐ Non
SNMPAUTHPASSPHRASE VotreMotDePasse! ✅ Oui
SNMPPRIVPROTOCOL AES ☐ Non
SNMPPRIVPASSPHRASE VotreMotDePasse! ✅ Oui

Save

⚠️ Important : Cochez bien Password pour les mots de passe. Cela les masque dans l'interface et les chiffre en base de données. Image : Macros SNMPv3 configurées sur l'hôte pfSense


7 — Création des services

7.1 Ajouter un service

Configuration > Services > Services by hostAdd

Pour chaque service, renseignez :

Champ Valeur
Host Nom de l'hôte cible
Name Nom du service
Check Command Commande créée à l'étape 5
ARG1 Mode ou index selon la commande

Image : Formulaire de création d'un service Centreon

7.2 Services pfSense

Service Commande ARG1
pfsense-cpu pfsense_check cpu
pfsense-ram pfsense_check memory
pfsense-load pfsense_check load
pfsense-uptime pfsense_check uptime
pfsense-packet-stats pfsense_check packet-stats
pfsense-vlan101 pfsense_interfaces 9
pfsense-vlan102 pfsense_interfaces 10

7.3 Services Ubuntu Server

Service Commande ARG1
broker-cpu linux_snmp_check cpu
broker-ram linux_snmp_check memory
web-cpu linux_snmp_check cpu
web-ram linux_snmp_check memory

Save sur chaque service


8 — Export de la configuration

Après toute modification dans Centreon, il est obligatoire d'exporter la configuration pour qu'elle soit prise en compte par le moteur de supervision.

Configuration > Pollers → sélectionner le poller Central

Cocher les options suivantes :

Option Action
✅ Generate Configuration Files Générer les fichiers de configuration
✅ Run monitoring engine debug Vérifier la validité de la configuration
✅ Move Export Files Déplacer les fichiers vers le moteur
✅ Restart Monitoring Engine Redémarrer le moteur

Export

La console doit afficher :

Total Errors: 0
Restarting engine... OK

⚠️ Si des erreurs apparaissent, ne pas ignorer. Elles indiquent un problème de configuration qui empêchera la supervision de fonctionner correctement.


9 — Tests de validation

9.1 Tester les plugins en ligne de commande

Avant de vérifier dans l'interface, testez les plugins directement depuis le serveur Centreon :

# Test CPU pfSense
sudo -u centreon-engine /usr/lib/centreon/plugins/centreon_pfsense.pl --plugin=apps::pfsense::snmp::plugin --mode=cpu --hostname=192.168.42.129 --snmp-version='3' --snmp-username='centreon' --authprotocol='SHA' --authpassphrase='VotreMotDePasse!' --privprotocol='AES' --privpassphrase='VotreMotDePasse!'

# Test RAM pfSense
sudo -u centreon-engine /usr/lib/centreon/plugins/centreon_pfsense.pl --plugin=apps::pfsense::snmp::plugin --mode=memory --hostname=192.168.42.129 --snmp-version='3' --snmp-username='centreon' --authprotocol='SHA' --authpassphrase='VotreMotDePasse!' --privprotocol='AES' --privpassphrase='VotreMotDePasse!'

# Test CPU Ubuntu
sudo -u centreon-engine /usr/lib/centreon/plugins/centreon_linux_snmp.pl --plugin=os::linux::snmp::plugin --mode=cpu --hostname=192.168.42.66 --snmp-version='3' --snmp-username='centreon' --authprotocol='SHA' --authpassphrase='VotreMotDePasse!' --privprotocol='AES' --privpassphrase='VotreMotDePasse!'

9.2 Résultats attendus

Test Résultat OK
CPU pfSense OK: 1 CPU(s) average usage is X%
RAM pfSense OK: Ram Total: X, Used: X
VLAN101 OK: Interface 'igb1.101' Status : up, Traffic In : X, Traffic Out : X
CPU Ubuntu OK: 1 CPU(s) average usage is X%

9.3 Vérification dans l'interface

Supervision > Resources Status

Tous les hôtes et services doivent afficher le statut OK (vert).

Pour forcer un check immédiat sans attendre le prochain cycle :

  • Sélectionner un service → Forced check

Image : Resources Status — Hôtes et services en statut OK


10 — Dépannage

10.1 Problèmes courants

Erreur Cause probable Solution
SNMP GET Request: Timeout NET-SNMP arrêté ou règle pare-feu manquante Vérifier sockstat -4 | grep 161 sur pfSense
SNMP GET Request: Timeout Règle pare-feu en TCP au lieu de UDP Modifier la règle → Protocol UDP
SNMP GET Request: Timeout agentaddress en 127.0.0.1 sur Ubuntu Modifier en 0.0.0.0 dans snmpd.conf
Unknown user name NET-SNMP redémarré — clés régénérées Recréer l'utilisateur dans Services > Net-SNMP > Users
authorizationError Vue SNMP trop restrictive Remplacer les lignes view par view systemonly included .1
Execute command failed Chemin du plugin incorrect Vérifier avec ls /usr/lib/centreon/plugins/
mode X doesn't exist Mauvais nom de mode dans ARG1 Lister les modes avec --list-mode

10.2 Lister les modes disponibles d'un plugin

# Modes pfSense
/usr/lib/centreon/plugins/centreon_pfsense.pl --plugin=apps::pfsense::snmp::plugin --list-mode

# Modes Linux SNMP
/usr/lib/centreon/plugins/centreon_linux_snmp.pl --plugin=os::linux::snmp::plugin --list-mode

10.3 Vérifier la commande exécutée par Centreon

Dans Supervision > Resources Status, cliquez sur un service en erreur et consultez l'onglet Commande exécutée. Cela permet de voir exactement ce que Centreon envoie au plugin et d'identifier les arguments incorrects.


📅 Document rédigé dans le cadre du projet SIGACS — Session 2026