RousselTMLEARNING

Article · Bindplane: OpenTelemetry telemetry pipelines from discovery to expertise

Installing Bindplane

This article is available in French.

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.

📄 Installer Bindplane : serveur, BDOT Collector et connexion OpAMP →

My progress

  • ⏱ Estimated time : ≈ 10 min

Sign in to track your progress and take notes. Sign in

✉️ Ask a question

Recommended Articles

Understanding the concept of score

The concept of score allows Elasticsearch to rank your documents by relevance during a search.

Understanding the Elastic Common Schema (ECS)

As always in our consulting engagements, we recommend that companies harmonise and standardise: k...

License consumption types

Understand the evolution of billing in Dynatrace: the difference between the old licensing model ...

Grafana Alloy: The importance of Self-Monitoring

Discover why and how to configure Grafana Alloy so that it monitors itself, collecting its own lo...

Grafana Alloy: Understanding and exploiting the User Interface (UI)

Discover how to enable, secure, and use Grafana Alloy's built-in web interface to visualize your ...

Grafana Alloy: Introduction and Architecture

Discover the fundamental concepts of Grafana Alloy, the transition from the static Agent to Alloy...

Grafana Alloy: Syntax and Configuration (Alloy Language: River)

As part of a Grafana training or observability training, master the declarative syntax of Grafana...

Grafana Alloy: Metrics Collection (Prometheus & Ecosystem)

Learn how to configure Grafana Alloy to collect, transform, and forward metrics using the Prometh...

Grafana Alloy: Log Management with Loki

Discover how to configure Grafana Alloy to read log files, journald, or network streams, process ...