Utilisation d'ELK pour la collecte et l'analyse de journaux dans Beego
ELK est un ensemble d'outils de collecte et d'analyse de journaux très populaire, composé de trois logiciels open source : Elasticsearch, Logstash et Kibana. Cet ensemble d'outils peut être utilisé pour rechercher, analyser et visualiser de grandes quantités de données de journaux en temps réel.
Dans le développement d'applications Web, les journaux sont une source d'informations très utile qui peut être utilisée pour suivre le comportement des applications, le débogage et l'optimisation des performances, etc. Beego est un framework Web open source écrit en langage Go, qui peut facilement utiliser ELK pour la collecte et l'analyse des journaux.
Cet article expliquera comment configurer et utiliser ELK dans Beego pour la collecte et l'analyse des journaux, et comment utiliser Kibana pour la visualisation des données.
1. Installez et configurez ELK
Vous devez d'abord installer et configurer ELK. Vous pouvez télécharger la dernière version du logiciel ELK sur le site officiel : https://www.elastic.co/downloads/
Installation. ELK nécessite d'abord d'installer Java. Et définissez la variable d'environnement JAVA_HOME, puis décompressez le package ELK et démarrez Elasticsearch et Kibana :
cd elasticsearch-7.6.0/bin ./elasticsearch cd kibana-7.6.0/bin ./kibana
Modifiez ensuite le fichier de configuration Logstash logstash.conf, configurez l'entrée, le filtre et la sortie :
input { tcp { port => 5000 codec => json } } filter { if [type] == "beego" { grok { match => { "message" => "%{COMBINEDAPACHELOG}" } } } } output { elasticsearch { hosts => ["localhost:9200"] index => "%{type}-%{+YYYY.MM.dd}" } }
Cette configuration. Le fichier spécifie que Logstash écoute sur la connexion TCP du port 5000 et utilise l'encodage et le décodage JSON. Lorsqu'un message de journal envoyé par une application Beego est reçu, le message de journal est analysé à l'aide d'un filtre grok d'expression régulière. Les messages du journal analysés sont ensuite envoyés à Elasticsearch.
2. Utilisez ELK dans l'application Beego
Utilisez logrus comme bibliothèque de journaux dans l'application Beego, et vous pouvez envoyer des journaux au serveur Logstash :
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 }
Dans cet extrait de code, utilisez d'abord la bibliothèque logrus pour initialiser l'enregistreur, et puis enregistrez la sortie dans les fichiers et la sortie standard. Ajoutez ensuite un logrusHook pour envoyer un message de journal au format JSON au serveur Logstash à chaque fois qu'il est enregistré.
Il est très pratique d'utiliser logrus comme bibliothèque de journalisation dans les applications Beego. Il vous suffit d'importer la bibliothèque logrus dans le code, puis d'utiliser la méthode logrus.WithFields() pour enregistrer les informations de journal sous forme de clé-valeur. paires.
3. Utilisez Kibana pour la visualisation des données
Kibana est une interface Web qui peut interroger, visualiser et analyser les données de journal. Elle peut récupérer des données d'Elasticsearch et les visualiser. Ouvrez l'adresse de Kibana dans un navigateur, généralement http://localhost:5601, et sélectionnez le menu « Découvrir » pour rechercher et visualiser les données de journal collectées.
Des tableaux de bord peuvent être créés dans Kibana pour visualiser plusieurs requêtes ensemble afin de surveiller la santé du système. Des filtres et des balises peuvent également être utilisés pour interroger et visualiser les données plus précisément.
4. Résumé
Utiliser ELK pour la collecte et l'analyse des journaux dans l'application Beego est une méthode très pratique et pratique. ELK fournit des fonctions flexibles de filtrage et de visualisation des journaux pour localiser rapidement les problèmes d'application et optimiser les performances. Dans le même temps, l'état d'exécution de l'application peut être surveillé de manière plus intuitive grâce à la visualisation et aux tableaux de bord.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!