Skip to main content

Installing a poller in a container

The container-based poller deployment method is currently in BETA.

A ready-to-use installation command for container-based pollers can be retrieved from the central server's interface, tailored to your platform.

Container contents

Container-based pollers use Debian 13.

Instead of a single monolithic container, each poller component runs in its own dedicated container (Centreon Engine, Gorgone, and optionally SNMP trap handling and VMware monitoring), orchestrated by a single docker-compose.yaml file.

This deployment method relies on a generated installation command that downloads and runs an installer script on the target container host. The script generates the .env and docker-compose.yaml files for you and starts the stack.

See Users and groups for the system users (centreon-engine, centreon-gorgone, etc.) used inside these containers.

Prerequisites​

  • On the central server, Gorgone's pullwss module must be configured to accept connections. This only needs to be done once, before you install your first poller in a container.
  • A Linux host with Docker Engine and the Docker Compose v2 plugin installed (docker compose version must succeed).
  • You must have created a poller-type authentication token.
  • Outbound network access from this host to your Centreon central server: web port (443 for HTTPS, 80 for HTTP) and TCP port 5669 (Centreon Broker).
  • If you plan to receive SNMP traps on this poller, UDP port 162 must be reachable on this host.
  • If you plan to monitor VMware infrastructure from this poller, the centreon-vmware Docker image must be built beforehand (see Centreon-vmware container).

Step 1: Generate the install command​

  1. On the central server, click the pollers zone at the top left of the screen and in the popup that opens, click Create new poller.

    image

  2. Fill in the poller's information:

    • Poller name: a unique name for this poller. It will appear in the list of pollers. The name must contain no spaces or special characters, and the first character must be alphanumeric.
    • Poller address: the address of the host machine where you are going to install the poller.

      The Poller address does not affect connectivity: Gorgone uses PullWSS, so the poller always initiates the connection to the central server, not the other way around.

    • Centreon Central address, as seen by this poller: the URL this poller uses to reach the central server, e.g. http(s)://10.10.10.10/centreon. If your central server is configured in HTTPS, the connection between the central server and the poller will be automatically configured in HTTPS too.
  3. Select Container as the poller's environment.

  4. Select the authentication token you have created for this poller.

  5. In the Generate installation command section, click the button and wait for the command to be generated.

  6. Copy the command using the button at the top right of the code block. Keep the window open: you will need to use it again later.

  7. Add to the command any optional flags you want (e.g. to allow the poller to receive data from CMA agents, or if you want to monitor VMware resources. In both cases, you will need to follow the corresponding procedures in Advanced container configuration).

  8. If you want to be able to use email notifications or custom plugins, follow the corresponding procedures in Advanced container configuration.

Step 2: Run the install command on the container host​

  1. Run the copied command as a user who is allowed to use containers on the target host.

    If your central server uses HTTPS, the container host must trust its certificate. If you are using a self-signed certificate, use curl's -k (--insecure) option to allow insecure connections.

    What the script does

    The script:

    1. Checks that Docker and the Docker Compose v2 plugin are available.
    2. Generates a .env file and a docker-compose.yaml file in the current directory.
    3. Starts the stack with docker compose up -d, unless --no-start was added to the command (in that case, start it yourself later with docker compose up -d).

    By default, the generated stack always includes two services:

    • centengine: Centreon Engine, the monitoring engine.
    • gorgone: Gorgone, in charge of retrieving the poller's configuration and communicating with the central server.

    Generated files reference

    The docker-compose.yaml generated by the install script wires the services together using named Docker volumes, so you don't need to configure this yourself:

    VolumeShared betweenPurpose
    poller-enginecentengine, gorgoneCentreon Engine configuration (/etc/centreon-engine)
    poller-brokercentengine, gorgoneCentreon Broker configuration (/etc/centreon-broker)
    poller-centcmdcentengine, gorgone, centreontrapdCentreon Engine's external command pipe (/var/lib/centreon-engine/rw)
    poller-snmp-spoolsnmptrapd, centreontrapdSpool directory where received traps are written and then processed
    poller-snmp-trapsgorgone, centreontrapdSNMP trap definitions pushed by the central server

    Each service also has a Docker healthcheck, so docker compose ps reports healthy once a service is fully up.

  2. Check the health status of the gorgone container on the container's host:

    docker compose ps

    Once gorgone reports healthy, the connection to the central server is established.

    If gorgone does not become healthy after a few minutes, check its logs (docker compose logs gorgone), then see Attach a poller to a central or a remote server and Communications between servers for more details on how pollers register and communicate with the central server.

Step 3: Export the configuration​

On the central server, go back to the poller creation window and click Export configuration.

The poller then shows up as running on the Configuration > Pollers page:

image

Step 4: Secure your platform​

If your central server is configured in HTTPS, the connection between the central server and the poller will automatically be configured in HTTPS as well. However, remember to carry out the other security measures for your Centreon platform by following our recommendations.

Optional services to add to the installation command​

The basic generated command looks like this:

curl -fsSL <CENTRAL_URL>/poller/install.sh | bash -s -- \
--type docker \
--poller_token <TOKEN_NAME>:<TOKEN_SECRET> \
--uid <POLLER_UID> \
--name '<POLLER_NAME>' \
--central_url <CENTRAL_URL> \
--appsecret <APP_SECRET> \
--salt <SALT>

Add the following flags to the install command to include additional features:

FlagEffect
--with-snmptrapAdds the snmptrapd and centreontrapd services, for passive monitoring via SNMP traps.
--with-vmwareAllow the poller to monitor VMware resources (adds the centreon-vmware service to the docker-compose).
--with-cmaAllows the poller to receive data from Centreon Monitoring Agents (CMA). Mounts TLS certificates and exposes port 4317, for pollers that accept connections from the Centreon Monitoring Agent (CMA) over OpenTelemetry gRPC.
--tz <timezone>Sets the container timezone (default: UTC).
--debug trueEnables debug logging on the services.
--gorgone-ssl <true|false>Overrides the SSL setting used for the Gorgone connection to the central server (by default, HTTPS if the central server already uses HTTPS).
--no-startOnly generates .env and docker-compose.yaml; does not start the stack.

If you already ran the install command without these flags, you can also add the corresponding service(s) by hand to the generated docker-compose.yaml and .env files, then run docker compose up -d again.

Running the installation command again regenerates .env and docker-compose.yaml without warning: any manual change (SMTP settings, custom plugins, CMA, etc.) is lost. Back up these files before running the command again.