# 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** :

```bash
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 **Enable** → **Save**

*[![](https://book.clement-hervouet.fr/uploads/images/gallery/2026-05/scaled-1680-/image-1779262532568.png)](https://book.clement-hervouet.fr/uploads/images/gallery/2026-05/image-1779262532568.png)
            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
  
[![](https://book.clement-hervouet.fr/uploads/images/gallery/2026-05/scaled-1680-/image-1779262697615.png)](https://book.clement-hervouet.fr/uploads/images/gallery/2026-05/image-1779262697615.png)
*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.
[![](https://book.clement-hervouet.fr/uploads/images/gallery/2026-05/scaled-1680-/image-1779262980307.png)](https://book.clement-hervouet.fr/uploads/images/gallery/2026-05/image-1779262980307.png)[![](https://book.clement-hervouet.fr/uploads/images/gallery/2026-05/scaled-1680-/image-1779262864485.png)](https://book.clement-hervouet.fr/uploads/images/gallery/2026-05/image-1779262864485.png)
*Image : Configuration générale NET-SNMP*

### 2.5 Créer l'utilisateur SNMPv3

**Services > Net-SNMP > Users** → **Add**

| Champ | Valeur |
|---|---|
| Username | `centreon` |
| Auth Type | `SHA` |
| Auth Password | `VotreMotDePasse!` |
| Priv Type | `AES` |
| Priv Password | `VotreMotDePasse!` |
| Access | `Read Only` |

→ **Save**
[![](https://book.clement-hervouet.fr/uploads/images/gallery/2026-05/scaled-1680-/image-1779263021934.png)](https://book.clement-hervouet.fr/uploads/images/gallery/2026-05/image-1779263021934.png)
*Image : Création de l'utilisateur SNMPv3 dans NET-SNMP*

### 2.6 Créer la règle pare-feu

**Pare-feu > Règles > LAN_MNGT** → **Ajouter**

| Champ | Valeur |
|---|---|
| Action | Pass |
| **Protocol** | **UDP** ← important, pas TCP |
| Source | IP du serveur Centreon |
| Destination | `This Firewall` |
| Port destination | `161` |
| Description | `SNMP Centreon` |

→ **Save** → **Apply Changes**

[![](https://book.clement-hervouet.fr/uploads/images/gallery/2026-05/scaled-1680-/image-1779263332025.png)](https://book.clement-hervouet.fr/uploads/images/gallery/2026-05/image-1779263332025.png)
*Image : Règle pare-feu UDP/161 sur LAN_MNGT*

### 2.7 Vérifier que NET-SNMP tourne

**Diagnostics > Command Prompt** :

```bash
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

```bash
sudo apt install -y snmpd snmp
```

### 3.2 Modifier le fichier de configuration

```bash
sudo systemctl stop snmpd
sudo nano /etc/snmp/snmpd.conf
```

Modifiez les lignes suivantes :

```conf
# 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

```bash
echo "createUser centreon SHA VotreMotDePasse! AES VotreMotDePasse!" | sudo tee -a /var/lib/snmp/snmpd.conf
```

Démarrez le service :

```bash
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

```bash
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 :

```bash
# 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 :

```bash
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 > Checks** → **Add**

| Champ | Valeur |
|---|---|
| Command Name | `pfsense_check` |
| Command Type | `Check` |

**Command Line :**

```bash
/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 > Checks** → **Add**

| Champ | Valeur |
|---|---|
| Command Name | `pfsense_interfaces` |
| Command Type | `Check` |

**Command Line :**

```bash
/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 > Checks** → **Add**

| Champ | Valeur |
|---|---|
| Command Name | `linux_snmp_check` |
| Command Type | `Check` |

**Command Line :**

```bash
/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 > Templates** → **Add**

| Champ | Valeur |
|---|---|
| Name | `TMPL-SNMP-Custom` |
| Alias | `Hôte SNMP v3` |
| Check Command | Laisser vide |

→ **Save**

[![](https://book.clement-hervouet.fr/uploads/images/gallery/2026-05/scaled-1680-/image-1779263727486.png)](https://book.clement-hervouet.fr/uploads/images/gallery/2026-05/image-1779263727486.png)
*Image : Création du template hôte dans Centreon*

### 6.2 Créer l'hôte

**Configuration > Hosts > Hosts** → **Add**

| 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 **Macros** → **Custom 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.
[![](https://book.clement-hervouet.fr/uploads/images/gallery/2026-05/scaled-1680-/image-1779265614447.png)](https://book.clement-hervouet.fr/uploads/images/gallery/2026-05/image-1779265614447.png)
*Image : Macros SNMPv3 configurées sur l'hôte pfSense*

---

## 7 — Création des services

### 7.1 Ajouter un service

**Configuration > Services > Services by host** → **Add**

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 :

```bash
# 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

```bash
# 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**