Beego で Flume と Kafka を使用してログの収集と分析を行う
Beego は、迅速な開発と簡単な拡張をサポートする効率的な Go 言語 Web フレームワークです。実際のアプリケーションでは、有用な情報や知識を得るために大量の Web ログ データを収集および分析する方法に直面することがよくあります。この記事では、Flume と Kafka を使用して Beego Web ログ データを収集および分析する方法を紹介します。
Flume は、さまざまなデータ ソースやさまざまなストリーミング データ パイプラインからの大量のログ データの収集、集約、送信をサポートできる、信頼性が高くスケーラブルな分散ログ収集、集約、および送信システムです。 Kafka は、大量のリアルタイム データ ストリームを処理でき、シンプルな水平スケーラビリティと柔軟なスケーラビリティを備えた、高スループット、分散型、耐久性の高いメッセージ ミドルウェア システムです。これらはすべて、Apache Foundation によってサポートおよび維持されているオープン ソース プロジェクトです。
1. Flume のインストールと設定
まず、Flume をインストールして設定する必要があります。この記事では、Flume バージョン 1.9.0 を使用し、ローカル環境でテストします。 Flume は公式 Web サイト http://flume.apache.org/download.html からダウンロードできます。
Flume をインストールした後、Flume エージェント構成ファイルを構成する必要があります。この記事では、Flume の簡単な設定方法を使用します。 Flume インストール ディレクトリに flume.conf という名前の設定ファイルを作成し、その中に Flume エージェントを定義する必要があります。
flume.conf ファイルでは、以下に示すように、ソース、チャネル、シンクを含む Flume エージェントを定義する必要があります。
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
上記の設定ファイルでは、名前を定義します。 avro-source のソース。そのタイプは avro です。マシンのローカルホスト上のポート 10000 をリッスンし、Beego Web ログ データを受け入れます。また、メモリに最大 10,000 個のイベントを保存できる、タイプがメモリである、memory-channel という名前のチャネルを定義します。また、Beego Web ログ データがトピックに送信される、タイプが KafkaSink である kafka-sink という名前のシンクを提供します。 Kafka では beego-log という名前です。この構成では、batchSize (毎回 Kafka に書き込まれるメッセージの数) や requiredAcks (確認応答が必要な Kafka に書き込まれるメッセージの数) など、KafkaSink のいくつかのプロパティも設定します。
2. Kafka のインストールと構成
次に、Kafka をインストールして構成する必要があります。この記事では、Kafka バージョン 2.2.0 を使用し、ローカル環境でテストします。 Kafka は、公式 Web サイト http://kafka.apache.org/downloads.html からダウンロードできます。
Kafka をインストールした後、beego-log という名前のトピックを作成する必要があります。以下に示すように、Kafka のコマンド ライン ツールを使用してトピックを作成できます:
bin/kafka-topics.sh --zookeeper localhost:2181 --create --replication-factor 1 --partitions 1 --topic beego-log
上記のコマンドでは、 Kafka のコマンド ライン ツール kafka-topics.sh を使用して beego-log という名前のトピックを作成し、レプリケーション係数 (replication-factor) を 1 として、パーティション (partitions) を 1 として指定し、ZooKeeper のアドレスを localhost:2181 として使用します。
3. Beego Web Framework のアプリケーション
Beego Web Framework を使用して、簡単な Web アプリケーションを作成し、Web ログ データを記録します。この記事では、以下に示すように、コントローラーとルーターが 1 つだけあるアプリケーションを作成します。
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() }
上記のアプリケーションでは、MainController のコントローラーというアプリケーションを作成しました。このアプリケーションには Get メソッドが 1 つだけあります。 Get メソッドでは、いくつかのロジックを実装し、クライアントにメッセージを返します。 Beego のルーティング関数を使用して、ルート パス「/」を MainController の Get メソッドにマッピングしました。
Beego の設定ファイルでロギング (ログ) 機能を有効にし、ログ レベルをデバッグに設定して、より詳細な情報を記録および追跡できます。 Beego の設定ファイル app.conf に次の内容を追加する必要があります:
appname = beego-log httpport = 8080 runmode = dev [log] level = debug [[Router]] Pattern = / HTTPMethod = get Controller = main.MainController:Get
上記の設定ファイルでは、アプリケーション名、HTTP ポート、動作モード、およびログ レベルを定義します。また、Router という名前のルートを指定し、MainController という名前のコントローラーを定義し、ルート パス「/」を Get メソッドにマップしました。
4. ログ収集と分析に Flume と Kafka を使用する
単純な Beego アプリケーションと Flume エージェントができたので、それらを統合し、Kafka を使用してログ収集と分析を実行できます。
Beego アプリケーションを起動し、それに HTTP リクエストを送信して、ログ データを生成します。次のように、curl コマンドを使用して HTTP リクエストを Beego に送信できます:
$ curl http://localhost:8080/ Hello, World!
Flume エージェントを起動し、次のコマンドを使用して開始します:
$ ./bin/flume-ng agent --conf ./conf --conf-file ./conf/flume.conf --name agent --foreground
上記のコマンドでは、 Flume のコマンドライン ツール flume-ng を使用して、agent という名前の Flume エージェントを起動し、設定ファイルを ./conf/flume.conf として指定します。
これで、Kafka で Beego Web ログ データを表示できるようになりました。以下に示すように、Kafka のコマンド ライン ツール kafka-console-consumer.sh を使用して、beego-log トピックからのデータを使用できます。
$ bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic beego-log --from-beginning
上記のコマンドでは、Kafka のコマンド ライン ツール kafka-console- を使用します。 Consumer.sh を使用してコンシューマを起動し、beego-log という名前のトピックからデータを消費します。 --from-beginning オプションを使用して、最も古いメッセージから消費を開始します。
Beego アプリケーションをリクエストすると、Flume はログ イベントを収集し、メモリ内チャネルに保存して、beego-log という名前の Kafka トピックに転送します。 Kafka のコマンド ライン ツールまたは API を使用して、これらのログ データを消費および処理して、より貴重な情報と洞察を取得できます。
5. 概要
この記事では、Flume と Kafka を使用して Beego Web ログ データを収集および分析する方法を紹介します。まず Flume と Kafka をインストールして構成し、次に単純な Beego アプリケーションを作成してそのログ機能を構成しました。最後に、シンプルな Flume エージェントを作成し、ログの収集と分析に Kafka を使用して Beego アプリケーションと統合しました。
実際のアプリケーションでは、ニーズやシナリオに応じて Flume と Kafka のパラメーターとプロパティを柔軟に構成およびカスタマイズできるため、さまざまなデータ ソースや処理タスクにうまく適応し、より貴重な情報を取得できます。知識。
以上がBeego で Flume と Kafka を使用してログの収集と分析を行うの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









