Rumah pembangunan bahagian belakang Golang Menggunakan Flume dan Kafka dalam Beego untuk pengumpulan dan analisis log

Menggunakan Flume dan Kafka dalam Beego untuk pengumpulan dan analisis log

Jun 23, 2023 am 08:40 AM
kafka flume beego

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
Salin selepas log masuk

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
Salin selepas log masuk

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()
}
Salin selepas log masuk

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
Salin selepas log masuk

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!
Salin selepas log masuk

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
Salin selepas log masuk

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
Salin selepas log masuk

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!

Kenyataan Laman Web ini
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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk melaksanakan analisis saham masa nyata menggunakan PHP dan Kafka Bagaimana untuk melaksanakan analisis saham masa nyata menggunakan PHP dan Kafka Jun 28, 2023 am 10:04 AM

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 alat visualisasi untuk meneroka Kafka Lima pilihan alat visualisasi untuk meneroka Kafka Feb 01, 2024 am 08:03 AM

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 membina aplikasi pemprosesan data masa nyata menggunakan React dan Apache Kafka Cara membina aplikasi pemprosesan data masa nyata menggunakan React dan Apache Kafka Sep 27, 2023 pm 02:25 PM

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

Analisis perbandingan alat visualisasi kafka: Bagaimana untuk memilih alat yang paling sesuai? Analisis perbandingan alat visualisasi kafka: Bagaimana untuk memilih alat yang paling sesuai? Jan 05, 2024 pm 12:15 PM

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

Lima projek sumber terbuka bahasa Go yang dipilih untuk membawa anda meneroka dunia teknologi Lima projek sumber terbuka bahasa Go yang dipilih untuk membawa anda meneroka dunia teknologi Jan 30, 2024 am 09:08 AM

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

Bagaimana untuk memasang Apache Kafka pada Rocky Linux? Bagaimana untuk memasang Apache Kafka pada Rocky Linux? Mar 01, 2024 pm 10:37 PM

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

Keperluan pembangunan bahasa Go: 5 cadangan rangka kerja yang popular Keperluan pembangunan bahasa Go: 5 cadangan rangka kerja yang popular Mar 24, 2024 pm 01:15 PM

"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

Penggunaan dan pengurusan pengeluaran menggunakan Docker dan Kubernetes dalam Beego Penggunaan dan pengurusan pengeluaran menggunakan Docker dan Kubernetes dalam Beego Jun 23, 2023 am 08:58 AM

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

See all articles