Docker überwachen

Instana Erkennt und überwacht automatisch „ Docker “-Container, um Ihnen Echtzeit-Einblicke in Metadaten (Labels), Metriken und alle unterstützten Technologien zu bieten, die in jedem erkannten Container ausgeführt werden.

Weitere Informationen finden Sie unter „Unterstützte Technologien “.

Neben der Überwachung des Zustands jedes einzelnen Containers und dem Erhalt von Benachrichtigungen bei Problemen können Sie auch die Service-Erkennung aktivieren, um alle Ihre Container-Informationen optimal zu nutzen.

Unterstützungsinformationen

Um sicherzustellen, dass der Sensor „ Docker “ mit Ihrer aktuellen Konfiguration kompatibel ist, lesen Sie bitte die folgenden Abschnitte mit Support-Informationen:

Unterstützte Versionen und Support-Richtlinien

Der Sensor unterstützt die folgenden Versionen von „ Docker “:

  • Docker 23.0
  • Docker 25.0
  • Docker 26.x
  • Docker 27.x

Die folgende Tabelle zeigt die aktuell unterstützte Version und die Support-Richtlinien:

Technologie Support-Richtlinie Neueste Technologieversion Neueste unterstützte Version
Docker 45 Tage 29.7.1 29.6.0

Weitere Informationen zur Support-Richtlinie finden Sie unter „Support-Strategie für Sensoren “.

Installation

Ausführliche Installationsanweisungen finden Sie unter „Installation des Agenten“ auf Docker.

Hinweis:
Für den „ Instana “-Agenten ist die Version „ 1.11 “ von „ Docker “ oder höher erforderlich.

Messdatenerfassung

Um die Metriken anzuzeigen, wählen Sie in der Seitenleiste der Benutzeroberfläche von „ Instana “ den Punkt „Infrastruktur“ aus, klicken Sie auf einen bestimmten überwachten Host, und schon wird ein Host-Dashboard mit allen erfassten Metriken und überwachten Prozessen angezeigt.

Standardmäßig werden die Docker-Messdaten alle 10 Sekunden erfasst. Dieses Intervall kann in der Agentenkonfigurationsdatei <agent_install_dir>/etc/instana/configuration.ymlkonfiguriert werden:

com.instana.plugin.docker:
  stats: true
  interval: 10
 

Um einen Überblick über die CPU- und Speicherauslastung Ihrer Container zu erhalten, aktivieren Sie die Option „Metrikübersicht“ auf der Infrastrukturkarte. Sie können außerdem die Funktion „Dynamic Focus“ nutzen, um Teile Ihrer Infrastruktur im Kontext Ihrer Container zu identifizieren und zu isolieren.

Auf dem Container-Dashboard von „ Docker “ werden die Konfigurations- und Leistungskennzahlen für den Container angezeigt.

Klicken Sie auf Containerinformationen abrufen, um detaillierte Informationen zum aktiven Container anzuzeigen. Die angezeigten Informationen sind mit der Ausführung des Befehls docker inspect identisch.

Konfigurationsdaten

Konfiguration Beschreibung
Image Der Docker-Image-Name.
Befehl
Erstellt Die vom Container erstellte Zeitmarke.
Gestartet Die Container-Startzeitmarke.
ID Die Container-ID.
Namen Der Containername.
Netzmodus Die konfigurierten Netzeinstellungen für den Container.
Storage-Treiber Der konfigurierte Storage-Treiber.
Docker-Version Die verwendete Docker-Version.
Containerbezeichnungen Bezeichnungen, die auf den Container angewendet werden.
Ports

Leistungsmetriken

Mithilfe der Docker Engine-API werden die Leistungsmessdaten vom Endpunkt /containers/{id}/stats zurückgegeben.

CPU insgesamt %

Die Gesamtsumme der CPU-Auslastung in %. Der aktuelle gemessene KPI-Wert wird angezeigt.

Datenpunkt: Der Wert wird aus dem Schlüssel total_usage erfasst, der im Objekt cpu_stats zurückgegeben wird.

Speichernutzung in %

Die Gesamtspeicherbelegung in Prozent. Der aktuelle gemessene KPI-Wert wird angezeigt.

Datenpunkt: Der Wert wird als Quotient der im Objekt memory_stats zurückgegebenen Schlüssel usage und limit berechnet.

CPU

Die Gesamt-, Kernel- und Benutzermessdaten samt ihrer normalisierten Werte im Bereich [0, 100] % werden in einem Diagramm über einen ausgewählten Zeitraum angezeigt.