インターネットとテクノロジーの発展に伴い、デジタル投資への関心が高まっています。多くの投資家は、より高い投資収益率を得ることを期待して、投資戦略を模索し、研究し続けています。株式取引では、リアルタイムの株式分析が意思決定に非常に重要であり、Kafka のリアルタイム メッセージ キューと PHP テクノロジの使用は効率的かつ実用的な手段です。 1. Kafka の概要 Kafka は、LinkedIn によって開発された高スループットの分散型パブリッシュおよびサブスクライブ メッセージング システムです。 Kafka の主な機能は次のとおりです。

React と Apache Kafka を使用してリアルタイム データ処理アプリケーションを構築する方法 はじめに: ビッグ データとリアルタイム データ処理の台頭により、リアルタイム データ処理アプリケーションの構築が多くの開発者の追求となっています。人気のあるフロントエンド フレームワークである React と、高性能分散メッセージング システムである Apache Kafka を組み合わせることで、リアルタイム データ処理アプリケーションを構築できます。この記事では、React と Apache Kafka を使用してリアルタイム データ処理アプリケーションを構築する方法を紹介します。

Kafka 視覚化ツールの 5 つのオプション ApacheKafka は、大量のリアルタイム データを処理できる分散ストリーム処理プラットフォームです。これは、リアルタイム データ パイプライン、メッセージ キュー、イベント駆動型アプリケーションの構築に広く使用されています。 Kafka の視覚化ツールは、ユーザーが Kafka クラスターを監視および管理し、Kafka データ フローをより深く理解するのに役立ちます。以下は、5 つの人気のある Kafka 視覚化ツールの紹介です。 ConfluentControlCenterConfluent

適切な Kafka 視覚化ツールを選択するにはどうすればよいですか? 5 つのツールの比較分析 はじめに: Kafka は、ビッグ データの分野で広く使用されている、高性能、高スループットの分散メッセージ キュー システムです。 Kafka の人気に伴い、Kafka クラスターを簡単に監視および管理するためのビジュアル ツールを必要とする企業や開発者が増えています。この記事では、読者がニーズに合ったツールを選択できるように、一般的に使用される 5 つの Kafka 視覚化ツールを紹介し、その特徴と機能を比較します。 1.カフカマネージャー

今日の急速な技術発展の時代では、雨後の筍のようにプログラミング言語が出現しています。多くの注目を集めている言語の 1 つは Go 言語です。Go 言語は、そのシンプルさ、効率性、同時実行の安全性などの機能により多くの開発者に愛されています。 Go 言語は、多くの優れたオープンソース プロジェクトがある強力なエコシステムで知られています。この記事では、厳選された 5 つの Go 言語オープンソース プロジェクトを紹介し、読者を Go 言語オープンソース プロジェクトの世界へ導きます。 KubernetesKubernetes は、自動化されたオープンソースのコンテナ オーケストレーション エンジンです。

近年、ビッグ データと活発なオープン ソース コミュニティの台頭により、ますます多くの企業が増大するデータ ニーズを満たすために高性能の対話型データ処理システムを探し始めています。このテクノロジー アップグレードの波の中で、go-zero と Kafka+Avro はますます多くの企業に注目され、採用されています。 go-zero は、Golang 言語をベースに開発されたマイクロサービス フレームワークで、高いパフォーマンス、使いやすさ、拡張の容易さ、メンテナンスの容易さという特徴を備えており、企業が効率的なマイクロサービス アプリケーション システムを迅速に構築できるように設計されています。その急速な成長

インターネットの急速な発展に伴い、ますます多くの企業がアプリケーションをクラウド プラットフォームに移行し始めています。 Docker と Kubernetes は、クラウド プラットフォームでのアプリケーションの展開と管理のための 2 つの非常に人気のある強力なツールになりました。 BeegoはGolangで開発されたWebフレームワークで、HTTPルーティング、MVC階層化、ロギング、構成管理、セッション管理などの豊富な機能を提供します。この記事では、Docker と Kub の使用方法について説明します。

RockyLinux に ApacheKafka をインストールするには、次の手順に従います。 システムの更新: まず、RockyLinux システムが最新であることを確認し、次のコマンドを実行してシステム パッケージを更新します: sudoyumupdate Java のインストール: ApacheKafka は Java に依存しているため、最初に JavaDevelopmentKit (JDK) をインストールします)。 OpenJDK は、次のコマンドを使用してインストールできます。 sudoyuminstalljava-1.8.0-openjdk-devel ダウンロードして解凍します。 ApacheKafka 公式 Web サイト () にアクセスして、最新のバイナリ パッケージをダウンロードします。安定したバージョンを選択してください
