Heim  >  Artikel  >  Backend-Entwicklung  >  Was ist der beste Weg, um Docker-Container-Protokolle in Elasticsearch zu übertragen?

Was ist der beste Weg, um Docker-Container-Protokolle in Elasticsearch zu übertragen?

王林
王林nach vorne
2024-02-08 22:00:39526Durchsuche

将 Docker 容器日志获取到 Elasticsearch 的最佳方式是什么?

Der beste Weg, Docker-Container-Protokolle an Elasticsearch zu übertragen, ist die Verwendung von Filebeat. Filebeat ist ein kompakter Protokolldatei-Datensammler, der Docker-Containerprotokolle in Echtzeit zur Indizierung und Speicherung an Elasticsearch senden kann. Durch die Konfiguration der Docker-Eingabe und Elasticsearch-Ausgabe von Filebeat können Sie Docker-Containerprotokolle problemlos in Elasticsearch importieren. Gleichzeitig bietet Filebeat zahlreiche Filter- und Parsing-Optionen, mit denen Protokolle je nach Bedarf verarbeitet und transformiert werden können. Diese Methode ist nicht nur einfach und benutzerfreundlich, sondern auch äußerst effizient. Sie ist die beste Wahl zum Abrufen von Docker-Containerprotokollen.

Frageninhalt

Ich habe eine Go-Anwendung, die in einem Container läuft, der viel Protokollierung durchführt:

log.Println("Something happened!")

Da ich eine SSH-Verbindung zu dem Server herstellen kann, auf dem es läuft, kann ich die Ausgabe ausführen docker logs -f [id] 来查看 stderr und alles ist gut.

Aber jetzt möchte ich, dass die Protokolle in Elasticsearch eingehen.

Was ist der beste Weg? Ich habe viele komplizierte Methoden gesehen.

Eine Möglichkeit besteht darin, das Gelf-Protokollierungsformat und Logstash zu verwenden, aber der einzige Go-Gelf-Formatierer, den ich finden kann, ist sehr alt.

Oder melden Sie sich bei File an und verwenden Sie Filebeat. Aber ich möchte diesen Dateischritt nicht überspringen?

Workaround

Ich werde versuchen, Fluentd mit Docker einzurichten:

https://www.php.cn/link/39799c18791e8d7eb29704fc5bc04ac8

https://docs.docker.com/config/containers/logging/fluent/

Dann lassen Sie Fluidd auf Elasticsearch drücken:

https://www.php.cn/link/e0330da43b4d33f4ef9247ad260074f4

Das obige ist der detaillierte Inhalt vonWas ist der beste Weg, um Docker-Container-Protokolle in Elasticsearch zu übertragen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:stackoverflow.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen