Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Amalan go-zero dan ElasticStack: membina sistem pengelogan, pemantauan dan pengesanan teragih berprestasi tinggi

Amalan go-zero dan ElasticStack: membina sistem pengelogan, pemantauan dan pengesanan teragih berprestasi tinggi

WBOY
WBOYasal
2023-06-22 09:15:071562semak imbas

Dengan pembangunan berterusan teknologi Internet dan pengembangan berterusan senario aplikasi, aplikasi sistem teragih menjadi semakin meluas. Untuk sistem yang diedarkan, pemantauan, pengelogan dan pengesanan adalah komponen yang sangat penting. Ia boleh membantu kami mencari dan menyelesaikan masalah dalam masa dan meningkatkan kebolehpercayaan dan prestasi sistem.

Artikel ini akan memperkenalkan kaedah praktikal sistem pengelogan, pemantauan dan pengesanan teragih berdasarkan go-zero dan ElasticStack. Sistem ini boleh membantu kami mengumpul dan menyimpan log, memantau status sistem dan memaparkannya secara visual, dan menjejaki aliran permintaan dalam sistem yang diedarkan, dengan itu mencapai pemantauan dan penyelesaian masalah sistem yang komprehensif.

  1. Pengenalan kepada go-zero

go-zero ialah rangka kerja mikro perkhidmatan bahasa Go sumber terbuka dengan prestasi tinggi, kemudahan penggunaan dan fleksibiliti. Ia berdasarkan rangka kerja sumber terbuka seperti Gin dan gRPC, menyediakan pelbagai fungsi dan komponen, serta menyokong pengurusan proses penuh daripada kod perniagaan kepada operasi dan penyelenggaraan, serta penggunaan.

Bagi kami, perkara yang paling penting ialah go-zero menyediakan komponen pengelogan, pemantauan dan penjejakan yang sangat mudah. ​​Kami boleh menggunakannya dengan sangat mudah dalam kod perniagaan kami, yang membawa manfaat besar kepada kami apabila membina sistem teragih. Kemudahan dan kemudahan yang hebat.

  1. Pengenalan kepada ElasticStack

ElasticStack ialah enjin carian dan analisis diedarkan sumber terbuka, asalnya sumber terbuka oleh Elastic komponen terasnya termasuk Elasticsearch, Logstash, Kibana dan Beats.

Antaranya, Elasticsearch ialah teras enjin carian dan analisis yang diedarkan Ia menyediakan fungsi carian dan pengagregatan yang sangat berkuasa dan boleh digunakan untuk menyimpan dan mencari sejumlah besar data berstruktur dan tidak berstruktur enjin pemprosesan yang boleh digunakan untuk mengumpul, menukar dan menghantar data Kibana ialah alat visualisasi data yang boleh memaparkan data dalam carta kaya Beats ialah satu siri pengumpul data ringan yang boleh mengumpul dan menghantar Pelbagai jenis data dengan mudah;

Kami boleh menggunakan ElasticStack untuk membina platform pengelogan, pemantauan dan penjejakan, menyimpan data yang dikumpul dalam Elasticsearch, melakukan paparan dan analisis visual melalui Kibana dan mengumpul maklumat sistem atau aplikasi melalui Beats.

  1. Membina sistem pembalakan, pemantauan dan pengesanan teragih

Seterusnya, kami akan memperkenalkan cara menggunakan go-zero dan ElasticStack untuk membina sistem pembalakan, pemantauan dan pengesanan teragih.

Pertama, kita perlu memperkenalkan komponen pengelogan, pemantauan dan pengesanan go-zero ke dalam kod perniagaan. Mengambil log sebagai contoh, kita boleh menggunakan komponen logx. Dalam kod perniagaan, kami hanya perlu memanggil kaedah yang berkaitan bagi pakej logx di mana log perlu direkodkan. Contohnya:

logx.WithContext(r.Context()).Info("this is a log message")

Seterusnya, kita perlu menggunakan Beats untuk mengumpul log perniagaan. Kita boleh menggunakan komponen Filebeat untuk mencapai ini, yang boleh memantau fail log yang ditentukan, mengumpul data log dalam masa nyata dan menghantar data ke pelayan yang ditentukan. Sebagai contoh, kami boleh mengkonfigurasi Filebeat untuk memantau fail log perniagaan dan menghantar data ke Logstash.

Pada masa yang sama, kita perlu menyepadukan komponen Opentracing dalam go-zero untuk melaksanakan fungsi penjejakan. Kita boleh menggunakan pakej go.opentracing dan pakej jaeger-client-go untuk mencapai ini Dalam kod perniagaan, kita hanya perlu memanggil kaedah yang sepadan, seperti:

span, ctx := opentracing.StartSpanFromContext(r.Context(), "request")
defer span.Finish()

Pada masa yang sama, kami. perlu menggunakan Jaeger atau Zipkin sebagai storan Opentracing dan platform tontonan. Kita boleh menggunakan Jaeger sebagai platform storan dan menggunakan antara muka UI dalam Jaeger untuk melihat maklumat penjejakan.

Akhir sekali, kita perlu menggunakan komponen Metrik untuk melaksanakan fungsi pemantauan. Kami boleh menggunakan pakej Prometheus untuk mencapai ini. Kami hanya perlu memanggil kaedah yang sepadan dalam kod perniagaan dan mengkonfigurasi alamat dan port Prometheus dalam fail konfigurasi go-zero. Contohnya:

metric.NewCounter("requests_total").Add(1)

Kami boleh menggunakan komponen Prometheus untuk mengumpul, menyimpan dan memaparkan data pemantauan, dan kami boleh menggunakan Grafana sebagai antara muka visual untuk memantau data.

  1. Ringkasan

Melalui pengenalan di atas, kita dapat melihat bahawa adalah sangat mudah dan mudah untuk menggunakan go-zero dan ElasticStack untuk membina sistem pembalakan, pemantauan dan penjejakan yang diedarkan . Kami hanya perlu memperkenalkan komponen yang berkaitan ke dalam kod perniagaan dan mengkonfigurasi parameter yang sepadan, yang sangat sesuai untuk membina sistem teragih dengan cepat.

Pada masa yang sama, kami juga boleh menggunakan komponen dan rangka kerja lain yang serupa untuk membina sistem teragih, seperti Logrus, Zipkin, dll. Anda boleh memilih mengikut keperluan dan keadaan sebenar anda sendiri.

Atas ialah kandungan terperinci Amalan go-zero dan ElasticStack: membina sistem pengelogan, pemantauan dan pengesanan teragih berprestasi tinggi. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn