Pollers in containers prerequisites
This page explains how to configure your platform to be able to use pollers in containers. You only have to perform this procedure once for the whole platform, before you install your first poller in a container. It has no impact on other poller deployment modes.
When to use this procedureβ
This page describes what to do if the following conditions are met:
- You have just installed a platform in version 26.10, or upgraded a platform that did not have any pollers in pullwss mode.
- You want to use pollers in containers for the first time.
If your platform had pollers in pullwss mode and you now wish to use pollers in containers, follow Adapting legacy pullwss poller setups.
Pullwss modeβ
By default, the central server initiates the connection to its pollers. However, a poller running in a container cannot accept incoming connections, so this mode does not work.
pullwss mode reverses the direction: the poller opens a WebSocket connection to the central server and keeps it open.
The recomended and secure way is to use HTTPS. This means that certificates are needed to secure the connection. To simplify certificate lifecycle management, Apache (which already hosts the Centreon web interface) is used as a reverse proxy to terminate the TLS connection and forward the traffic to the central server's Gorgone.
Installation requirementsβ
-
Make sure your container meets the poller installation prerequisites.
-
Ensure the central server and Gorgone are already installed and up to date with the latest major version.
-
If not already done, configure HTTPS on your central server. This can be done as part of the installation procedure, or separately.
Once HTTPS is enabled, also update the Gorgone API URL: in /etc/centreon-gorgone/config.d/31-centreon-api.yaml on the central server, set
base_urltohttps://<central_fqdn>/centreon/api/latest/, then restart Gorgone (systemctl restart gorgoned). Otherwise, the central server rejects every poller in a container with aninvalid tokenerror. -
The poller must be able to reach the central server.
Step 1: Configure Gorgone on the central serverβ
In previous versions of Centreon, Gorgone could listen for pullwss connections directly on the network if manually configured to do so. Starting with version 26.10, the recommended method is to use Apache as a reverse proxy for Gorgone.
- On the central server, update the file /etc/centreon-gorgone/config.d/40-gorgoned.yaml as follows. The
nodesmodule should already be present, and does not need modification in a default installation. Theproxymodule is already present too, but not thehttpserversub-key, which you should add.
gorgone:
modules:
- name: proxy
package: "gorgone::modules::core::proxy::hooks"
enable: true
httpserver:
enable: true
ssl: false
address: "localhost"
port: 8087
Please note this is a yaml file, so indentation is important. Use 2 spaces for each indentation level.
Explanation of the configuration:
ssl: falseandaddress: "localhost": Gorgone only accepts connections from the local machine, in plain HTTP. Apache is the one terminating TLS for the pollers and forwarding the traffic locally, so Gorgone itself does not need a certificate.port: 8087: internal port used only for the connection between Apache and Gorgone on the same host. It should not be exposed to the network.
- Restart Gorgone after this change:
systemctl restart gorgoned
- Check that Gorgone is listening on port 8087 correctly:
sudo ss -tnlp | grep 8087
The command should return one line similar to this:
LISTEN 0 4096 [::1]:8087 [::]:* users:(("gorgone-proxy-h",pid=2305,fd=28))
Step 2: Configure Apache as a reverse proxyβ
This step is also done on the central server.
Apache modules prerequisitesβ
Make sure the proxy_wstunnel Apache module is enabled:
- Alma / RHEL / Oracle Linux 9/10
- Debian 13
Unlike .deb packages, the Alma Linux 9 httpd package already has the proxy_wstunnel module enabled by default, so there is nothing to do.
a2enmod proxy proxy_wstunnel
systemctl restart apache2
Apache reverse proxy configurationβ
- Edit your Apache configuration file. This is located here:
- Alma / RHEL / Oracle Linux 9/10
- Debian 13
/etc/httpd/conf.d/10-centreon.conf
/etc/apache2/sites-availables/centreon.conf
-
Add the correct contents to the Apache virtual host:
- Centreon offers an example configuration file to enable HTTPS and serve Gorgone as a reverse proxy, available at:
/usr/share/centreon/examples/centreon-apache-https.conf. You can copy and paste the contents. - However, if you have a custom configuration and cannot just copy and paste the example file, this is the required configuration to add inside your Apache virtual host:
<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 offers an example configuration file to enable HTTPS and serve Gorgone as a reverse proxy, available at:
-
Restart Apache
- Alma / RHEL / Oracle Linux 9/10
- Debian 13
systemctl restart httpd
systemctl restart apache2
Add the poller to the platform's configurationβ
You can now add a poller in a container. To do so, retrieve the correct command from the Centreon web interface. The poller will automatically connect to the central server using pullwss.
If you delete all your pollers in containersβ
If in the future you should delete all your pollers in containers, do not forget to undo the steps above.
Troubleshooting the installationβ
If your installation does not work, there are multiple things you can check:
Can the poller reach the central server?β
The poller must reach the central server on the web port (443 for an https:// address, 80 for an http:// address, or the port given in the address) and on TCP port 5669 (Centreon Broker). You can check from the poller with the following commands:
nc -zv <central_hostname> 443
nc -zv <central_hostname> 5669
Is Gorgone correctly listening on port 8087?β
curl --header "Connection: Upgrade" --header "Upgrade: websocket" http://localhost:8087/
The expected output is:
HTTP/1.1 101 Switching Protocols
Connection: Upgrade
Sec-WebSocket-Accept: Kfh9QIsMVZcl6xEPYxPHzW8SZ8w=
Server: Mojolicious (Perl)
Upgrade: websocket
Does Apache2 redirect the traffic to Gorgone correctly?β
curl -v --header "Connection: Upgrade" --header "Upgrade: websocket" https://localhost:443/centreon/gorgone/pullwss/websocket
The expected output is:
< HTTP/1.1 101 Switching Protocols
< Connection: Upgrade
< Sec-WebSocket-Accept: Kfh9QIsMVZcl6xEPYxPHzW8SZ8w=
< Server: Mojolicious (Perl)
< Upgrade: websocket
If you see an HTML page indicating You need to enable JavaScript to run this app, the Apache reverse proxy is not configured correctly, and the traffic is redirected to the Centreon web interface instead of to Gorgone. Check your Apache configuration and restart Apache after any change.
Is the poller rejected with an invalid token error?β
If the Gorgone logs of the poller (docker compose logs gorgone) show {"code":500,"message":"invalid token"}, check that the token is a valid poller-type token. If your web server redirects HTTP to HTTPS, also check that base_url in /etc/centreon-gorgone/config.d/31-centreon-api.yaml on the central server uses https://, then restart Gorgone.