Heim  >  Artikel  >  Betrieb und Instandhaltung  >  So verwenden Sie Docker für die Containerprotokollanalyse und Ausnahmeüberwachung

So verwenden Sie Docker für die Containerprotokollanalyse und Ausnahmeüberwachung

WBOY
WBOYOriginal
2023-11-07 14:09:241050Durchsuche

So verwenden Sie Docker für die Containerprotokollanalyse und Ausnahmeüberwachung

Docker ist eine beliebte Containerisierungstechnologie, die eine Anwendung und ihre Abhängigkeiten in einen Container packen kann, um sie als einzelne tragbare Anwendungseinheit auszuführen. Diese Technologie ermöglicht Entwicklern die einfache Bereitstellung und Verwaltung von Anwendungen in verschiedenen Umgebungen. In praktischen Anwendungen sind Protokollanalyse und Ausnahmeüberwachung von Docker-Containern sehr wichtig. In diesem Artikel wird die Verwendung von Docker für die Protokollanalyse und Ausnahmeüberwachung von Containern vorgestellt, einschließlich der folgenden Aspekte:

  1. Docker-Containerprotokolle
  2. Verwenden Sie den Docker-Protokollbefehl, um Protokolle anzuzeigen.
  3. Verwenden Sie Logstash für die Protokollerfassung und -analyse.
  4. Verwenden Elasticsearch-Datenindizierung und -speicherung
  5. Verwendung von Kibana zur Datenvisualisierung

Zuerst müssen wir die Protokolle über den Docker-Container verstehen.

1. Docker-Containerprotokolle

Docker-Containerprotokolle zeichnen die Betriebsinformationen im Container auf, einschließlich: Anwendungsausgabeinformationen, Fehlerinformationen, Zugriffsprotokolle, Systemprotokolle usw. Diese Informationen sind für den Betrieb und die Wartung der Anwendung, die Nachverfolgung, die Ausnahmebehandlung usw. sehr wichtig. Daher müssen wir die Protokolle von Docker-Containern sammeln und analysieren.

2. Verwenden Sie den Docker-Protokollbefehl, um die Protokolle anzuzeigen.

Docker stellt den Protokollbefehl bereit, mit dem die vom Container ausgegebenen Protokollinformationen angezeigt werden können. Mit dem Befehl log können wir ganz einfach die Echtzeit-Ausgabeinformationen des laufenden Containers anzeigen und diese Informationen an die Konsole ausgeben oder in einer Datei speichern. Das Folgende ist ein Beispiel für die Verwendung des Protokollbefehls zum Anzeigen von Containerprotokollen:

// 查看容器ID为xxx的日志
docker logs xxx

// 查看容器ID为xxx的日志,输出到控制台并实时更新
docker logs -f xxx 

// 查看容器ID为xxx的最近10条日志
docker logs --tail 10 xxx 

Mithilfe des Protokollbefehls können Entwickler problemlos die Echtzeit-Ausgabeinformationen des Containers anzeigen und das Problem schnell ermitteln. Diese Methode eignet sich jedoch für Container Wenn die Größe des Containers auf einem einzelnen Host zunimmt, wird es schwierig, die Protokolle manuell anzuzeigen. Daher müssen Protokollerfassungstools verwendet werden, um die Protokolle automatisch zu sammeln und zu analysieren.

3. Verwenden Sie Logstash zur Protokollsammlung und -analyse.

Logstash ist ein Open-Source-Tool zum Sammeln, Filtern, Konvertieren und Senden von Protokollen. Daten werden über das Eingabe-Plug-in gesammelt, vom Filter verarbeitet und konvertiert und dann ausgegeben Das Plug-in verarbeitet die Daten an das Ziel, z. B. Elasticsearch, Kafka, Amazon S3 usw. Bei der Protokollsammlung von Docker-Containern können wir Logstash als Tool zum Sammeln und Analysieren von Protokollen verwenden. Das Folgende ist ein Beispiel für die Verwendung von Logstash zur Protokollerfassung und -analyse:

1 Installieren Sie Logstash

Laden Sie Logstash von der offiziellen Website herunter und entpacken Sie die Datei zur Verwendung. Der Befehl zum Starten von Logstash lautet wie folgt:

cd logstash-7.15.1/bin
./logstash -f logstash.conf

2. Logstash konfigurieren

Um Logstash als Protokollerfassungstool für den Container zu verwenden, müssen wir das Eingabe-Plug-in und das Ausgabe-Plug-in in Logstash konfigurieren. Das Folgende ist ein Beispiel für die Konfigurationsdatei logstash.conf:

input {
  docker {
    endpoint => "unix:///var/run/docker.sock"
    container_id => "ALL"
  }
}

filter {
  grok {
    match => { "message" => "%{COMBINEDAPACHELOG}" }
  }
}

output {
  elasticsearch {
    hosts => "localhost:9200"
  }
  stdout {
    codec => "json_lines"
  }
}