Datenpunkte: Die Werte werden aus den Schlüsseln total_usage, usage_in_kernalmode und usage_in_usermode erfasst, die im Objekt cpu_stats zurückgegeben werden.

Die Anzahl der Drosselungen und die Zeitwerte werden in einem Diagramm über einen ausgewählten Zeitraum angezeigt.

Datenpunkte: Die Werte werden aus den im Objekt cpu_stats zurückgegebenen Schlüsseln periods und throttling_time erfasst.

Speicher

Die Nutzungs-, RSS-, Cache- und Speicher-Messdaten werden in einem Diagramm über einen ausgewählten Zeitraum angezeigt.

Datenpunkte: Die Werte werden aus den Schlüsseln usage, total_rss und total_cache erfasst, die im Objekt memory_stats zurückgegeben werden. Die Speicherbelegung wird als abgeleiteter Messwert in Prozent angezeigt.

Über einen ausgewählten Zeitraum werden in einem Diagramm die Cachemessdaten 'Aktiv anonym', 'Aktiver Cache', 'Inaktiv anonym' und 'Inaktiver Cache' in einem Diagramm über einen ausgewählten Zeitraum angezeigt.

Datenpunkte: Die Werte werden aus den Schlüsseln active_anon, active_file, inactive_anon und inactive_file erfasst, die im Objekt memory_stats zurückgegeben werden.

Block-E/A

Die Lese- und Schreibwerte werden in einem Diagramm über einen ausgewählten Zeitraum angezeigt.

Datenpunkt: Die Werte werden aus dem Schlüssel blkio.io_service_bytes erfasst, der im Objekt blkio_stats zurückgegeben wird.

Netz

Die Netz-Bytes rx (empfangen) und tx (übertragen), Fehler, Pakete und verworfene Messdaten werden in einem Diagramm über einen ausgewählten Zeitraum angezeigt.

Datenpunkte: Alle Werte werden von den Schlüsseln erfasst, die im Objekt network zurückgegeben werden; rx_dropped, rx_bytes, rx_errors, rx_packets, tx_dropped, tx_bytes, tx_errors und tx_packets.

Ausführliche Informationen zu bestimmten Docker -Laufzeitmetriken finden Sie in der Docker -Dokumentation.

Signatur für den Allgemeinzustand

Für jeden Sensor gibt es eine kuratierte Wissensdatenbank für Signaturen für den Allgemeinzustand, die kontinuierlich anhand der eingehenden Messdaten ausgewertet werden und die je nach Auswirkung auf den Benutzer Probleme oder Vorfälle auslösen können.

Integrierte Ereignisse lösen Probleme oder Vorfälle aus, wenn bei Entitäten Fehler-Signaturen festgestellt werden, während benutzerdefinierte Ereignisse Probleme oder Vorfälle auslösen, wenn die Schwellenwerte einer einzelnen Metrik einer bestimmten Entität überschritten werden.

Informationen zu den integrierten Ereignissen für den Docker -Sensor finden Sie unter Integrierte Ereignisreferenz.

Konfigurieren des „ Docker “-Protokollsensors

Standardmäßig ist die Protokollerfassung im Sensor „ Docker “ deaktiviert. Sie müssen den Protokollsensor „ Docker “ konfigurieren, um die Protokollierung zu aktivieren. Der Log-Sensor „ Docker “ weist jedoch gewisse Einschränkungen auf. Weitere Informationen finden Sie unter „Einschränkungen des Protokollsensors für den Dienst „ Docker “.

Aktivieren der Protokollsammlung für „ Docker “

