Heim >Backend-Entwicklung >Golang >Verwendung von ELK zur Protokollerfassung und -analyse in Beego
Verwendung von ELK zur Protokollerfassung und -analyse in Beego
ELK ist ein sehr beliebtes Protokollerfassungs- und Analysetoolset, das aus drei Open-Source-Software besteht: Elasticsearch, Logstash und Kibana. Mit diesem Toolset können große Mengen an Protokolldaten in Echtzeit durchsucht, analysiert und visualisiert werden.
Bei der Entwicklung von Webanwendungen sind Protokolle eine sehr nützliche Informationsquelle, die zum Verfolgen des Anwendungsverhaltens, zum Debuggen und zur Leistungsoptimierung usw. verwendet werden kann. Beego ist ein in der Go-Sprache geschriebenes Open-Source-Webframework, das ELK problemlos zur Protokollerfassung und -analyse verwenden kann.
In diesem Artikel erfahren Sie, wie Sie ELK in Beego für die Protokollerfassung und -analyse konfigurieren und verwenden und wie Sie Kibana für die Datenvisualisierung verwenden.
1. ELK installieren und konfigurieren
Zuerst müssen Sie ELK installieren und konfigurieren. Sie können die neueste Version des ELK-Softwarepakets auf der offiziellen Website herunterladen: https://www.elastic.co/downloads/
Installing ELK erfordert zuerst die Installation von Java. Legen Sie dann die Umgebungsvariable JAVA_HOME fest, entpacken Sie dann das ELK-Paket und starten Sie Elasticsearch und Kibana:
cd elasticsearch-7.6.0/bin ./elasticsearch cd kibana-7.6.0/bin ./kibana
Bearbeiten Sie dann die Logstash-Konfigurationsdatei logstash.conf und konfigurieren Sie Eingabe, Filter und Ausgabe:
input { tcp { port => 5000 codec => json } } filter { if [type] == "beego" { grok { match => { "message" => "%{COMBINEDAPACHELOG}" } } } } output { elasticsearch { hosts => ["localhost:9200"] index => "%{type}-%{+YYYY.MM.dd}" } }
Diese Konfiguration Die Datei gibt an, dass Logstash die TCP-Verbindung über Port 5000 überwacht und JSON-Kodierung und -Dekodierung verwendet. Wenn eine von einer Beego-Anwendung gesendete Protokollnachricht empfangen wird, wird die Protokollnachricht mithilfe eines Grok-Filters für reguläre Ausdrücke analysiert. Die geparsten Protokollmeldungen werden dann an Elasticsearch ausgegeben.
2. Verwenden Sie ELK in der Beego-Anwendung.
Verwenden Sie Logrus als Protokollbibliothek in der Beego-Anwendung, und Sie können Protokolle an den Logstash-Server senden:
package main import ( "github.com/astaxie/beego" "github.com/sirupsen/logrus" "github.com/x-cray/logrus-prefixed-formatter" "gopkg.in/natefinch/lumberjack.v2" ) func init() { logLevel, err := logrus.ParseLevel(beego.AppConfig.String("logrus.level")) if err != nil { logLevel = logrus.InfoLevel } logrus.SetLevel(logLevel) logrus.SetFormatter(&prefixed.TextFormatter{}) logrus.SetOutput(&lumberjack.Logger{ Filename: beego.AppConfig.String("logrus.filename"), MaxSize: 10, // megabytes MaxBackups: 3, MaxAge: 28, // days }) logrus.AddHook(&logrusHook{}) } type logrusHook struct{} func (h *logrusHook) Levels() []logrus.Level { return logrus.AllLevels } func (h *logrusHook) Fire(entry *logrus.Entry) error { message, err := entry.String() if err != nil { return err } logstash := beego.AppConfig.String("logstash.addr") connection, err := net.Dial("tcp", logstash) if err != nil { return err } defer connection.Close() _, err = connection.Write([]byte(message)) return err }
In diesem Codeausschnitt verwenden Sie zuerst die Logrus-Bibliothek, um den Logger zu initialisieren, und dann Protokollausgabe in Dateien und Standardausgabe. Fügen Sie dann einen logrusHook hinzu, um bei jeder Protokollierung eine JSON-formatierte Protokollnachricht an den Logstash-Server zu senden.
Es ist sehr praktisch, Logrus als Protokollierungsbibliothek in Beego-Anwendungen zu verwenden. Sie müssen nur die Logrus-Bibliothek in den Code importieren und dann die Methode logrus.WithFields() verwenden, um Protokollinformationen in Form eines Schlüsselwerts aufzuzeichnen Paare.
3. Verwenden Sie Kibana zur Datenvisualisierung.
Kibana ist eine Weboberfläche, die Protokolldaten abfragen, visualisieren und analysieren kann. Sie kann Daten aus Elasticsearch abrufen und visualisieren. Öffnen Sie die Adresse von Kibana in einem Browser, normalerweise http://localhost:5601, und wählen Sie das Menü „Entdecken“, um die gesammelten Protokolldaten zu durchsuchen und anzuzeigen.
Dashboards können in Kibana erstellt werden, um mehrere Abfragen zusammen zu visualisieren und so den Zustand des Systems zu überwachen. Auch Filter und Tags können genutzt werden, um die Daten genauer abzufragen und zu visualisieren.
4. Zusammenfassung
Die Verwendung von ELK zur Protokollerfassung und -analyse in der Beego-Anwendung ist eine sehr praktische und praktische Methode. ELK bietet flexible Protokollfilter- und Visualisierungsfunktionen, um Anwendungsprobleme schnell zu lokalisieren und die Leistung zu optimieren. Gleichzeitig kann der Laufstatus der Anwendung durch Visualisierung und Dashboards intuitiver überwacht werden.
Das obige ist der detaillierte Inhalt vonVerwendung von ELK zur Protokollerfassung und -analyse in Beego. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!