


Menggunakan Flume dan Kafka dalam Beego untuk pengumpulan dan analisis log
Beego ialah rangka kerja web bahasa Go yang cekap yang menyokong pembangunan pesat dan pengembangan mudah. Dalam aplikasi praktikal, kita sering menghadapi cara untuk mengumpul dan menganalisis sejumlah besar data log Web untuk mendapatkan maklumat dan pengetahuan yang berguna. Dalam artikel ini, kami akan memperkenalkan cara menggunakan Flume dan Kafka untuk mengumpul dan menganalisis data log Web Beego.
Flume ialah sistem pengumpulan, pengagregatan dan penghantaran log teragih yang boleh dipercayai dan boleh skala yang boleh menyokong pengumpulan, pengagregatan dan penghantaran sejumlah besar data log daripada pelbagai sumber data dan pelbagai saluran paip data penstriman. Kafka ialah sistem perisian tengah mesej berkemampuan tinggi, teragih dan tahan lama yang boleh mengendalikan sejumlah besar aliran data masa nyata dan mempunyai kebolehskalaan mendatar yang mudah dan kebolehskalaan elastik. Kesemuanya adalah projek sumber terbuka yang disokong dan diselenggara oleh Yayasan Apache.
1. Pasang dan konfigurasi Flume
Mula-mula, kita perlu memasang dan mengkonfigurasi Flume. Dalam artikel ini, kami akan menggunakan Flume versi 1.9.0 dan mengujinya dalam persekitaran setempat. Flume boleh dimuat turun dari laman web rasmi: http://flume.apache.org/download.html.
Selepas memasang Flume, kami perlu mengkonfigurasi fail konfigurasi Flume Agent. Dalam artikel ini, kami akan menggunakan kaedah konfigurasi mudah Flume. Kami perlu mencipta fail konfigurasi bernama flume.conf dalam direktori pemasangan Flume dan menentukan Ejen Flume kami di dalamnya.
Dalam fail flume.conf, kita perlu mentakrifkan Ejen Flume dengan sumber, saluran dan sink, seperti yang ditunjukkan di bawah:
agent.sources = avro-source agent.channels = memory-channel agent.sinks = kafka-sink # Define the source agent.sources.avro-source.type = avro agent.sources.avro-source.bind = localhost agent.sources.avro-source.port = 10000 # Define the channel agent.channels.memory-channel.type = memory agent.channels.memory-channel.capacity = 10000 # Define the sink agent.sinks.kafka-sink.type = org.apache.flume.sink.kafka.KafkaSink agent.sinks.kafka-sink.kafka.bootstrap.servers = localhost:9092 agent.sinks.kafka-sink.kafka.topic = beego-log agent.sinks.kafka-sink.batchSize = 20 agent.sinks.kafka-sink.requiredAcks = 1 # Bind the source and sink to the channel agent.sources.avro-source.channels = memory-channel agent.sinks.kafka-sink.channel = memory-channel
Dalam fail konfigurasi di atas, kami mentakrifkan nama Ia adalah sumber avro-source Jenisnya ialah avro. Ia akan mendengar port 10000 pada localhost mesin dan menerima data log Web Beego. Kami juga mentakrifkan saluran bernama saluran memori, yang jenisnya ialah memori, yang boleh menyimpan sehingga 10,000 peristiwa dalam ingatan, dan menyediakan sinki bernama kafka-sink, yang jenisnya ialah KafkaSink, yang akan menghantar data log Web Beego ke topik bernama beego-log dalam Kafka. Dalam konfigurasi ini, kami juga menetapkan beberapa sifat KafkaSink, seperti batchSize (bilangan mesej yang ditulis kepada Kafka setiap kali) dan requiredAcks (bilangan mesej yang ditulis kepada Kafka yang perlu diakui).
2. Pasang dan konfigurasikan Kafka
Seterusnya, kita perlu memasang dan mengkonfigurasi Kafka. Dalam artikel ini, kami akan menggunakan Kafka versi 2.2.0 dan mengujinya dalam persekitaran setempat. Kafka boleh dimuat turun dari laman web rasmi: http://kafka.apache.org/downloads.html.
Selepas memasang Kafka, kita perlu mencipta topik bernama beego-log Kita boleh menggunakan alat baris arahan Kafka untuk mencipta topik, seperti yang ditunjukkan di bawah:
bin/kafka-topics.sh --zookeeper localhost:2181 --create --replication-factor 1 --partitions 1 --topic beego-log
Dalam arahan di atas, kita. gunakan alat baris arahan Kafka kafka-topics.sh untuk mencipta topik bernama beego-log, nyatakan faktor replikasi (faktor replikasi) sebagai 1 dan partition (partition) sebagai 1, dan gunakan alamat ZooKeeper sebagai localhost:2181.
3. Aplikasi Rangka Kerja Web Beego
Kami menggunakan rangka kerja Beego Web untuk mencipta aplikasi Web mudah dan merekod data log Web di dalamnya. Dalam artikel ini, kami akan mencipta aplikasi dengan hanya satu pengawal dan satu penghala seperti yang ditunjukkan di bawah:
package main import ( "github.com/astaxie/beego" ) type MainController struct { beego.Controller } func (c *MainController) Get() { // do something c.Ctx.WriteString("Hello, World!") } func main() { beego.Router("/", &MainController{}) beego.Run() }
Dalam aplikasi di atas, kami telah mencipta aplikasi yang dipanggil pengawal MainController, ia hanya mempunyai satu kaedah Dapatkan. Dalam kaedah Dapatkan, kami melaksanakan beberapa logik dan kemudian mengembalikan mesej kepada klien. Kami menggunakan fungsi penghalaan Beego untuk memetakan laluan akar "/" kepada kaedah Dapatkan MainController.
Kami boleh mendayakan fungsi pengelogan dalam fail konfigurasi Beego dan menetapkan tahap log kepada Nyahpepijat untuk merakam dan menjejak butiran lanjut. Kami perlu menambah kandungan berikut pada app.conf fail konfigurasi Beego:
appname = beego-log httpport = 8080 runmode = dev [log] level = debug [[Router]] Pattern = / HTTPMethod = get Controller = main.MainController:Get
Dalam fail konfigurasi di atas, kami mentakrifkan nama aplikasi, port HTTP, mod pengendalian dan tahap log. Kami juga menentukan laluan bernama Router, menentukan pengawal bernama MainController, dan memetakan laluan akar "/" kepada kaedah Dapatkan.
4. Menggunakan Flume dan Kafka untuk pengumpulan dan analisis log
Sekarang kami mempunyai aplikasi Beego yang mudah dan Ejen Flume, kami boleh mengintegrasikannya dan menggunakan Kafka Menjalankan pengumpulan dan analisis log.
Kami boleh memulakan aplikasi Beego dan menghantar beberapa permintaan HTTP kepadanya untuk menghasilkan beberapa data log. Kita boleh menggunakan arahan curl untuk menghantar permintaan HTTP kepada Beego seperti berikut:
$ curl http://localhost:8080/ Hello, World!
Kita boleh memulakan Flume Agent dan menggunakan arahan berikut untuk memulakannya:
$ ./bin/flume-ng agent --conf ./conf --conf-file ./conf/flume.conf --name agent --foreground
Dalam arahan di atas, Kami gunakan alat baris arahan Flume flume-ng untuk memulakan Agen Flume bernama ejen, dan tentukan fail konfigurasi sebagai ./conf/flume.conf.
Kini, kita boleh melihat data log web Beego dalam Kafka. Kita boleh menggunakan alat baris arahan Kafka kafka-console-consumer.sh untuk menggunakan data daripada topik beego-log seperti berikut:
$ bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic beego-log --from-beginning
Dalam arahan di atas, kami menggunakan alat baris arahan Kafka kafka- console-consumer. sh untuk memulakan pengguna dan menggunakan data daripada topik bernama beego-log. Kami menggunakan pilihan --dari-permulaan untuk mula menggunakan daripada mesej tertua.
Apabila kami meminta aplikasi Beego, Flume akan mengumpulkan peristiwa log, menyimpannya ke dalam saluran dalam memori, dan kemudian memindahkannya ke topik Kafka bernama beego-log. Kami boleh menggunakan alat baris arahan atau API dalam Kafka untuk menggunakan dan memproses data log ini untuk mendapatkan maklumat dan cerapan yang lebih berharga.
5. Ringkasan
Dalam artikel ini, kami memperkenalkan cara menggunakan Flume dan Kafka untuk mengumpul dan menganalisis data log Beego Web. Kami mula-mula memasang dan mengkonfigurasi Flume dan Kafka, kemudian mencipta aplikasi Beego yang mudah dan mengkonfigurasi fungsi pengelogannya. Akhirnya, kami mencipta Ejen Flume yang ringkas dan menyepadukannya dengan aplikasi Beego, menggunakan Kafka untuk pengumpulan dan analisis log.
Dalam aplikasi praktikal, kami boleh mengkonfigurasi dan menyesuaikan parameter dan sifat Flume dan Kafka secara fleksibel mengikut keperluan dan senario, supaya dapat menyesuaikan dengan lebih baik kepada sumber data dan tugas pemprosesan yang berbeza, serta mendapatkan maklumat dan pengetahuan yang lebih berharga .
Atas ialah kandungan terperinci Menggunakan Flume dan Kafka dalam Beego untuk pengumpulan dan analisis log. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Dengan perkembangan Internet dan teknologi, pelaburan digital telah menjadi topik yang semakin membimbangkan. Ramai pelabur terus meneroka dan mengkaji strategi pelaburan, dengan harapan memperoleh pulangan pelaburan yang lebih tinggi. Dalam perdagangan saham, analisis saham masa nyata adalah sangat penting untuk membuat keputusan, dan penggunaan baris gilir mesej masa nyata Kafka dan teknologi PHP adalah cara yang cekap dan praktikal. 1. Pengenalan kepada Kafka Kafka ialah sistem pemesejan terbitan dan langgan yang diedarkan tinggi yang dibangunkan oleh LinkedIn. Ciri-ciri utama Kafka ialah

Lima pilihan untuk alat visualisasi Kafka ApacheKafka ialah platform pemprosesan strim teragih yang mampu memproses sejumlah besar data masa nyata. Ia digunakan secara meluas untuk membina saluran paip data masa nyata, baris gilir mesej dan aplikasi dipacu peristiwa. Alat visualisasi Kafka boleh membantu pengguna memantau dan mengurus kelompok Kafka serta lebih memahami aliran data Kafka. Berikut ialah pengenalan kepada lima alat visualisasi Kafka yang popular: ConfluentControlCenterConfluent

Cara menggunakan React dan Apache Kafka untuk membina aplikasi pemprosesan data masa nyata Pengenalan: Dengan peningkatan data besar dan pemprosesan data masa nyata, membina aplikasi pemprosesan data masa nyata telah menjadi usaha ramai pembangun. Gabungan React, rangka kerja bahagian hadapan yang popular dan Apache Kafka, sistem pemesejan teragih berprestasi tinggi, boleh membantu kami membina aplikasi pemprosesan data masa nyata. Artikel ini akan memperkenalkan cara menggunakan React dan Apache Kafka untuk membina aplikasi pemprosesan data masa nyata, dan

Bagaimana untuk memilih alat visualisasi Kafka yang betul? Analisis perbandingan lima alat Pengenalan: Kafka ialah sistem baris gilir mesej teragih berprestasi tinggi dan tinggi yang digunakan secara meluas dalam bidang data besar. Dengan populariti Kafka, semakin banyak perusahaan dan pembangun memerlukan alat visual untuk memantau dan mengurus kelompok Kafka dengan mudah. Artikel ini akan memperkenalkan lima alat visualisasi Kafka yang biasa digunakan dan membandingkan ciri serta fungsinya untuk membantu pembaca memilih alat yang sesuai dengan keperluan mereka. 1. KafkaManager

Dalam era perkembangan teknologi yang pesat hari ini, bahasa pengaturcaraan bermunculan seperti cendawan selepas hujan. Salah satu bahasa yang telah menarik perhatian ramai ialah bahasa Go, yang digemari oleh ramai pembangun kerana kesederhanaan, kecekapan, keselamatan serentak dan ciri-ciri lain. Bahasa Go terkenal dengan ekosistemnya yang kukuh dengan banyak projek sumber terbuka yang sangat baik. Artikel ini akan memperkenalkan lima projek sumber terbuka bahasa Go yang dipilih dan membawa pembaca untuk meneroka dunia projek sumber terbuka bahasa Go. KubernetesKubernetes ialah enjin orkestrasi kontena sumber terbuka untuk automatik

Untuk memasang ApacheKafka pada RockyLinux, anda boleh mengikuti langkah di bawah: Kemas kini sistem: Pertama, pastikan sistem RockyLinux anda dikemas kini, laksanakan arahan berikut untuk mengemas kini pakej sistem: sudoyumupdate Pasang Java: ApacheKafka bergantung pada Java, jadi anda perlu memasang Java Development Kit (JDK) terlebih dahulu ). OpenJDK boleh dipasang melalui arahan berikut: sudoyuminstalljava-1.8.0-openjdk-devel Muat turun dan nyahmampat: Lawati laman web rasmi ApacheKafka () untuk memuat turun pakej binari terkini. Pilih versi yang stabil