Die obige Konfigurationsdatei bedeutet, dass wir Protokollinformationen von allen Docker-Containern sammeln, die Daten über den Grok-Filter filtern und analysieren und schließlich die verarbeiteten Daten ausgeben müssen Elasticsearch.

4. Verwenden Sie Elasticsearch zur Datenindizierung und -speicherung.

Elasticsearch ist eine verteilte Open-Source-Suchmaschine, mit der verschiedene Arten von Dokumenten durchsucht werden können. In der Protokollsammlung von Docker-Containern verwenden wir Elasticsearch als Index und Speicherung von Daten. Das Folgende ist ein Beispiel für die Verwendung von Elasticsearch zur Datenindizierung und -speicherung:

1. Installieren Sie Elasticsearch

Laden Sie Elasticsearch von der offiziellen Website herunter und entpacken Sie die zu verwendende Datei. Der Befehl zum Starten von Elasticsearch lautet wie folgt:

cd elasticsearch-7.15.1/bin
./elasticsearch

2. Konfigurieren Sie Elasticsearch

Konfigurieren Sie den Namen und den Knotennamen des ES-Clusters, indem Sie die Datei elasticsearch.yml ändern. Das Folgende ist ein einfaches Beispiel für eine Elasticsearch.yml-Konfigurationsdatei:

cluster.name: docker-cluster
node.name: es-node1
network.host: 0.0.0.0

Die obige Konfiguration bedeutet, dass wir einen Cluster mit dem Namen Docker-Cluster erstellen, dessen Knotenname es-node1 ist und der ES-Dienst an alle verfügbaren Netzwerkschnittstellen gebunden ist.

3. Erstellen Sie einen Index

In Elasticsearch müssen wir zunächst einen Index für die Daten erstellen und die Felder in den Daten angeben. Der Beispielcode lautet wie folgt:

PUT /logstash-test
{
  "mappings": {
    "properties": {
      "host": {
        "type": "keyword"
      },
      "message": {
        "type": "text"
      },
      "path": {
        "type": "text"
      },
      "verb": {
        "type": "keyword"
      }
    }
  }
}

Der obige Code erstellt in Elasticsearch einen Index mit dem Namen „logstash-test“ und definiert die im Index enthaltenen Felder und Feldtypen.

5. Verwenden Sie Kibana zur Datenvisualisierungsanzeige.

Kibana ist ein Open-Source-Datenvisualisierungstool, mit dem von Elasticsearch erhaltene Daten angezeigt werden können. Während des Protokollerfassungsprozesses von Docker-Containern verwenden wir Kibana zur Datenvisualisierungsanzeige. Das Folgende ist ein Beispiel für die Verwendung von Kibana zur Datenvisualisierung:

1 Installieren Sie Kibana

Laden Sie Kibana von der offiziellen Website herunter und entpacken Sie die Datei zur Verwendung. Der Befehl zum Starten von Kibana lautet wie folgt:

cd kibana-7.15.1/bin
./kibana

2. Einstellungen der Indexvorlage

In Kibana müssen wir die Indexvorlage einrichten. Die Indexvorlage enthält Datenfelddefinitionen und Informationen zur Abfrageanalyse. Der Beispielcode lautet wie folgt:

PUT _index_template/logstash-template
{
  "index_patterns": ["logstash-*"],
  "template": {
    "mappings": {
      "properties": {
        "@timestamp": { "type": "date" },
        "@version": { "type": "keyword" },
        "message": { "type": "text" },
        "path": { "type": "text" }
      }
    }
  }
}

Der obige Code bedeutet, eine Indexvorlage mit dem Namen „logstash-template“ zu erstellen und diese auf Indizes anzuwenden, deren Namen mit „logstash-*“ beginnen.

3. Datenvisualisierung

Im Plug-in-Panel von Kibana können Sie visuelle Vorlagen festlegen und verwalten. Über das Panel können wir problemlos verschiedene Arten von visuellen Diagrammen erstellen, z. B. Liniendiagramme, Balkendiagramme, Kreisdiagramme usw.

Zusammenfassend stellt dieser Artikel die Verwendung von Docker für die Containerprotokollanalyse und Ausnahmeüberwachung vor und enthält spezifische Codebeispiele. Docker selbst stellt den Protokollbefehl zum Anzeigen der Protokolle des Containers bereit. Mit zunehmender Größe des Containers wird es jedoch schwieriger, die Protokolle manuell anzuzeigen. Durch die Verwendung von Tools wie Logstash, Elasticsearch und Kibana können wir Containerprotokolle automatisch sammeln und analysieren und den Betriebsstatus des Containers anzeigen, was für den Anwendungsbetrieb und die Wartung sowie die Fehlerbehandlung sehr hilfreich ist.

Das obige ist der detaillierte Inhalt vonSo verwenden Sie Docker für die Containerprotokollanalyse und Ausnahmeüberwachung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn