Maison développement back-end Golang Utilisation de Flume et Kafka dans Beego pour la collecte et l'analyse des journaux

Utilisation de Flume et Kafka dans Beego pour la collecte et l'analyse des journaux

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

Beego est un framework Web en langage Go efficace qui prend en charge un développement rapide et une expansion facile. Dans les applications pratiques, nous sommes souvent confrontés à la manière de collecter et d'analyser une grande quantité de données de journaux Web pour obtenir des informations et des connaissances utiles. Dans cet article, nous expliquerons comment utiliser Flume et Kafka pour collecter et analyser les données des journaux Beego Web.

Flume est un système distribué de collecte, d'agrégation et de transmission de journaux fiable et évolutif qui peut prendre en charge la collecte, l'agrégation et la transmission de grandes quantités de données de journaux à partir de diverses sources de données et de divers pipelines de données en streaming. Kafka est un système middleware de messages à haut débit, distribué et durable, capable de gérer de grandes quantités de flux de données en temps réel et doté d'une évolutivité horizontale simple et d'une évolutivité élastique. Ce sont tous des projets open source soutenus et maintenus par la Fondation Apache.

1. Installer et configurer Flume

Tout d'abord, nous devons installer et configurer Flume. Dans cet article, nous utiliserons Flume version 1.9.0 et le testerons dans un environnement local. Flume peut être téléchargé depuis le site officiel : http://flume.apache.org/download.html.

Après avoir installé Flume, nous devons configurer le fichier de configuration Flume Agent. Dans cet article, nous utiliserons la méthode de configuration simple de Flume. Nous devons créer un fichier de configuration nommé flume.conf dans le répertoire d'installation de Flume et y définir notre agent Flume.

Dans le fichier flume.conf, nous devons définir un agent Flume avec source, canal et récepteur, comme indiqué ci-dessous :

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
Copier après la connexion

Dans le fichier de configuration ci-dessus, nous définissons une source nommée avro-source, dont le type est avro , qui écoutera le port 10000 sur l'hôte local de la machine et acceptera les données du journal Web Beego. Nous définissons également un canal nommé canal mémoire, dont le type est mémoire, qui peut stocker jusqu'à 10 000 événements en mémoire, et fournissons un récepteur nommé kafka-sink, dont le type est KafkaSink, qui permettra aux données du journal Beego Web d'être envoyées à un sujet. nommé beego-log en Kafka. Dans cette configuration, nous définissons également certaines propriétés de KafkaSink, telles que batchSize (le nombre de messages écrits dans Kafka à chaque fois) et requireAcks (le nombre de messages écrits dans Kafka qui doivent être reconnus).

2. Installez et configurez Kafka

Ensuite, nous devons installer et configurer Kafka. Dans cet article, nous utiliserons Kafka version 2.2.0 et le testerons dans un environnement local. Kafka peut être téléchargé depuis le site officiel : http://kafka.apache.org/downloads.html.

Après avoir installé Kafka, nous devons créer un sujet nommé beego-log. Nous pouvons utiliser l'outil de ligne de commande de Kafka pour créer le sujet, comme indiqué ci-dessous :

bin/kafka-topics.sh --zookeeper localhost:2181 --create --replication-factor 1 --partitions 1 --topic beego-log
Copier après la connexion

Dans la commande ci-dessus, nous utilisons la ligne de commande de Kafka. Utilisez l'outil kafka. -topics.sh pour créer un sujet nommé beego-log, spécifiez un facteur de réplication de 1 et des partitions de 1, et utilisez l'adresse ZooKeeper de localhost:2181.

3. Appliquer Beego Web Framework

Nous utilisons le framework Web Beego pour créer une application Web simple et y enregistrer les données du journal Web. Dans cet article, nous allons créer une application avec un seul contrôleur et un seul routeur comme indiqué ci-dessous :

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()
}
Copier après la connexion

Dans l'application ci-dessus, nous avons créé un contrôleur appelé MainController , il n'a qu'une seule méthode Get. Dans la méthode Get, nous implémentons une certaine logique puis renvoyons un message au client. Nous avons utilisé la fonction de routage de Beego pour mapper le chemin racine "/" à la méthode Get du MainController.

Nous pouvons activer la fonction de journalisation (log) dans le fichier de configuration de Beego et définir le niveau de journalisation sur Debug pour enregistrer et suivre plus de détails. Nous devons ajouter le contenu suivant au fichier de configuration app.conf de Beego :

appname = beego-log
httpport = 8080
runmode = dev
 
[log]
level = debug
 
[[Router]]
    Pattern = /
    HTTPMethod = get
    Controller = main.MainController:Get
Copier après la connexion

Dans le fichier de configuration ci-dessus, nous définissons le nom de l'application, le port HTTP, le mode de fonctionnement et le niveau de journalisation. Nous avons également spécifié une route nommée Router, défini un contrôleur nommé MainController et mappé le chemin racine «/» à la méthode Get.

4. Utilisez Flume et Kafka pour la collecte et l'analyse des journaux

Maintenant que nous disposons d'une application Beego simple et d'un agent Flume, nous pouvons les intégrer et utiliser Kafka pour la collecte et l'analyse des journaux.

Nous pouvons démarrer l'application Beego et lui envoyer des requêtes HTTP pour produire des données de journal. Nous pouvons utiliser la commande curl pour envoyer une requête HTTP à Beego comme suit :

$ curl http://localhost:8080/
Hello, World!
Copier après la connexion

Nous pouvons démarrer l'agent Flume et utiliser la commande suivante pour le démarrer :

$ ./bin/flume-ng agent --conf ./conf --conf-file ./conf/flume.conf --name agent --foreground
Copier après la connexion

Dans la commande ci-dessus, nous utilisons l'outil de ligne de commande flume de Flume - ng pour démarrer un agent Flume nommé agent et spécifiez le fichier de configuration comme ./conf/flume.conf.

Maintenant, nous pouvons afficher les données du journal Beego Web dans Kafka. Nous pouvons utiliser l'outil de ligne de commande de Kafka, kafka-console-consumer.sh, pour consommer les données du sujet beego-log comme suit :

$ bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic beego-log --from-beginning
Copier après la connexion

Dans la commande ci-dessus, nous utilisons l'outil de ligne de commande de Kafka, kafka-console-consumer, pour démarrer un. consommateur et consommer les données dans le sujet nommé beego-log. Nous utilisons l'option --from-beginning pour commencer à consommer à partir du message le plus ancien.

Lorsque nous demandons une application Beego, Flume collectera les événements du journal, les stockera dans un canal en mémoire, puis les transférera vers un sujet Kafka appelé beego-log. Nous pouvons utiliser des outils de ligne de commande ou des API dans Kafka pour consommer et traiter ces données de journal afin d'obtenir des informations et des informations plus précieuses.

5. Résumé

Dans cet article, nous avons présenté comment utiliser Flume et Kafka pour collecter et analyser les données des journaux Beego Web. Nous avons d'abord installé et configuré Flume et Kafka, puis créé une simple application Beego et configuré sa fonctionnalité de journalisation. Enfin, nous avons créé un simple Flume Agent et l'avons intégré à l'application Beego, en utilisant Kafka pour la collecte et l'analyse des journaux.

Dans les applications pratiques, nous pouvons configurer et personnaliser de manière flexible les paramètres et les propriétés de Flume et Kafka en fonction des besoins et des scénarios, afin de mieux nous adapter aux différentes sources de données et tâches de traitement, et d'obtenir des informations et des connaissances plus précieuses.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment mettre en œuvre une analyse boursière en temps réel à l'aide de PHP et Kafka Comment mettre en œuvre une analyse boursière en temps réel à l'aide de PHP et Kafka Jun 28, 2023 am 10:04 AM

Avec le développement d’Internet et de la technologie, l’investissement numérique est devenu un sujet de préoccupation croissant. De nombreux investisseurs continuent d’explorer et d’étudier des stratégies d’investissement, dans l’espoir d’obtenir un retour sur investissement plus élevé. Dans le domaine du trading d'actions, l'analyse boursière en temps réel est très importante pour la prise de décision, et l'utilisation de la file d'attente de messages en temps réel Kafka et de la technologie PHP constitue un moyen efficace et pratique. 1. Introduction à Kafka Kafka est un système de messagerie distribué de publication et d'abonnement à haut débit développé par LinkedIn. Les principales fonctionnalités de Kafka sont

Comment créer des applications de traitement de données en temps réel à l'aide de React et Apache Kafka Comment créer des applications de traitement de données en temps réel à l'aide de React et Apache Kafka Sep 27, 2023 pm 02:25 PM

Comment utiliser React et Apache Kafka pour créer des applications de traitement de données en temps réel Introduction : Avec l'essor du Big Data et du traitement de données en temps réel, la création d'applications de traitement de données en temps réel est devenue la priorité de nombreux développeurs. La combinaison de React, un framework front-end populaire, et d'Apache Kafka, un système de messagerie distribué hautes performances, peut nous aider à créer des applications de traitement de données en temps réel. Cet article expliquera comment utiliser React et Apache Kafka pour créer des applications de traitement de données en temps réel, et

Cinq sélections d'outils de visualisation pour explorer Kafka Cinq sélections d'outils de visualisation pour explorer Kafka Feb 01, 2024 am 08:03 AM