"Go Language Development Essentials: 5 Syor Rangka Kerja Popular" Sebagai bahasa pengaturcaraan yang pantas dan cekap, bahasa Go digemari oleh semakin ramai pembangun. Untuk meningkatkan kecekapan pembangunan dan mengoptimumkan struktur kod, ramai pembangun memilih untuk menggunakan rangka kerja untuk membina aplikasi dengan cepat. Dalam dunia bahasa Go, terdapat banyak rangka kerja yang sangat baik untuk dipilih. Artikel ini akan memperkenalkan 5 rangka kerja bahasa Go yang popular dan menyediakan contoh kod khusus untuk membantu pembaca memahami dan menggunakan rangka kerja ini dengan lebih baik. 1.GinGin ialah rangka kerja web yang ringan dengan pantas

Dengan perkembangan pesat Internet, semakin banyak perusahaan telah mula memindahkan aplikasi mereka ke platform awan. Docker dan Kubernetes telah menjadi dua alat yang sangat popular dan berkuasa untuk penggunaan dan pengurusan aplikasi pada platform awan. Beego ialah rangka kerja Web yang dibangunkan menggunakan Golang Ia menyediakan fungsi yang kaya seperti penghalaan HTTP, lapisan MVC, pengelogan, pengurusan konfigurasi dan pengurusan Sesi. Dalam artikel ini kami akan membincangkan cara menggunakan Docker dan Kub
