Prérequis pour les collecteurs installés par commande générée
Cette page explique comment configurer votre plateforme afin de pouvoir utiliser des collecteurs installés par commande générée via l'interface (qu'ils soient installés sur une VM, une machine physique ou un conteneur). Cette procédure n'est à réaliser qu'une seule fois pour l'ensemble de la plateforme, avant d'installer votre premier collecteur de cette façon. Elle n'a aucun impact sur le mode de déploiement manuel de collecteurs.
Quand utiliser cette procédure
Cette page décrit la marche à suivre si les conditions suivantes sont réunies :
- Vous venez d'installer une plateforme en version 26.10, ou vous avez mis à jour une plateforme qui ne comportait aucun collecteur en mode pullwss.
- Vous souhaitez utiliser des collecteurs installés par commande générée via l'interface pour la première fois (qu'ils soient installés sur une VM, une machine physique ou un conteneur).
Si votre plateforme comportait des collecteurs en mode pullwss et que vous souhaitez désormais utiliser des collecteurs installés par commande générée via l'interface, suivez la procédure Adapter les anciennes configurations de collecteurs pullwss.
Le mode pullwss
Par défaut, c'est le serveur central qui initie la connexion vers ses collecteurs. Or par exemple un collecteur qui s'exécute dans un conteneur ne peut pas accepter de connexions entrantes : ce mode ne fonctionne donc pas.
Le mode pullwss inverse le sens de la connexion : c'est le collecteur qui ouvre une connexion WebSocket vers le serveur central, puis qui la maintient ouverte.
La méthode recommandée et sécurisée consiste à utiliser HTTPS. Des certificats sont donc nécessaires pour sécuriser la connexion. Pour simplifier la gestion du cycle de vie de ces certificats, Apache (qui héberge déjà l'interface web Centreon) sert de reverse proxy : il termine la connexion TLS et transmet le trafic vers Gorgone sur le serveur central.
Prérequis à l'installation
-
Assurez-vous que votre conteneur ou votre machine hôte soit conforme aux prérequis d'installation d'un collecteur.
-
Assurez-vous que le serveur central et Gorgone sont déjà installés et à jour dans la dernière version majeure.
-
Si ce n'est pas déjà fait, configurez le HTTPS sur votre serveur central. Cela peut être fait dans le cadre de la procédure d'installation, ou séparément.
Une fois HTTPS activé, mettez également à jour l'URL de l'API Gorgone : dans /etc/centreon-gorgone/config.d/31-centreon-api.yaml sur le serveur central, définissez
base_urlsurhttps://<central_fqdn>/centreon/api/latest/, puis redémarrez Gorgone (systemctl restart gorgoned). Sinon, le serveur central rejettera ce type de collecteurs avec une erreurinvalid token. -
Le collecteur doit pouvoir joindre le serveur central.
Étape 1 : Configurer Gorgone sur le serveur central
Dans les versions précédentes de Centreon, Gorgone pouvait écouter directement les connexions pullwss sur le réseau, à condition d'être configuré manuellement. À partir de la version 26.10, la méthode recommandée consiste à utiliser Apache comme reverse proxy pour Gorgone.
- Sur le serveur central, modifiez le fichier /etc/centreon-gorgone/config.d/40-gorgoned.yaml comme suit. Le module
nodesdoit déjà être présent et ne nécessite aucune modification dans une installation par défaut. Le moduleproxyest également présent, mais pas la sous-cléhttpserver, que vous devez ajouter.
gorgone:
modules:
- name: proxy
package: "gorgone::modules::core::proxy::hooks"
enable: true
httpserver:
enable: true
ssl: false
address: "localhost"
port: 8087
Attention, il s'agit d'un fichier YAML : l'indentation y est importante. Utilisez 2 espaces par niveau d'indentation.
Explication de la configuration :
ssl: falseetaddress: "localhost": Gorgone n'accepte que les connexions provenant de la machine locale, en HTTP simple. C'est Apache qui termine le TLS pour les collecteurs et qui transmet le trafic en local ; Gorgone n'a donc pas besoin de certificat.port: 8087: port interne utilisé uniquement pour la connexion entre Apache et Gorgone sur le même serveur. Il ne doit pas être exposé sur le réseau.
- Redémarrez Gorgone après cette modification :
systemctl restart gorgoned
- Vérifiez que Gorgone écoute bien sur le port 8087 :
sudo ss -tnlp | grep 8087
La commande doit renvoyer une ligne semblable à celle-ci :
LISTEN 0 4096 [::1]:8087 [::]:* users:(("gorgone-proxy-h",pid=2305,fd=28))
Étape 2 : Configurer Apache comme reverse proxy
Cette étape se réalise également sur le serveur central.
Prérequis sur les modules Apache
Assurez-vous que le module Apache proxy_wstunnel est activé :
- Alma / RHEL / Oracle Linux 9/10
- Debian 13
Contrairement aux paquets .deb, le paquet httpd d'Alma Linux 9 active déjà le module proxy_wstunnel par défaut : il n'y a donc rien à faire.
a2enmod proxy proxy_wstunnel
systemctl restart apache2
Configuration du reverse proxy Apache
- Modifiez votre fichier de configuration Apache. Celui-ci se trouve ici :
- Alma / RHEL / Oracle Linux 9/10
- Debian 13
/etc/httpd/conf.d/10-centreon.conf
/etc/apache2/sites-availables/centreon.conf
-
Ajoutez le contenu adéquat au VirtualHost Apache :
- Centreon fournit un exemple de fichier de configuration permettant d'activer HTTPS et d'exposer Gorgone derrière un reverse proxy, disponible ici :
/usr/share/centreon/examples/centreon-apache-https.conf. Vous pouvez en copier-coller le contenu. - Cependant, si vous disposez d'une configuration personnalisée et que vous ne pouvez pas copier-coller le fichier d'exemple tel quel, voici la configuration à ajouter dans votre VirtualHost Apache :
<IfModule mod_proxy_wstunnel.c>ProxyPass "/${base_uri}/gorgone/pullwss/websocket" "ws://localhost:8087/"ProxyPassReverse "/${base_uri}/gorgone/pullwss/websocket" "ws://localhost:8087/"</IfModule> - Centreon fournit un exemple de fichier de configuration permettant d'activer HTTPS et d'exposer Gorgone derrière un reverse proxy, disponible ici :
-
Redémarrez Apache
- Alma / RHEL / Oracle Linux 9/10
- Debian 13
systemctl restart httpd
systemctl restart apache2
Étape 3 : Ajouter le collecteur à la configuration de la plateforme
Vous pouvez maintenant ajouter un collecteur en utilisant la commande générée automatiquement. Pour cela, récupérez la commande depuis l'interface web Centreon (dans la section des collecteurs en haut à gauche de l'écran, que vous souhaitiez installer un collecteur dans un conteneur ou sur une VM ou une machine physique). Le collecteur se connectera automatiquement au serveur central via pullwss.
Si vous supprimez tous vos collecteurs installés via commande générée automatiquement
Si vous veniez à supprimer à l'avenir tous vos collecteurs installés via commande générée automatiquement, n'oubliez pas d'annuler les étapes ci-dessus.
Dépanner l'installation
Si votre installation ne fonctionne pas, plusieurs points sont à vérifier :
Le collecteur peut-il joindre le serveur central ?
Le collecteur doit pouvoir joindre le serveur central sur le port web (443 pour une adresse https://, 80 pour une adresse http://, ou le port indiqué dans l'adresse) et sur le port TCP 5669 (utilisé par Centreon Broker). Pour vérifier la connectivité, exécutez ces commandes sur le collecteur :
nc -zv <central_hostname> 443
nc -zv <central_hostname> 5669
Gorgone écoute-t-il bien sur le port 8087 ?
curl --header "Connection: Upgrade" --header "Upgrade: websocket" http://localhost:8087/
La sortie attendue est la suivante :
HTTP/1.1 101 Switching Protocols
Connection: Upgrade
Sec-WebSocket-Accept: Kfh9QIsMVZcl6xEPYxPHzW8SZ8w=
Server: Mojolicious (Perl)
Upgrade: websocket
Apache2 redirige-t-il correctement le trafic vers Gorgone ?
curl -v --header "Connection: Upgrade" --header "Upgrade: websocket" https://localhost:443/centreon/gorgone/pullwss/websocket
La sortie attendue est la suivante :
< HTTP/1.1 101 Switching Protocols
< Connection: Upgrade
< Sec-WebSocket-Accept: Kfh9QIsMVZcl6xEPYxPHzW8SZ8w=
< Server: Mojolicious (Perl)
< Upgrade: websocket
Si vous obtenez une page HTML indiquant You need to enable JavaScript to run this app, le reverse proxy Apache n'est pas configuré correctement : le trafic est redirigé vers l'interface web Centreon au lieu de Gorgone. Vérifiez votre configuration Apache et redémarrez Apache après chaque modification.
Le collecteur est-il rejeté avec une erreur invalid token ?
Si les logs Gorgone du collecteur (docker compose logs gorgone) affichent {"code":500,"message":"invalid token"}, vérifiez que le jeton est bien un jeton de type collecteur valide. Si votre serveur web redirige HTTP vers HTTPS, vérifiez également que base_url dans /etc/centreon-gorgone/config.d/31-centreon-api.yaml sur le serveur central utilise https://, puis redémarrez Gorgone.