Filebeatを活用したログ管理基盤の構築とデータフロー

Filebeatとは:軽量なログ収集の要 Filebeatは、Elastic社が開発したBeatsファミリーに属する、非常に軽量なデータシッパーです。その主要な役割は、様々なデータソース(ログファイル、システムログ、コンテナログなど)からログデータを効率的に収集し、Elasticsearch、Logstash、Kafkaといった集中型ストレージや分析システムへ安全に転送することにあります。 ...

10月27日 06:55 投稿

Kafkaの分散処理と信頼性設計

クラスタ構成の基本構造 Kafkaでは、Topicという論理的な単位が複数のPartitionに分割され、各Brokerに分散配置されます。各Partitionにはリーダーとフォロワーが存在し、リーダーがデータの読み書きを担当します。フォロワーはデータの複製を保持することで可用性を確保します。 メッセージの書き込みはリーダーに集中し、その後フォロワーに複製されます。この構造によ ...

10月7日 02:35 投稿

Spring Cloud Streamのメッセージ処理設計

メッセージングフレームワーク 概要 https://spring.io/projects/spring-cloud-stream#overview https://docs.spring.io/spring-cloud-stream/docs/current/reference/html/ メッセージングの課題 複数のメッセージキューイングシステムを使用する場合、各システムのAPI差異により開発が複雑化します。Spring Cloud Streamはこれらの差異を抽象化し、統一的なプログラミン ...

9月14日 05:50 投稿

Kafkaの動作フロー解析

3.1 Kafkaのプロデューサー処理解析 3.1.1 書き込み方法 プロデューサーは、メッセージをブローカーにプッシュ(push)モードで送信します。各メッセージはパーティションに追加され、ディスクへの順次書き込みが行われます。これはランダムなメモリ書き込みよりも効率的であり、Kafkaのスループットを確保します。 3.1.2 パーティション(Partition) メッセ ...

9月3日 02:35 投稿

Redis、ZooKeeper、Kafkaの管理スクリプト実装

Redisサーバー制御スクリプト #!/bin/bash REDIS_PORT=6379 LOCAL_IP=$(hostname -I | awk '{print $1}') start_redis() { if ! pgrep -f "redis-server" &> /dev/null; then redis-server /opt/redis/config/redis.conf >/dev/null 2>&1 if [ $? -eq 0 ]; then echo "Redis起動成功: $(pgrep -f "redis-server")" else echo "Redis起動失敗 - ...

8月15日 23:20 投稿

ZooKeeperとKafkaを用いたメッセージキュークラスタのデプロイメント

メッセージキューの概念 メッセージキューとは何か メッセージ(Message)とはアプリケーション間で送信されるデータのこと メッセージキュー(Message Queue)はアプリケーション間の通信方式を解決するソリューションで、メッセージの信頼性のある伝達を保証します。 メッセージキューが必要な理由 疎結合 両側の処理プロセスを独立して拡張または修正できるため、同じ ...

8月4日 03:49 投稿

.NET Core で Kafka トランザクション付きバッチ送信を実装する

Kafka プロデューサーを使用して複数メッセージを一括送信し、トランザクションにより全メッセージの成功または失敗を保証します。トランザクション ID の設定は必須です。 public void SendMessagesInTransaction(List<string> messages) { var config = BuildProducerConfig(); config.EnableIdempotence = true; config.MessageTimeoutMs = 5000; ...

7月24日 17:21 投稿

Flumeを使用したMySQLデータの履歴同期処理

1. Flumeディレクトリ構成 1.1 インストールパス情報 [admin@test01 flume-mysql-sync]$ pwd /opt/flume-mysql-sync 1.2 必要なJARファイルをlibディレクトリへ配置 sql-source-connector-2.1.jar mysql-driver-8.0.28.jar 2. パッケージングと展開操作 アーカイブ作成 tar czvf flume-package.tar.gz flume-mysql-sync/ 3. Kafkaトピックの作成と確認 # ト ...

6月28日 19:48 投稿

Kafkaブローカーのログファイルの構造と動作原理

1. パーティションディレクトリ内のファイル構造 Kafkaのメッセージストレージは、パーティション(Partition)を中心に構築されています。各パーティションは物理的なディレクトリに対応し、そのディレクトリ内にはコアログファイル、インデックスファイル、トランザクション関連ファイル、メタデータファイルの4種類のファイルが含まれます。これらのファイルが連携する ...

6月26日 22:30 投稿

CentOS 8 環境における RabbitMQ、Kafka および Supervisor の構築ガイド

ベース環境とリポジトリの準備 CentOS 8 系(および RHEL 互換ディストリビューション)で RabbitMQ を動作させるには、Erlang 実行環境の整備が必須となります。公式が提供するパッケージリポジトリを登録し、依存パッケージの自動解決を有効化します。 # Erlang リポジトリの登録 curl -1sLf https://dl.cloudsmith.io/public/rabbitmq/erlang/rpm/gpg.key | sudo rpm -- ...

6月24日 01:48 投稿