Führen Sie die folgenden Schritte aus, um die Protokollierung zu aktivieren:

  1. Erwerben Sie eine Erweiterung zur „ Instana “-Lizenz. Bevor Sie fortfahren, lesen Sie bitte die Informationen zu den Lizenz- und Berechtigungsanforderungen, um Ihre Lizenz zu überprüfen.

  2. Aktivieren Sie die Protokollerfassung, indem Sie den Protokollsensor „ Docker “ in der Agent-Konfigurationsdatei wie im folgenden Beispiel gezeigt konfigurieren:

    com.instana.plugin.docker:
      logs:
        enabled: true
     

    Das folgende Beispiel zeigt die möglichen Konfigurationsoptionen mit ihren Standardwerten:

    com.instana.plugin.docker:
      logs:
        enabled: true
      unixSocket: "/var/run/docker.sock"
      maxBufferSize: 16777216
      minBatchSize: 1024
      minBatchWithholdCount: 2
      sendInterval: 1
      socketTimeout: 600
      maxLineLength: 16384
     

    In der folgenden Tabelle sind die Konfigurationsoptionen und ihre Beschreibungen aufgeführt:

    Konfigurationsoption Beschreibung Standardwert
    unixSocket Der Pfad zum Socket des Daemons „ Docker “. "/var/run/docker.sock"
    maxBufferSize Die maximale Größe des internen Puffers in Byte. Hiermit wird festgelegt, wie viele Protokollmeldungsdaten während des Auslesens im Speicher des Sensors gespeichert werden können. 16777216
    minBatchSize Die Mindestgröße eines an den Server zu übertragenden Nachrichtenstapels in Zeichen. Eine Nachrichtengruppe wird erst übertragen, wenn sie mindestens diese Größe erreicht hat (bis zuminBatchWithholdCount den Wiederholungsversuchen). 1024
    minBatchWithholdCount Die Anzahl der Male, die ein Stapel wegen zu geringer Größe zurückgehalten werden kann, bevor er dennoch versendet wird. Wenn ein Protokollstapel kleiner als minBatchSize, ist, wird er nicht sofort gesendet. Auch wenn die Datenmenge geringer bleibt als minBatchSize,, wird sie letztendlich doch gesendet, sobald die Anzahl der Versuche diesen Wert überschreitet. 2
    sendInterval Die Wartezeit zwischen den Versuchen, einen Protokollstapel zu senden, in Sekunden. 1
    socketTimeout Die Dauer in Sekunden, nach der eine Socket-Verbindung als abgelaufen gilt. 600
    maxLineLength Die maximale Länge einer Zeile im Protokoll, in Zeichen. Da diese Länge in Zeichen gemessen wird, hängt die tatsächliche Anzahl der verwendeten Bytes von der Kodierung ab. 16384

Nachdem Sie die Protokollsammlung aktiviert haben, können Sie die Protokolle in der Benutzeroberfläche von „ Instana “ einsehen. Weitere Informationen finden Sie unter „ Docker -Protokolle anzeigen “.

Deaktivieren der Protokollierung von „ Docker “

Um die Protokollierung von „ Docker “ wieder zu deaktivieren, wählen Sie eine der folgenden Optionen:

  • Setzen Sie das enabled Flag in der false Agentenkonfigurationsdatei auf:

    com.instana.plugin.docker:
      logs:
        enabled: false
     
  • Entfernen Sie den logs Abschnitt aus der Konfigurationsdatei des Agenten.

Hinweis:
Die Protokollierung ist standardmäßig inaktiviert.

Vermeidung doppelter Protokolle

Die „ AutoTracing “-Funktionen des Agenten erfassen automatisch Trace-Protokolle von Anwendungen innerhalb von Containern. Wenn daher sowohl Trace-Protokolle als auch „ Docker “-Protokolle aktiviert sind, führt dies zu doppelten Protokollen. Um dieses Problem zu vermeiden, aktivieren Sie nur eine der beiden Optionen.

Anwendungsprotokoll-Traces haben den Vorteil, dass sie mit den Anwendungsprotokollen korreliert werden können, während dies bei „ Docker “-Protokollen nicht der Fall ist. Anwendungs-Traces erfassen jedoch nur Protokolle der ERROR Stufen WARNING und, während der Protokollsensor „ Docker “ den gesamten Protokollausgabestrom erfasst, einschließlich der Protokolle aller Stufen.

Docker -Protokolle anzeigen

Führen Sie die folgenden Schritte aus, um die Protokolle von „ Docker “ anzuzeigen:

  1. Klicken Sie im Navigationsmenü der Benutzeroberfläche von „ Instana “ auf „Protokolle “.
  2. Klicken Sie auf „Protokolle analysieren “.
  3. Fügen Sie im Feld „Filter“ auf dem Dashboard „Analytics-Protokolle“ den Containerfilter „ Docker “ hinzu.

Sie können alle Protokolle einsehen, die vom Protokollsensor „ Docker “ erfasst wurden.

Datenströme

Der Log-Sensor „ Docker “ erfasst die Streams stdout und stderr aus den Containern von „ Docker “.

Einschränkungen des Log-Sensors von „ Docker “

Der Protokollsensor „ Docker “ weist folgende Einschränkungen auf:

  • Für die Erfassung von Container-Protokollen muss der Daemon „ Docker “ ausgeführt werden.
  • Der Protokollsensor „ Docker “ erfasst keine Protokolle aus „ Docker “-Umgebungen, die Containerd als Container-Technologie verwenden. Um diese Container zu überwachen, verwenden Sie den Containerd-Sensor.