Memandangkan skala dan kerumitan aplikasi Internet terus meningkat, pengurusan dan analisis log telah menjadi isu yang sangat penting, dan Flume, sebagai sistem pengumpulan dan pemprosesan log yang diedarkan, boleh dipercayai dan sangat tersedia, amat sesuai Digunakan dalam skala besar. -aplikasi Internet berskala.
Artikel ini terutamanya memperkenalkan cara menggunakan Flume dalam rangka kerja Beego untuk pengumpulan dan pemprosesan log. Saya harap ia akan membantu pembangun yang memerlukan pengurusan log.
1. Apakah itu rangka kerja Beego
Beego ialah rangka kerja Web yang dibangunkan dalam bahasa Go. Ia pantas, fleksibel, ringkas dan mudah dikembangkan. Ia mengguna pakai seni bina MVC, dilengkapi dengan komponen biasa seperti ORM, Sesi, Cache, dll., dan menyokong pemuatan panas, yang boleh meningkatkan kecekapan pembangunan.
2. Apakah itu Flume
Flume ialah sistem teragih untuk pengumpulan, pengagregatan dan pergerakan data. Flume digunakan terutamanya untuk mengumpul data yang dijana, seperti log pelayan web, log transaksi, dsb., dan kemudian menghantar data yang dikumpul secara seragam kepada kluster Hadoop untuk pemprosesan dan analisis.
Flume menyediakan satu siri komponen untuk pengumpulan data, termasuk Sumber, Saluran dan Sink. Sumber digunakan untuk mendapatkan data daripada sumber data, Saluran terutamanya melaksanakan caching dan pemprosesan data, dan Sink bertanggungjawab untuk menyimpan data ke dalam sistem sasaran.
3. Gunakan Flume dalam Beego untuk pengurusan log
Dalam Beego, kami boleh melaksanakan pengumpulan dan penghantaran log dengan memperkenalkan perpustakaan beego/kotak alat yang disyorkan. Langkah-langkah khusus adalah seperti berikut:
Masukkan arahan berikut dalam terminal untuk memasang beego/toolbox:
rreeeBuat fail bernama flume.conf pada komputer setempat dengan kandungan berikut:
go get github.com/astaxie/beego/toolbox
Fail konfigurasi ini mentakrifkan tiga komponen utama, iaitu Source , Saluran dan Sinki. Antaranya:
a1.sources = r1 a1.channels = c1 a1.sinks = k1 a1.sources.r1.type = exec a1.sources.r1.command = tail -F /var/log/nginx/access.log a1.channels.c1.type = memory a1.sinks.k1.type = avro a1.sinks.k1.hostname = localhost a1.sinks.k1.port = 2004 a1.sources.r1.channels = c1 a1.sinks.k1.channel = c1
Gunakan kaedah beego.SetLogger untuk menetapkan output log kepada fail dan mentakrifkan beberapa konfigurasi berkaitan log; untuk mentakrifkan nama Tugas berjadual untuk "log";
Atas ialah kandungan terperinci Menggunakan Flume untuk pengumpulan dan pemprosesan log dalam Beego. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!