Installation et Chiffrement du Centreon Monitoring Agent (CMA) sur Red Hat Enterprise Linux 9
Dans ce tutoriel complet, nous allons explorer l’installation et la configuration du Centreon Monitoring Agent (CMA) sur Red Hat Enterprise Linux 9 (ainsi que ses clones comme AlmaLinux ou Rocky Linux). Nous couvrirons non seulement l’installation de base, mais également la mise en place d’un chiffrement TLS avec Let’s Encrypt, la gestion de SELinux, le renouvellement automatique des certificats, et la création de sondes personnalisées.
CMA représente l’évolution moderne de la supervision Centreon. Contrairement à NRPE, il fonctionne en mode passif : l’agent envoie activement les données de supervision au collecteur (poller), offrant ainsi une meilleure sécurité et des performances accrues. Le protocole utilisé est OTLP (OpenTelemetry Protocol) sur gRPC, garantissant une communication efficace et sécurisée.
Note importante : Ce tutoriel est basé sur Centreon 24.10. L’utilisation de CMA nécessite une licence IT-100 active dans votre plateforme Centreon. Toutes les commandes sont adaptées pour RHEL 9 et utilisent le gestionnaire de paquets
dnf.Ce tutoriel est principalement validé sur Centreon 24.10 LTS. Pour 25.10+, consultez la doc officielle pour les évolutions (encryption « full », etc.).
Différences entre versions :
- Centreon 24.10 : Utilise
"encryption": trueoufalse- Centreon 25.10+ : Utilise
"encryption": "full","insecure"oufalse- Token d’authentification : Fortement recommandé en 24.10, obligatoire en 25.10+ avec chiffrement
- Le champ
ca_namea été renommé enca_common_namedepuis la version 24.10
Prérequis
- Un serveur Centreon 24.10+ installé sur RHEL 9 (serveur central et poller)
- Un ou plusieurs hôtes à superviser sous RHEL 9
- Accès root (ou sudo) sur toutes les machines
- Licence IT-100 intégrée dans Centreon (via Administration > Licences)
- Un nom de domaine valide pointant vers votre poller (pour Let’s Encrypt)
- Port 80/TCP et 443/TCP ouverts temporairement pour la validation Let’s Encrypt
- Port 4317/TCP ouvert sur le poller pour la communication OTLP
- Connexion Internet sur le poller et les agents
Étape 1 : Configuration Initiale du Serveur Centreon (Interface Web)
Ces opérations se réalisent depuis l’interface web de Centreon.
1.1 Installation du Connecteur de Supervision
- Connectez-vous à l’interface web de Centreon
- Naviguez vers Configuration > Packs de plugins > Gestionnaire
- Dans la barre de recherche, tapez
Linux Centreon Monitoring Agent - Cliquez sur le pack OS-Linux-Centreon-Monitoring-Agent
- Cliquez sur Installer puis confirmez
1.2 Configuration de la Communication Collecteur/Agent
- Allez dans Configuration > Collecteurs > Configurations d’agent
- Cliquez sur + Ajouter
- Nommez la configuration (par exemple :
CMA-Default) - Pour l’instant, laissez le chiffrement désactivé (nous l’activerons plus tard)
- Cliquez sur Sauvegarder
1.3 Ajout des Modèles de Services
- Rendez-vous dans Configuration > Commandes > Connecteurs
- Sélectionnez Centreon Monitoring Agent dans le menu déroulant
- Dans le filtre, recherchez
OS-Linux-Centreon-Monitoring-Agent - Sélectionnez tous les modèles proposés (CPU, Memory, Disk, etc.)
- Cliquez sur Sauvegarder
1.4 Création de l’Hôte Supervisé
- Allez dans Configuration > Hôtes > Hôtes
- Cliquez sur Ajouter
- Remplissez les informations :
- Nom : Le nom de votre serveur (ex:
srv-web-01) - Alias : Description de l’hôte
- Adresse IP/DNS : L’IP ou le FQDN de l’hôte
- Modèles : Sélectionnez
OS-Linux-Centreon-Monitoring-Agent-custom - Collecteur : Choisissez votre poller
- Nom : Le nom de votre serveur (ex:
- Cliquez sur Sauvegarder
1.5 Export de la Configuration
- Allez dans Configuration > Collecteurs > Collecteurs
- Sélectionnez votre poller
- Cochez toutes les options d’export
- Cliquez sur Exporter
- Attendez la fin de l’export
Étape 2 : Installation de l’Agent sur l’Hôte Supervisé
Connectez-vous en SSH sur l’hôte à superviser avec les privilèges root.
2.1 Mise à Jour du Système
dnf update -y
2.2 Installation des Prérequis
dnf install -y dnf-plugins-core ca-certificates curl gpg wget
2.3 Ajout des Repositories Centreon
dnf config-manager --add-repo https://packages.centreon.com/rpm-standard/24.10/el9/centreon-24.10.repo
dnf config-manager --add-repo https://packages.centreon.com/rpm-plugins/24.10/el9/centreon-plugins-24.10.repo
2.4 Import de la Clé GPG Centreon
rpm --import https://packages.centreon.com/centreon.gpg
Note : La clé GPG peut également être référencée automatiquement via le fichier .repo (ligne
gpgkey=). La commande ci-dessus force l’import manuel.
2.5 Installation de l’Agent CMA
dnf clean all
dnf update
dnf install -y centreon-monitoring-agent centreon-plugin-operatingsystems-linux-local
2.6 Activation et Démarrage du Service
systemctl enable centagent
systemctl start centagent
systemctl status centagent
Étape 3 : Configuration de Base de l’Agent
3.1 Configuration du Fichier centagent.json
Éditez le fichier de configuration de l’agent :
vi /etc/centreon-monitoring-agent/centagent.json
Remplacez le contenu par :
{
"log_file": "/var/log/centreon-monitoring-agent/centagent.log",
"log_level": "info",
"log_type": "file",
"log_max_file_size": 10,
"log_max_files": 3,
"endpoint": "<IP_DU_POLLER>:4317",
"encryption": false,
"token": "",
"public_cert": "",
"private_key": "",
"ca": "",
"ca_common_name": "",
"host": "<NOM_HOTE_DANS_CENTREON>",
"reversed_grpc_streaming": false
}
Attention : Remplacez :
<IP_DU_POLLER>par l’adresse IP ou le FQDN de votre poller<NOM_HOTE_DANS_CENTREON>par le nom exact de l’hôte créé dans Centreon (respectez la casse)
Note : Le champ
tokenest laissé vide pour cette configuration initiale sans chiffrement. Il sera renseigné plus tard lors de l’activation du TLS.
3.2 Redémarrage de l’Agent
systemctl restart centagent
3.3 Vérification des Logs
tail -f /var/log/centreon-monitoring-agent/centagent.log
Vous devriez voir des messages indiquant que l’agent tente de se connecter au poller.
Étape 4 : Configuration du Pare-feu
4.1 Sur le Poller
Ouvrez le port OTLP (4317/TCP) :
firewall-cmd --permanent --add-port=4317/tcp
firewall-cmd --reload
firewall-cmd --list-ports
4.2 Sur l’Agent (Sortant)
Normalement, aucune configuration n’est nécessaire pour les connexions sortantes. Si vous avez un pare-feu restrictif :
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" destination address="<IP_DU_POLLER>" port port="4317" protocol="tcp" accept'
firewall-cmd --reload
Étape 5 : Installation et Configuration de Let’s Encrypt
Nous allons maintenant sécuriser la communication entre l’agent et le poller avec un certificat Let’s Encrypt.
5.1 Installation de Certbot sur le Poller
dnf install -y certbot
5.2 Génération du Certificat Let’s Encrypt
Méthode 1 : Standalone (si aucun serveur web n’écoute sur le port 80)
certbot certonly --standalone -d <FQDN_DU_POLLER> --email <VOTRE_EMAIL> --agree-tos --non-interactive
Méthode 2 : Webroot (si Apache ou Nginx est déjà installé)
certbot certonly --webroot -w /var/www/html -d <FQDN_DU_POLLER> --email <VOTRE_EMAIL> --agree-tos --non-interactive
Remplacez <FQDN_DU_POLLER> par le nom de domaine complet de votre poller (ex: poller.example.com).
5.3 Création de la Structure de Répertoires
mkdir -p /etc/pki/centreon
chown root:root /etc/pki/centreon
chmod 755 /etc/pki/centreon
5.4 Copie des Certificats
cp /etc/letsencrypt/live/<FQDN_DU_POLLER>/privkey.pem /etc/pki/centreon/private_key.key
cp /etc/letsencrypt/live/<FQDN_DU_POLLER>/fullchain.pem /etc/pki/centreon/public_cert.crt
5.5 Attribution des Droits
chown centreon-engine:centreon-engine /etc/pki/centreon/public_cert.crt
chown centreon-engine:centreon-engine /etc/pki/centreon/private_key.key
chmod 644 /etc/pki/centreon/public_cert.crt
chmod 600 /etc/pki/centreon/private_key.key
Note : Dans les versions récentes (24.10+ et 25.10), c’est le module OpenTelemetry intégré à Centreon Engine qui lit ces certificats. Le propriétaire attendu est
centreon-engine:centreon-engine. Vous pouvez vérifier quel processus écoute sur le port 4317 avec :ss -tulnp | grep 4317
5.6 Configuration du Chiffrement dans Centreon
- Retournez dans Configuration > Collecteurs > Configurations d’agent
- Éditez votre configuration CMA
- Activez Chiffrement
- Renseignez les chemins :
- Certificat public :
/etc/pki/centreon/public_cert.crt - Clé privée :
/etc/pki/centreon/private_key.key
- Certificat public :
- Sauvegardez
- Exportez à nouveau la configuration du collecteur
5.7 Redémarrage du Service Engine
systemctl restart centengine
Étape 6 : Configuration du Chiffrement sur l’Agent
6.1 Installation des Certificats Racine
Sur l’hôte supervisé :
dnf install -y ca-certificates
update-ca-trust
6.2 Modification de la Configuration de l’Agent
Éditez le fichier /etc/centreon-monitoring-agent/centagent.json :
vi /etc/centreon-monitoring-agent/centagent.json
Modifiez les paramètres suivants :
{
"log_file": "/var/log/centreon-monitoring-agent/centagent.log",
"log_level": "info",
"log_type": "file",
"log_max_file_size": 10,
"log_max_files": 3,
"endpoint": "<FQDN_DU_POLLER>:4317",
"encryption": true,
"public_cert": "",
"private_key": "",
"ca": "/etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem",
"ca_common_name": "<FQDN_DU_POLLER>",
"host": "<NOM_HOTE_DANS_CENTREON>",
"reversed_grpc_streaming": false
}
Points importants :
encryptiondoit être àtrue(pour Centreon 24.10)- Pour Centreon 25.10+ : utiliser
"encryption": "full"au lieu detrue endpointdoit utiliser le FQDN (pas l’IP) pour la validation du certificatca_common_namedoit correspondre au CN du certificat (généralement le FQDN du poller)- Avec Let’s Encrypt, le champ
ca_common_nameest souvent optionnel car le certificat est déjà dans le trust store du système. Vous pouvez le laisser vide ("") ou l’omettre complètement.
Version 25.10+ : Le paramètre
encryptionaccepte désormais les valeurs :"full"(TLS complet avec vérification),"insecure"(TLS sans vérification – déconseillé), oufalse(pas de chiffrement). Préférez toujours"full".
6.3 Configuration du Token d’Authentification
Important : À partir de Centreon 24.10, et obligatoire en 25.10, l’utilisation d’un token d’authentification est fortement recommandée pour sécuriser la communication.
6.3.1 Génération du Token dans Centreon
- Dans Centreon, Allez dans Administration > Authentication tokens, créez un token de type Centreon Monitoring Agent (choisissez une expiration ou aucune), copiez-le.
-
Dans Configuration > Collecteurs > Configurations d’agent, éditez votre config CMA, activez le chiffrement, collez le token dans le champ Authentication token si l’UI le demande, sauvegardez et exportez.
- Copiez ce token (il ressemble à :
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx) - Sauvegardez
6.3.2 Ajout du Token dans centagent.json
Ajoutez le champ token dans votre fichier de configuration :
{
"log_file": "/var/log/centreon-monitoring-agent/centagent.log",
"log_level": "info",
"log_type": "file",
"log_max_file_size": 10,
"log_max_files": 3,
"endpoint": "<FQDN_DU_POLLER>:4317",
"encryption": true,
"token": "<VOTRE_TOKEN_GENERE>",
"public_cert": "",
"private_key": "",
"ca": "/etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem",
"ca_common_name": "",
"host": "<NOM_HOTE_DANS_CENTREON>",
"reversed_grpc_streaming": false
}
Note : Le token est obligatoire dès que le chiffrement est activé sur le poller. Sans token valide, l’agent ne pourra pas s’authentifier.
6.4 Redémarrage de l’Agent
systemctl restart centagent
systemctl status centagent
6.5 Vérification de la Connexion Chiffrée
tail -f /var/log/centreon-monitoring-agent/centagent.log
Vous devriez voir des messages confirmant la connexion TLS réussie.
Étape 7 : Renouvellement Automatique des Certificats Let’s Encrypt
Let’s Encrypt génère des certificats valables 90 jours. Il est crucial de mettre en place un renouvellement automatique.
7.1 Test du Renouvellement
certbot renew --dry-run
Cette commande simule le renouvellement. Si tout fonctionne, vous verrez un message de succès.
7.2 Création d’un Script de Post-Renouvellement
Créez le script suivant pour copier automatiquement les certificats après renouvellement :
vi /etc/letsencrypt/renewal-hooks/post/centreon-cert-update.sh
Ajoutez le contenu suivant :
#!/bin/bash
DOMAIN="<FQDN_DU_POLLER>"
CERT_DIR="/etc/pki/centreon"
# Copie des nouveaux certificats
cp /etc/letsencrypt/live/$DOMAIN/privkey.pem $CERT_DIR/private_key.key
cp /etc/letsencrypt/live/$DOMAIN/fullchain.pem $CERT_DIR/public_cert.crt
# Attribution des droits
chown centreon-engine:centreon-engine $CERT_DIR/public_cert.crt
chown centreon-engine:centreon-engine $CERT_DIR/private_key.key
chmod 644 $CERT_DIR/public_cert.crt
chmod 600 $CERT_DIR/private_key.key
# Redémarrage de Centreon Engine
# Note: Sur certaines versions récentes, un reload suffit
# systemctl reload centengine
systemctl restart centengine
# Optionnel: Redémarrage du broker si nécessaire
# systemctl restart cbd
# Log
echo "$(date): Certificats Centreon mis à jour et service redémarré" >> /var/log/centreon-cert-renewal.log
Restart vs Reload : Sur les versions 25.10+, un simple
reloadpeut suffire pour recharger les certificats sans interruption de service. Testez d’abord avecreload, et si cela ne fonctionne pas, utilisezrestart. Le restart provoque une courte interruption de la collecte.
Rendez le script exécutable :
chmod +x /etc/letsencrypt/renewal-hooks/post/centreon-cert-update.sh
7.3 Configuration du Timer Systemd (Vérification)
Certbot installe automatiquement un timer systemd. Vérifiez qu’il est actif :
systemctl list-timers | grep certbot
Si le timer n’est pas présent, créez-le manuellement :
systemctl enable certbot-renew.timer
systemctl start certbot-renew.timer
7.4 Test Complet du Renouvellement
certbot renew --force-renewal
Attention : Cette commande force le renouvellement même si le certificat n’a pas expiré. À utiliser uniquement pour tester.
Vérifiez ensuite que les certificats ont bien été copiés et que le service a redémarré :
ls -l /etc/pki/centreon/
systemctl status centengine
cat /var/log/centreon-cert-renewal.log
Étape 8 : Gestion de SELinux
SELinux (Security-Enhanced Linux) est un module de sécurité du noyau Linux. Bien qu’il soit souvent désactivé en production, il est important de savoir le configurer correctement.
8.1 Vérification de l’État de SELinux
getenforce
Résultats possibles :
Enforcing: SELinux est actif et applique les règlesPermissive: SELinux est actif mais ne fait que journaliser les violationsDisabled: SELinux est désactivé
8.2 Configuration pour CMA avec SELinux Actif
Si SELinux est en mode Enforcing ou Permissive, vous devrez autoriser certaines opérations.
8.2.1 Sur le Poller
Autorisez Centreon Engine à lire les certificats :
semanage fcontext -a -t cert_t "/etc/pki/centreon(/.*)?"
restorecon -Rv /etc/pki/centreon
Si semanage n’est pas installé :
dnf install -y policycoreutils-python-utils
Autorisez Centreon Engine à écouter sur le port 4317 :
semanage port -a -t centreon_engine_port_t -p tcp 4317
8.2.2 Sur l’Agent
Autorisez l’agent à se connecter au port 4317 distant :
setsebool -P nis_enabled 1
Ou de manière plus spécifique :
semanage port -a -t http_port_t -p tcp 4317
8.2.3 Vérification des Violations SELinux
Si vous rencontrez des problèmes, consultez les logs SELinux :
ausearch -m avc -ts recent
grep "denied" /var/log/audit/audit.log | tail -20
Pour générer automatiquement une règle à partir des violations :
ausearch -m avc -ts recent | audit2allow -M centreon_cma
semodule -i centreon_cma.pp
8.3 Désactivation de SELinux (Non Recommandé)
Si vous souhaitez désactiver SELinux (déconseillé en production) :
vi /etc/selinux/config
Modifiez la ligne :
SELINUX=disabled
Puis redémarrez le serveur :
reboot
Alternative temporaire (sans redémarrage) :
setenforce 0
Cette commande passe SELinux en mode Permissive jusqu’au prochain redémarrage.
Étape 9 : Création d’une Sonde Personnalisée
Les sondes personnalisées vous permettent d’étendre les capacités de supervision de CMA selon vos besoins spécifiques.
9.1 Création de la Structure de Répertoires
Sur l’hôte supervisé, créez le répertoire pour les sondes :
mkdir -p /opt/centreon/sondes
chown root:root /opt/centreon/sondes
chmod 755 /opt/centreon/sondes
9.2 Exemple de Sonde : Vérification de l’Espace Disque
Créez le script de sonde :
vi /opt/centreon/sondes/check_disk_custom.sh
Ajoutez le contenu suivant :
#!/bin/bash
# Sonde personnalisée pour vérifier l'espace disque disponible
# Format de sortie Centreon : STATUS NomService - MESSAGE | PERFDATA
# Variables d'entrée
PARTITION="${1:-/}" # Si $1 n’est pas défini c'est /
SEUIL_WARNING="${2:-20}" # Si $2 n’est pas défini c'est 20 en Go
SEUIL_CRITIQUE="${3:-10}" # Si $3 n’est pas défini c'est 10 en Go
# Récupération de l'espace disponible en Go
ESPACE_DISPONIBLE=$(df -BG "$PARTITION" | tail -1 | awk '{print $4}' | sed 's/G//')
# Récupération de l'utilisation en pourcentage
UTILISATION_PCT=$(df "$PARTITION" | tail -1 | awk '{print $5}' | sed 's/%//')
# Logique de vérification
if [ "$ESPACE_DISPONIBLE" -lt "$SEUIL_CRITIQUE" ]; then
echo "2 Disque_Custom - CRITICAL - Espace disponible: ${ESPACE_DISPONIBLE}Go (${UTILISATION_PCT}% utilisé) sur $PARTITION | libre=${ESPACE_DISPONIBLE}G;${SEUIL_WARNING};${SEUIL_CRITIQUE};0 utilisation=${UTILISATION_PCT}%;80;90;0;100"
exit 2
elif [ "$ESPACE_DISPONIBLE" -lt "$SEUIL_WARNING" ]; then
echo "1 Disque_Custom - WARNING - Espace disponible: ${ESPACE_DISPONIBLE}Go (${UTILISATION_PCT}% utilisé) sur $PARTITION | libre=${ESPACE_DISPONIBLE}G;${SEUIL_WARNING};${SEUIL_CRITIQUE};0 utilisation=${UTILISATION_PCT}%;80;90;0;100"
exit 1
else
echo "0 Disque_Custom - OK - Espace disponible: ${ESPACE_DISPONIBLE}Go (${UTILISATION_PCT}% utilisé) sur $PARTITION | libre=${ESPACE_DISPONIBLE}G;${SEUIL_WARNING};${SEUIL_CRITIQUE};0 utilisation=${UTILISATION_PCT}%;80;90;0;100"
exit 0
fi
Rendez le script exécutable :
chmod +x /opt/centreon/sondes/check_disk_custom.sh
9.3 Test Manuel de la Sonde
/opt/centreon/sondes/check_disk_custom.sh / 20 10
Vous devriez voir une sortie du type :
0 Disk_Custom - OK - Espace disponible: 45Go (35% utilisé) sur / | libre=45G;20;10;0 usage=35%;80;90;0;100
9.4 Autre Exemple : Vérification d’un Processus
vi /opt/centreon/sondes/check_process_httpd.sh
#!/bin/bash
# Sonde personnalisée pour vérifier l'existence d'un processus
# Format de sortie Centreon : STATUS ServiceName - MESSAGE | PERFDATA
# Nom du processus à vérifier
# Si $1 n'est pas défini, la valeur par défaut est 'httpd'
NOM_PROCESSUS="${1:-httpd}"
# Nombre d'instances du processus en cours d'exécution
NOMBRE_INSTANCES=$(pgrep -c "$NOM_PROCESSUS")
# Seuils pour les alertes (optionnel : ici exemple fixe)
SEUIL_WARNING=2
SEUIL_CRITIQUE=1
# Logique de vérification
if [ "$NOMBRE_INSTANCES" -eq 0 ]; then
echo "Processus HTTPD - CRITICAL - Processus '$NOM_PROCESSUS' non trouvé | count=0;$SEUIL_WARNING;$SEUIL_CRITIQUE;0"
exit 2
elif [ "$NOMBRE_INSTANCES" -lt "$SEUIL_WARNING" ]; then
echo "Processus HTTPD - WARNING - Seulement $NOMBRE_INSTANCES instance(s) de '$NOM_PROCESSUS' | count=$NOMBRE_INSTANCES;$SEUIL_WARNING;$SEUIL_CRITIQUE;0"
exit 1
else
echo "Processus HTTPD - OK - $NOMBRE_INSTANCES instance(s) de '$NOM_PROCESSUS' en cours d'exécution | count=$NOMBRE_INSTANCES;$SEUIL_WARNING;$SEUIL_CRITIQUE;0"
exit 0
fi
chmod +x /opt/centreon/sondes/check_process_httpd.sh
9.5 Ajout de la Sonde dans Centreon
9.5.1 Création de la Commande
- Dans Centreon, allez dans Configuration > Commandes > Connecteurs
- Cliquez sur Ajouter
- Remplissez :
- Nom de la commande :
check_disk_custom - Type de commande : Centreon Monitoring Agent
- Ligne de commande :
/opt/centreon/sondes/check_disk_custom.sh $ARG1$ $ARG2$ $ARG3$
- Nom de la commande :
- Ajoutez les macros (optionnel) :
$ARG1$: Partition (ex: /)$ARG2$: Seuil WARNING (ex: 20)$ARG3$: Seuil CRITICAL (ex: 10)
- Cliquez sur Sauvegarder
9.5.2 Ajout à la Whitelist du Poller
Sur le serveur poller, créez ou éditez le fichier de whitelist :
vi /etc/centreon-engine-whitelist/custom-commands.yml
Ajoutez :
whitelist:
regex:
- ^/opt/centreon/sondes/check_disk_custom\.sh.*
- ^/opt/centreon/sondes/check_process_httpd\.sh.*
Redémarrez Centreon Engine :
systemctl restart centengine
9.5.3 Création du Service
- Dans Centreon, allez dans Configuration > Services > Services par hôte
- Cliquez sur Ajouter
- Remplissez :
- Hôte : Sélectionnez votre hôte
- Description :
Disk-Custom-Root - Modèle : Generic-Service (ou créez un modèle spécifique)
- Commande de vérification :
check_disk_custom - Arguments :
!/!20!10
- Configurez les seuils et intervalles selon vos besoins
- Cliquez sur Sauvegarder
9.5.4 Export de la Configuration
- Allez dans Configuration > Collecteurs
- Sélectionnez votre poller
- Exportez la configuration
9.6 Configuration SELinux pour les Sondes Personnalisées
Si SELinux est actif, autorisez l’exécution des sondes :
semanage fcontext -a -t bin_t "/opt/centreon/sondes(/.*)?"
restorecon -Rv /opt/centreon/sondes
Étape 10 : Tests et Vérification Finale
10.1 Vérification dans l’Interface Centreon
- Allez dans Supervision > Statut des ressources
- Recherchez votre hôte
- Vérifiez que les services passent de
PendingàOK,WARNINGouCRITICAL - Consultez les graphiques de performance
10.2 Vérification des Logs de l’Agent
Sur l’hôte supervisé :
tail -f /var/log/centreon-monitoring-agent/centagent.log
Vous devriez voir des messages indiquant l’envoi régulier des métriques.
10.3 Vérification de la Connexion TLS
Vérifiez que la communication est bien chiffrée :
ss -tunlp | grep 4317
Sur le poller, vous pouvez utiliser tcpdump pour analyser le trafic :
tcpdump -i any port 4317 -X | head -50
Avec TLS, le contenu doit être illisible (chiffré).
10.4 Test de Failover
Arrêtez l’agent et vérifiez que Centreon détecte l’interruption :
systemctl stop centagent
Attendez quelques minutes et vérifiez dans Centreon que l’hôte passe en DOWN ou UNREACHABLE.
Redémarrez ensuite l’agent :
systemctl start centagent
10.5 Vérification des Performances
Consultez les graphiques dans Centreon pour vérifier que les données de performance sont bien collectées et affichées.
Dépannage
Problème : L’agent ne se connecte pas au poller
Solutions :
- Vérifiez que le port 4317/TCP est bien ouvert sur le poller
- Contrôlez l’adresse IP/FQDN dans
centagent.json - Vérifiez les logs :
tail -f /var/log/centreon-monitoring-agent/centagent.log - Testez la connectivité :
telnet <IP_POLLER> 4317 - Vérifiez le token : Si le chiffrement est activé sur le poller, le token est obligatoire
Problème : Erreur d’authentification / Token invalide
Messages d’erreur typiques :
authentication failedinvalid tokenunauthorized
Solutions :
- Vérifiez que le token dans
centagent.jsoncorrespond exactement à celui généré dans Centreon - Pas d’espaces avant/après le token
- Régénérez un nouveau token dans Configuration > Collecteurs > Configurations d’agent
- Exportez la configuration du collecteur après modification du token
- Redémarrez l’agent :
systemctl restart centagent
Problème : Erreur de certificat TLS
Solutions :
- Vérifiez que
ca_common_namecorrespond au CN du certificat (si le champ est renseigné) - Assurez-vous que le FQDN est utilisé dans
endpoint, pas l’IP - Vérifiez que les certificats racine sont à jour :
update-ca-trust - Testez manuellement :
openssl s_client -connect <FQDN>:4317 -CAfile /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem - Avec Let’s Encrypt, essayez de laisser
ca_common_namevide ou de l’omettre complètement - Vérifiez que le certificat du poller est valide :
openssl x509 -in /etc/pki/centreon/public_cert.crt -noout -dates
Problème : Les services restent en Pending
Solutions :
- Vérifiez que le nom de l’hôte dans
centagent.jsoncorrespond exactement à celui dans Centreon - Exportez à nouveau la configuration du collecteur
- Redémarrez
centenginesur le poller - Vérifiez les logs du poller :
tail -f /var/log/centreon-engine/centengine.log
Problème : Les sondes personnalisées ne fonctionnent pas
Solutions :
- Vérifiez que le script est exécutable :
chmod +x /opt/centreon/sondes/votresonde.sh - Testez le script manuellement sur l’hôte
- Vérifiez la whitelist sur le poller :
/etc/centreon-engine-whitelist/custom-commands.yml - Redémarrez
centengineaprès modification de la whitelist - Vérifiez les permissions SELinux si activé
Problème : SELinux bloque l’agent
Solutions :
- Consultez les logs :
ausearch -m avc -ts recent - Générez une politique :
ausearch -m avc -ts recent | audit2allow -M ma_politique - Installez la politique :
semodule -i ma_politique.pp - En dernier recours :
setenforce 0(mode permissif)
Bonnes Pratiques
- Sauvegardez vos configurations avant toute modification importante
- Documentez vos sondes personnalisées avec des commentaires dans les scripts
- Surveillez l’expiration des certificats même avec le renouvellement automatique
- Utilisez toujours un token d’authentification avec le chiffrement TLS activé
- Conservez vos tokens en lieu sûr et ne les partagez jamais publiquement
- Utilisez des variables dans vos scripts pour faciliter la maintenance
- Testez en préproduction avant de déployer en production
- Centralisez vos sondes dans un dépôt Git pour versionning
- Activez SELinux en mode Permissive d’abord, puis en Enforcing une fois les règles validées
- Surveillez les logs régulièrement pour détecter les anomalies
- Créez des alertes sur l’expiration des certificats (60 jours avant)
- Préférez « encryption »: « full » sur Centreon 25.10+ au lieu de l’ancien booléen
true - Vérifiez la version de votre Centreon pour adapter les paramètres de configuration
Conclusion
Vous disposez maintenant d’une installation complète et sécurisée de Centreon Monitoring Agent sur RHEL 9, avec :
- Un chiffrement TLS via Let’s Encrypt pour sécuriser les communications
- Une authentification par token pour garantir que seuls les agents autorisés peuvent se connecter
- Un renouvellement automatique des certificats pour éviter les interruptions de service
- Une configuration SELinux adaptée pour maintenir un niveau de sécurité élevé
- Des sondes personnalisées organisées dans
/opt/centreon/sondespour étendre les capacités de supervision
CMA représente une évolution majeure par rapport à NRPE, offrant de meilleures performances, une sécurité renforcée et une architecture moderne basée sur OpenTelemetry. Cette solution est parfaitement adaptée aux environnements de production exigeants.
Points clés à retenir :
- Adaptez les paramètres
encryptionselon votre version de Centreon (24.10 vs 25.10+) - Le token d’authentification est indispensable avec le chiffrement activé
- Utilisez
ca_common_name(et nonca_name) dans vos fichiers de configuration - Le champ
ca_common_namepeut être omis avec Let’s Encrypt - Privilégiez
reloadsurrestartpour les versions récentes lors du renouvellement des certificats
N’hésitez pas à adapter ce tutoriel à vos besoins spécifiques et à créer vos propres sondes pour superviser des aspects métier de votre infrastructure.
Ressources utiles :
- Documentation officielle Centreon :
https://docs.centreon.com - Let’s Encrypt :
https://letsencrypt.org - SELinux Project :
https://selinuxproject.org - OpenTelemetry :
https://opentelemetry.io
Bon monitoring avec Centreon CMA !