Menggunakan ELK dalam Beego untuk pengumpulan dan analisis log
ELK ialah set alat pengumpulan dan analisis log yang sangat popular, yang terdiri daripada tiga perisian sumber terbuka: Elasticsearch, Logstash dan Kibana. Set alat ini boleh digunakan untuk mencari, menganalisis dan menggambarkan sejumlah besar data log dalam masa nyata.
Dalam pembangunan aplikasi web, log ialah sumber maklumat yang sangat berguna yang boleh digunakan untuk menjejak tingkah laku aplikasi, penyahpepijatan dan pengoptimuman prestasi. Beego ialah rangka kerja web sumber terbuka yang ditulis dalam bahasa Go, yang boleh menggunakan ELK dengan mudah untuk pengumpulan dan analisis log.
Artikel ini akan memperkenalkan cara mengkonfigurasi dan menggunakan ELK dalam Beego untuk pengumpulan dan analisis log, dan cara menggunakan Kibana untuk visualisasi data.
1. Pasang dan konfigurasikan ELK
Mula-mula anda perlu memasang dan mengkonfigurasi ELK Anda boleh memuat turun versi terkini pakej perisian ELK di laman web rasmi: https://www.elastic .co/downloads/
Untuk memasang ELK, anda perlu memasang Java terlebih dahulu dan menetapkan pembolehubah persekitaran JAVA_HOME, kemudian nyahzip pakej ELK, dan mulakan Elasticsearch dan Kibana:
cd elasticsearch-7.6.0/bin ./elasticsearch cd kibana-7.6.0/bin ./kibana
Kemudian edit Fail konfigurasi Logstash logstash.conf, konfigurasikan input, Penapis dan Output:
input { tcp { port => 5000 codec => json } } filter { if [type] == "beego" { grok { match => { "message" => "%{COMBINEDAPACHELOG}" } } } } output { elasticsearch { hosts => ["localhost:9200"] index => "%{type}-%{+YYYY.MM.dd}" } }
Fail konfigurasi ini menentukan bahawa Logstash mendengar sambungan TCP pada port 5000 dan menggunakan pengekodan dan penyahkodan JSON. Apabila mesej log yang dihantar oleh aplikasi Beego diterima, mesej log dihuraikan menggunakan penapis grok ungkapan biasa. Mesej log yang dihuraikan kemudiannya dikeluarkan kepada Elasticsearch.
2. Menggunakan ELK dalam aplikasi Beego
Menggunakan logrus sebagai pustaka log dalam aplikasi Beego, anda boleh menghantar log ke pelayan 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 }
Coretan kod ini, penggunaan pertama perpustakaan logrus untuk memulakan logger dan mengeluarkan log ke fail dan output standard. Kemudian tambahkan logrusHook untuk menghantar mesej log berformat JSON ke pelayan Logstash setiap kali ia dilog.
Adalah sangat mudah untuk menggunakan logrus sebagai perpustakaan pengelogan dalam aplikasi Beego Anda hanya perlu mengimport perpustakaan logrus dalam kod, dan kemudian menggunakan kaedah logrus.WithFields() untuk merekod maklumat log dalam borang. pasangan nilai kunci.
3. Gunakan Kibana untuk visualisasi data
Kibana ialah antara muka web yang boleh membuat pertanyaan, memvisualisasikan dan menganalisis data log dan memvisualisasikannya. Buka alamat Kibana dalam penyemak imbas, biasanya http://localhost:5601, dan pilih menu "Discover" untuk mencari dan menggambarkan data log yang dikumpul.
Papan pemuka boleh dibuat di Kibana untuk menggambarkan berbilang pertanyaan bersama-sama untuk memantau kesihatan sistem. Penapis dan teg juga boleh digunakan untuk membuat pertanyaan dan menggambarkan data dengan lebih tepat.
4. Ringkasan
Menggunakan ELK untuk pengumpulan dan analisis log dalam aplikasi Beego ialah kaedah yang sangat mudah dan praktikal. ELK menyediakan fungsi penapisan dan visualisasi log yang fleksibel untuk mengesan masalah aplikasi dengan cepat dan mengoptimumkan prestasi. Pada masa yang sama, status berjalan aplikasi boleh dipantau dengan lebih intuitif melalui visualisasi dan papan pemuka.
Atas ialah kandungan terperinci Menggunakan ELK untuk pengumpulan dan analisis log dalam Beego. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!