Cinq options pour les outils de visualisation Kafka ApacheKafka est une plateforme de traitement de flux distribué capable de traiter de grandes quantités de données en temps réel. Il est largement utilisé pour créer des pipelines de données en temps réel, des files d'attente de messages et des applications basées sur des événements. Les outils de visualisation de Kafka peuvent aider les utilisateurs à surveiller et gérer les clusters Kafka et à mieux comprendre les flux de données Kafka. Ce qui suit est une introduction à cinq outils de visualisation Kafka populaires : ConfluentControlCenterConfluent

Analyse comparative des outils de visualisation kafka : Comment choisir l'outil le plus approprié ? Analyse comparative des outils de visualisation kafka : Comment choisir l'outil le plus approprié ? Jan 05, 2024 pm 12:15 PM

Comment choisir le bon outil de visualisation Kafka ? Analyse comparative de cinq outils Introduction : Kafka est un système de file d'attente de messages distribué à haute performance et à haut débit, largement utilisé dans le domaine du Big Data. Avec la popularité de Kafka, de plus en plus d'entreprises et de développeurs ont besoin d'un outil visuel pour surveiller et gérer facilement les clusters Kafka. Cet article présentera cinq outils de visualisation Kafka couramment utilisés et comparera leurs caractéristiques et fonctions pour aider les lecteurs à choisir l'outil qui répond à leurs besoins. 1. KafkaManager

Cinq projets open source sélectionnés en langage Go pour vous emmener explorer le monde de la technologie Cinq projets open source sélectionnés en langage Go pour vous emmener explorer le monde de la technologie Jan 30, 2024 am 09:08 AM

À l'ère actuelle de développement technologique rapide, les langages de programmation poussent comme des champignons après la pluie. L'un des langages qui a beaucoup retenu l'attention est le langage Go, apprécié par de nombreux développeurs pour sa simplicité, son efficacité, sa sécurité de concurrence et d'autres fonctionnalités. Le langage Go est connu pour son écosystème solide avec de nombreux excellents projets open source. Cet article présentera cinq projets open source sélectionnés en langage Go et amènera les lecteurs à explorer le monde des projets open source en langage Go. KubernetesKubernetes est un moteur d'orchestration de conteneurs open source pour l'automatisation

La pratique du go-zero et Kafka+Avro : construire un système de traitement de données interactif performant La pratique du go-zero et Kafka+Avro : construire un système de traitement de données interactif performant Jun 23, 2023 am 09:04 AM

Ces dernières années, avec l'essor du Big Data et des communautés open source actives, de plus en plus d'entreprises ont commencé à rechercher des systèmes de traitement de données interactifs hautes performances pour répondre aux besoins croissants en matière de données. Dans cette vague de mises à niveau technologiques, le go-zero et Kafka+Avro suscitent l’attention et sont adoptés par de plus en plus d’entreprises. go-zero est un framework de microservices développé sur la base du langage Golang. Il présente les caractéristiques de hautes performances, de facilité d'utilisation, d'extension facile et de maintenance facile. Il est conçu pour aider les entreprises à créer rapidement des systèmes d'applications de microservices efficaces. sa croissance rapide

Déploiement et gestion de production à l'aide de Docker et Kubernetes dans Beego Déploiement et gestion de production à l'aide de Docker et Kubernetes dans Beego Jun 23, 2023 am 08:58 AM

Avec le développement rapide d’Internet, de plus en plus d’entreprises ont commencé à migrer leurs applications vers des plateformes cloud. Docker et Kubernetes sont devenus deux outils très populaires et puissants pour le déploiement et la gestion d'applications sur les plateformes cloud. Beego est un framework Web développé à l'aide de Golang. Il fournit des fonctions riches telles que le routage HTTP, la superposition MVC, la journalisation, la gestion de la configuration et la gestion des sessions. Dans cet article, nous expliquerons comment utiliser Docker et Kub

Comment installer Apache Kafka sur Rocky Linux ? Comment installer Apache Kafka sur Rocky Linux ? Mar 01, 2024 pm 10:37 PM

Pour installer ApacheKafka sur RockyLinux, vous pouvez suivre les étapes suivantes : Mettre à jour le système : Tout d'abord, assurez-vous que votre système RockyLinux est à jour, exécutez la commande suivante pour mettre à jour les packages système : sudoyumupdate Installer Java : ApacheKafka dépend de Java, vous vous devez d'abord installer JavaDevelopmentKit (JDK). OpenJDK peut être installé via la commande suivante : sudoyuminstalljava-1.8.0-openjdk-devel Télécharger et décompresser : Visitez le site officiel d'ApacheKafka () pour télécharger le dernier package binaire. Choisissez une version stable

See all articles