OpenTelemetry Collector auf Linux: Gateway Pattern und Sampling

OpenTelemetry Collector ist das zentrale Gateway für Observability-Daten wie Metriken, Traces und Logs. Auf Linux-Systemen ermöglicht es, Telemetrie-Daten aus verschiedenen Anwendungen zu sammeln, zu transformieren und an Backend-Systeme wie Prometheus, Grafana, Jaeger oder Loki weiterzuleiten. Ein Gateway-Setup mit gezieltem Sampling reduziert die Datenmenge und sorgt für performantes Monitoring ohne Informationsverlust.

Installation des OpenTelemetry Collectors

Der Collector kann als Binary, Container oder über Paketmanager installiert werden. Auf Linux empfiehlt sich in Produktionsumgebungen das Binary oder Systemd-Setup für volle Kontrolle und Sicherheit.

# Collector Binary herunterladen
wget https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/v0.93.0/otelcol_linux_amd64.tar.gz
tar -xzf otelcol_linux_amd64.tar.gz
sudo mv otelcol /usr/local/bin/

# Systemd Service für den Collector anlegen
sudo tee /etc/systemd/system/otelcol.service <<EOF
[Unit]
Description=OpenTelemetry Collector
After=network.target

[Service]
ExecStart=/usr/local/bin/otelcol --config /etc/otel-collector/config.yaml
Restart=always
User=otel
Group=otel
NoNewPrivileges=yes
ProtectSystem=full
PrivateTmp=yes

[Install]
WantedBy=multi-user.target
EOF

sudo systemctl daemon-reload
sudo systemctl enable --now otelcol

Collector als Gateway

Im Gateway-Pattern fungiert der Collector als zentraler Punkt, der Daten aus mehreren Hosts oder Services sammelt. Alle Agents oder SDKs senden ihre Telemetrie an den Gateway-Collector, der sie transformiert, filtert und an die Backend-Systeme weiterleitet.

Konfiguration von Inputs/Receivers

Die wichtigsten Receiver sind OTLP, Prometheus, Jaeger oder OpenCensus. Sie definieren, wie und auf welchen Ports Daten empfangen werden.

receivers:
  otlp:
    protocols:
      grpc:
      http:
  prometheus:
    config:
      scrape_configs:
        - job_name: 'linux-metrics'
          static_configs:
            - targets: ['localhost:9100']

Processing und Sampling

Collector-Processor steuern, wie Daten transformiert oder reduziert werden. Sampling reduziert Traces, ohne den Kontext zu verlieren. Beispielsweise kann 10 % der Traces weitergeleitet werden, während alle Metriken vollständig erhalten bleiben.

processors:
  batch:
    timeout: 5s
    send_batch_size: 1024

  probabilistic_sampler:
    sampling_percentage: 10

Exporter konfigurieren

Exporters leiten die Daten an Backends weiter. Beliebte Exporter sind:

  • Prometheus für Metriken
  • Jaeger oder Tempo für Traces
  • Loki oder OpenSearch für Logs
exporters:
  prometheus:
    endpoint: "0.0.0.0:8889"
  jaeger:
    endpoint: "http://jaeger-collector:14268/api/traces"

Full Pipeline definieren

Eine Pipeline verbindet Receiver, Processor und Exporter. So können Daten effizient gesammelt, gefiltert und transportiert werden.

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

Security und Hardening

Der Collector sollte mit minimalen Rechten laufen, TLS für Input/Output nutzen und Systemd-Sandboxing verwenden:

[Service]
User=otel
Group=otel
NoNewPrivileges=yes
ProtectSystem=full
ProtectHome=yes
PrivateTmp=yes

Monitoring und Health Checks

Der Collector bietet /metrics und /health Endpoints für Prometheus oder externe Monitoring-Systeme:

receivers:
  health_check:
    endpoint: "0.0.0.0:13133"

Best Practices

  • Collector als zentrales Gateway einsetzen, nicht lokal auf jedem Host für alle Exporter
  • Sampling für Traces konfigurieren, Metriken vollständig exportieren
  • TLS und Authentifizierung zwischen Agents und Gateway aktivieren
  • Buffering durch Batch-Prozessoren nutzen, um Lastspitzen abzufedern
  • Systemd-Sandboxing und dedizierte Benutzer einsetzen
  • Regelmäßige Updates und Versionskontrolle der Konfiguration
  • Health-Endpoints in Monitoring einbinden, Alerts bei Fehlfunktionen konfigurieren

Mit einem sauber aufgesetzten OpenTelemetry Collector als Gateway lassen sich Telemetrie-Daten sicher, performant und kontrolliert erfassen. Sampling reduziert die Datenlast, während Batch-Processing und dedizierte Exporter eine stabile Observability-Pipeline gewährleisten.

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:

  • Professionelle Konfiguration von Routern und Switches

  • Einrichtung von VLANs, Trunks, Routing, DHCP, NAT, ACLs und weiteren Netzwerkfunktionen

  • Erstellung von Topologien und Simulationen in Cisco Packet Tracer

  • Aufbau, Analyse und Fehlerbehebung von Netzwerk-Labs in GNS3 und EVE-NG

  • Automatisierung von Netzwerkkonfigurationen mit Python, Netmiko, Paramiko, NAPALM und Ansible

  • Erstellung von Skripten für wiederkehrende Netzwerkaufgaben

  • Dokumentation der Konfigurationen und Bereitstellung nachvollziehbarer Lösungswege

  • Konfigurations-Backups, Optimierung bestehender Setups und technisches Troubleshooting

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

Related Articles