RousselTMLEARNING

Observabilité

Installer Bindplane : serveur, BDOT Collector et connexion OpAMP

Installer le serveur Bindplane (Docker Compose, Linux, Kubernetes), connecter des collecteurs BDOT par OpAMP sur Linux, Docker et Kubernetes, et utiliser la CLI.

1. Le serveur #

Trois façons de l'installer.

Options #

Étapes d'installation de Bindplane
ModeUsageRemarques
Docker ComposeTest, formation, petits environnementsServeur, PostgreSQL, Prometheus et transform agent en conteneurs
Machine virtuelle (paquet Linux)Production simpleService systemd, PostgreSQL externe
Kubernetes (Helm)Production, haute disponibilitéPlusieurs serveurs, PostgreSQL et bus d'événements gérés
Bindplane CloudNe pas héberger le serveurLes collecteurs se connectent à wss://app.bindplane.com/v1/opamp
À savoir : Le serveur exige une licence (variable BINDPLANE_LICENSE), y compris pour l'offre gratuite : créez un compte sur le site de Bindplane et récupérez la clé sur la page de téléchargement.

Docker Compose #

services:
  bindplane:
    image: ghcr.io/observiq/bindplane-ee:1.89.5
    ports: ["3001:3001"]
    environment:
      BINDPLANE_LICENSE: ${BINDPLANE_LICENSE}
      BINDPLANE_USERNAME: admin
      BINDPLANE_PASSWORD: ${BINDPLANE_PASSWORD}
      BINDPLANE_REMOTE_URL: http://localhost:3001
      BINDPLANE_SESSION_SECRET: ${BINDPLANE_SESSION_SECRET}
      BINDPLANE_LOG_OUTPUT: stdout
      BINDPLANE_ACCEPT_EULA: "true"
      BINDPLANE_PROMETHEUS_ENABLE: "true"
      BINDPLANE_PROMETHEUS_ENABLE_REMOTE: "true"
      BINDPLANE_PROMETHEUS_HOST: prometheus
      BINDPLANE_PROMETHEUS_PORT: "9090"
      BINDPLANE_TRANSFORM_AGENT_ENABLE_REMOTE: "true"
      BINDPLANE_TRANSFORM_AGENT_REMOTE_AGENTS: transform:4568
      BINDPLANE_STORE_TYPE: postgres
      BINDPLANE_POSTGRES_HOST: postgres
      BINDPLANE_POSTGRES_PORT: "5432"
      BINDPLANE_POSTGRES_DATABASE: bindplane
      BINDPLANE_POSTGRES_USERNAME: bindplane
      BINDPLANE_POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
    depends_on: [postgres, prometheus, transform]
  postgres:
    image: postgres:16
    environment: { POSTGRES_DB: bindplane, POSTGRES_USER: bindplane, POSTGRES_PASSWORD: "${POSTGRES_PASSWORD}" }
    volumes: ["bindplane:/var/lib/postgresql/data"]
  prometheus:
    image: ghcr.io/observiq/bindplane-prometheus:1.89.5
    volumes: ["prometheus:/prometheus"]
  transform:
    image: ghcr.io/observiq/bindplane-transform-agent:1.89.5-bindplane
volumes: { bindplane: {}, prometheus: {} }
cat > .env <<EOF
BINDPLANE_LICENSE=<votre clé>
BINDPLANE_PASSWORD=$(openssl rand -hex 12)
BINDPLANE_SESSION_SECRET=$(uuidgen)
POSTGRES_PASSWORD=$(openssl rand -hex 12)
EOF
docker compose up -d && docker compose logs -f bindplane
Erreur Courante : $(uuidgen) écrit directement dans le fichier Compose n'est pas évalué : générez les secrets dans le fichier .env comme ci-dessus. Changez aussi le mot de passe admin par défaut des exemples.

Le transform agent sert à l'interface pour prévisualiser l'effet des processeurs ; Prometheus stocke les mesures de débit. Utilisez la dernière version publiée des images, en gardant la même pour les trois images observiq.

2. Les collecteurs BDOT #

Linux, Docker, Kubernetes.

Connexion #

Dans l'interface, Collectors > Install Collectors génère la commande d'installation pour la plateforme choisie, avec deux paramètres clés :

ParamètreRôle
OPAMP_ENDPOINTAdresse OpAMP du serveur : ws://<serveur>:3001/v1/opamp (ou wss:// avec TLS)
OPAMP_SECRET_KEYClé secrète qui autorise le collecteur à se connecter
OPAMP_LABELSLabels du collecteur (env=prod,team=web) : ils servent à cibler fleets et étapes de rollout

Docker #

docker run -d --name bdot \
  -e OPAMP_ENDPOINT=ws://bindplane:3001/v1/opamp \
  -e OPAMP_SECRET_KEY=<clé> \
  -e OPAMP_LABELS=env=lab,team=web \
  -e MANAGER_YAML_PATH=/etc/otel/storage/manager.yaml \
  -v bdot-storage:/etc/otel/storage \
  -p 4317:4317 -p 4318:4318 \
  ghcr.io/observiq/bindplane-agent:1.84.0

Kubernetes #

Créez une configuration de plateforme Kubernetes, puis Install Collectors fournit un manifeste à appliquer. Trois modes : Kubernetes Node (DaemonSet, un collecteur par nœud, pour les logs et métriques des nœuds), Kubernetes Cluster (Deployment d'un pod, pour les événements et métriques du cluster) et Kubernetes Gateway (Deployment ou StatefulSet extensible).

kubectl apply -f bindplane-node-collector.yaml
kubectl -n bindplane-agent get pod
À savoir : Les collecteurs sont déployés dans le namespace bindplane-agent. Si le serveur tourne dans le même cluster, OPAMP_ENDPOINT peut viser le service : ws://bindplane.default.svc.cluster.local:3001/v1/opamp.

3. La CLI #

Tout ce que fait l'interface, en ligne de commande.

Commandes essentielles #

bindplane profile set lab --remote-url http://localhost:3001 --username admin --password "$BINDPLANE_PASSWORD"
bindplane profile use lab

bindplane get agents                         # collecteurs connectés
bindplane get configurations
bindplane get configuration web-logs --export --output yaml > web-logs.yaml
bindplane apply -f web-logs.yaml             # créer ou mettre à jour
bindplane rollout start web-logs             # déployer la nouvelle version
bindplane rollout status web-logs
Bonne Pratique : Exportez les configurations créées dans l'interface et versionnez-les dans Git : bindplane apply dans une CI les recrée à l'identique sur un autre serveur (préproduction, production).
À savoir : Les options de connexion des profils peuvent varier selon la version : bindplane profile set --help les liste.

Articles liés

Bindplane : gérer ses pipelines de télémétrie OpenTelemetry

Comprendre Bindplane : plan de contrôle des collecteurs OpenTelemetry via OpAMP, BDOT Collector, configuratio…

OpenTelemetry Collector, Grafana Alloy et Bindplane : comparer trois approches des pipelines de télémétrie

Comparatif détaillé de trois façons de gérer des pipelines de télémétrie : l'OpenTelemetry Collector en YAML,…

Configurations Bindplane : sources, processeurs, destinations et versions

Construire des configurations Bindplane : sources, processeurs et destinations, éditeur de pipeline, snapshot…

Pour aller plus loin