Site icon bintorosoft.com

Observability: OpenTelemetry Collector in Compose integrieren

A tiny penguin chick sits on a keyboard, exploring the computer. Its fluffy appearance and curious expression create a delightful scene.

Observability ist ein zentraler Bestandteil moderner Container-Infrastrukturen. Mit OpenTelemetry können Metriken, Logs und Traces konsistent erfasst und an zentrale Backends wie Prometheus, Grafana oder Jaeger weitergeleitet werden. In diesem Tutorial zeigen wir, wie der OpenTelemetry Collector in Docker Compose integriert wird, um eine durchgängige Observability-Pipeline aufzubauen.

1. Architekturüberblick OpenTelemetry Collector

Der OpenTelemetry Collector fungiert als universeller Agent oder Gateway. Er sammelt Telemetriedaten von verschiedenen Quellen, verarbeitet diese und exportiert sie an Backends.

Collector Deployment-Modi

2. Vorbereitung des Compose-Stacks

Bevor der Collector integriert wird, sollte der Compose-Stack vorbereitet sein:

3. OpenTelemetry Collector als Compose Service

Der Collector wird als eigener Service definiert:

services:
  otel-collector:
    image: otel/opentelemetry-collector:latest
    container_name: otel-collector
    networks:
      - observability
    volumes:
      - ./otel-config.yaml:/etc/otel/config.yaml:ro
    command:
      --config /etc/otel/config.yaml
    ports:
      - "4317:4317"   # OTLP gRPC
      - "55681:55681" # OTLP HTTP
      - "8888:8888"   # Metrics endpoint

Wichtige Punkte

4. Collector Konfiguration

Die otel-config.yaml definiert Receivers, Processors und Exporters:

receivers:
  otlp:
    protocols:
      grpc:
      http:
  prometheus:
    config:
      scrape_configs:
        - job_name: 'myapp'
          static_configs:
            - targets: ['myapp:8080']

processors:
batch:

exporters:
logging:
loglevel: debug
prometheus:
endpoint: "0.0.0.0:8888"
jaeger:
endpoint: "http://jaeger:14250"

service:
pipelines:
metrics:
receivers: [otlp, prometheus]
processors: [batch]
exporters: [logging, prometheus]
traces:
receivers: [otlp]
processors: [batch]
exporters: [logging, jaeger]

Hinweise zur Konfiguration

5. Instrumentierung der Compose Services

Die Anwendungen müssen Telemetrie erzeugen:

environment:
  - OTEL_EXPORTER_OTLP_ENDPOINT=otel-collector:4317
  - OTEL_RESOURCE_ATTRIBUTES=service.name=myapp
  • Optional Prometheus Endpoint in Services exposen
  • 6. Netzwerk und Service Discovery

    Alle Services kommunizieren über ein Compose-Netzwerk:

    7. Monitoring und Debugging

    Nach Start des Compose-Stacks prüfen:

    8. Automatisierung und CI/CD Integration

    OpenTelemetry Collector kann in CI/CD Pipelines überprüft und aktualisiert werden:

    9. Best Practices

    Mit dieser Integration des OpenTelemetry Collectors in Docker Compose lässt sich eine zentrale Observability-Pipeline aufbauen, die Metriken, Logs und Traces konsistent erfasst, verarbeitet und exportiert. So kann die Leistung, Zuverlässigkeit und Sicherheit von Container-Anwendungen durchgängig überwacht werden.

    Konfiguriere Cisco Router & Switches und liefere ein Packet-Tracer-Lab/GNS3

    Ich biete professionelle Unterstützung im Bereich Netzwerkkonfiguration und Network Automation für private Anforderungen, Studienprojekte, Lernlabore, kleine Unternehmen sowie technische Projekte. Ich unterstütze Sie bei der Konfiguration von Routern und Switches, der Erstellung praxisnaher Topologien in Cisco Packet Tracer, dem Aufbau und Troubleshooting von GNS3- und EVE-NG-Labs sowie bei der Automatisierung von Netzwerkaufgaben mit Netmiko, Paramiko, NAPALM und Ansible. Kontaktieren Sie mich jetzt – klicken Sie hier.

    Meine Leistungen umfassen:

    Benötigen Sie Unterstützung bei Ihrem Netzwerkprojekt, Ihrer Simulation oder Ihrer Network-Automation-Lösung? Kontaktieren Sie mich jetzt – klicken Sie hier.

    Exit mobile version