組み込みの信頼性とクロスプラットフォームの互換性で知られる FluentD は、ビッグ データ収集における最大の課題の 1 つである、収集ソース間の標準化の欠如に対処します。
分散型エコシステムを備えた FluentD は、Kubernetes 上のアプリケーションからログをシームレスに収集する方法を提供します。無料のオープンソース データ コレクターは、ログ データのより適切な使用、理解、分析のために、ビッグ データだけでなく、非構造化および半構造化データ セットもサポートするように配置されています。
この投稿では、FluentD を定義し、ビジネスでの使用例を示し、Kubernetes で FluentD を使い始めるためのヒントを提供します。
主要な取り組み
FluentD とは何ですか?
クロスプラットフォームソフトウェアプロジェクトとして開発された トレジャーデータ, 流暢なDは、ビッグデータログ収集の課題を解決するのに役立ちます。Apache License に基づいてライセンスされています。 v2.0 このプログラムは Ruby で書かれており、Linux と Windows の両方をサポートすることでデータ収集ソース間のギャップを埋めます。
FluentD は最新バージョンの Windows イベント ログを追跡し、データの収集と消費を統合して、ビジネスでデータを効果的に使用する方法をより深く理解できるようにします。ログが読み取られ、テール入力プラグインと照合されて Elasticsearch、Cloudwatch、または S3 に送信された後、FluentD はログ ファイルを収集、解析、配布できます。
FluentD は、Kubernetes 間のシームレスな同期により、サービスとインフラストラクチャの監視と管理を向上させます。Kubernetes を使用すると、障害を探しながらパフォーマンスを微調整できます。
FluentD を使用しているのは誰ですか?
Amazon Web Services、Change.org、サイバーエージェント、DeNA、ドリコム、GREE、ガンホーなどの企業は、ほとんどのユースケースに対応するプラグイン リポジトリを使用して簡単にインストールおよびカスタマイズできるため、FluentD を使用しています。このプログラムは、メトリックの視覚化、ログ監視、およびログ収集を提供します。さらに、オープンソース ソフトウェア プロジェクトとして、ユーザー コミュニティは継続的な改善に取り組んでいます。
「FluentD はデータ収集ソース間のギャップを埋め、ログのシームレスな統合と分析を可能にします。」
FluentD はどのようにログに記録しますか?
Kubernetes の FluentD は、Kubernetes (または別のソース) からデータをコンパイルしてログを変換し、データをリダイレクトして適切なデータ出力結果を提供するコンポーネントを使用して、データ ソースからログ データを収集するのに役立ちます。次に、データ出力プラグインは、ログ データをより適切に分析および理解できるように、データを収集して再利用するのに役立ちます。
FluentD アーキテクチャ
FluentD は、出力とソースをサポートする数百のプラグイン オプションを備えた、柔軟で軽量なソリューションとして設計されています。Kubernetes の FluentD は、ログ タイプ間の統合レイヤーを提供します。プラグインが構築され、FluentD で使用されるようになると、アプリケーション ログ、クリックストリーム、イベント ログを分析する方法が増えます。
FluentD を複数のコンポーネントに分割できます。
プラグインエコシステム
FluentD の最大の強みの 1 つは、その拡張性です。ほとんどのサードパーティ アプリケーション (AWS、Azure、Elasticsearch、MySQL など) との統合を可能にするプラグインが用意されています。これにより、FluentD はデータを収集し、FluentD エンジンで処理して、選択したストレージ環境に出力できます。
使用できるプラグインには多くの種類があります。
- 入力: HTTP、REST API、その他のソースを含むさまざまなソースからログを収集します。
- 出力: SQLデータベース、クラウドサービス、その他のさまざまな宛先への出力転送を許可します。 ログ取り込みサービス.
- フィルタリング: イベントの削除、フィールドの追加、データの非表示により、ログ データのカスタム処理と変換を支援します。
- パーサー: FluentD が JSON や CSV などのさまざまな形式のデータを解析するのに役立ちます。
- フォーマット: ユーザーはニーズに応じてカスタム出力形式を作成したり、既存の形式を使用したりできます。
- バッファ: 入力ストリームをメモリまたはファイルに一時的に保存するために使用されます。
- ストレージ: FluentD の内部状態をメモリ、ストレージ、または MongoDB や Redis などのキー値ストアに保存します。
- サービス検出: ユーザーが独自のニーズを満たすためにサービス検出を拡張できるように支援します。
- 指標: FluentD の内部メトリックをローカルに保存します。
バッファリング機構
FluentD のバッファリング メカニズムにより、大量のログ データを効率的に処理し、必要な場所にデータを取得できます。すべてのデータが処理され、変換中にデータが失われないようにするには、効果的なバッファリングが必要です。
これは、チャンク、メモリ ストレージ、バックプレッシャー軽減、再試行メカニズムを使用した効率的な処理使用によって実現されます。
- チャンク: チャンクは、処理を容易にするために作成されるレコードの小さなグループ (通常、それぞれ約 2 MB) です。
- メモリ: FluentD がチャンクを処理するために使用するスペース。通常は速度のためシステム メモリ内にありますが、ユーザーのニーズに基づいて構成できます。
- バックプレッシャーの軽減: mem_buffer_limit とファイル システム バッファリングを使用してメモリの使用量を制限することで、高負荷環境を支援するプロセス。
- 再試行メカニズム: FluentD が失敗した処理要求を処理するのを支援し、処理できない場合はチャンクを回復不能としてマークします。
構成ファイル
FluentD は、階層的なファイル構造を使用してシステム構成を処理します。入力ソース、出力ソース、マッチング、システム ディレクティブ、ルーティングのディレクティブを含む構成ファイルを使用します。
FluentD の強みの 1 つは、動的な実行構成です。変更を適用するためにシステム全体を再起動する必要はありません。これにより、新しい環境の構成とテストが容易になります。
FluentD では、ログや固有の状況に基づいた複雑なルーティングも可能です。設定ファイルにはタグとラベルが用意されており、出力を適切なソースに送るのに役立ちます。
リソースの最適化
FluentD を使用する環境では、特に大量のデータを処理する場合やリソースが制限された環境で作業する場合、大量のリソースを使用する可能性があります。
FluentD は、このような状況に役立ついくつかのソリューションを提供します。
- 流暢なビット: クラウドインフラストラクチャに接続するエッジノードに最適な軽量ログフォワーダー
- FluentD フォワーダー: リソースが限られた環境向けに設計された FluentD の簡易バージョン
FluentD が重要な理由
FluentDには統合ログレイヤーが含まれており、ログが生成されるとすぐにアクセスして使用できるようになります。これにより、 LogicMonitorのような監視プラットフォームさらに、データソースを分離することで、データの反復処理を高速化し、より効果的かつ効率的に使用できるようになります。 主な理由 Kubernetes の FluentD がデータ収集に最適なオープンソース ソフトウェアである理由:
- プラグインで簡単にセットアップ、カスタマイズ可能FluentD は 10 分でセットアップでき、さまざまなユースケース シナリオをサポートする 500 を超えるプラグインが含まれています。
- フリーおよびオープンソース: Kubernetes の FluentD は制限なく使用でき、ほとんどの企業のニーズを満たすのに十分な柔軟性を備えています。
- 信頼性と高いパフォーマンス: すでに 5,000 社を超える企業が、信頼性が高く高品質なデータ収集結果を得るために FluentD を活用しています。
- コミュニティサポート: Kubernetes コミュニティの FluentD は、GitHub や StackOverflow のディスカッション、ドキュメント、専用の Slack チャネル、Twitter や Facebook のページ、バグ/機能トラッカーなど、さまざまなリソースを通じて、その成長と開発のための専用サポートを提供しています。
- 互換性のありますFluentD は、ビッグデータの互換性、分析、再利用のために、データのクロスプラットフォーム同期を標準化し、サポートすることに取り組んでいます。
「10 分で FluentD をセットアップし、特定のユースケース シナリオに合わせて 500 を超えるプラグインを活用できます。」
FluentD のベストプラクティス
FluentD は、Scribe や Flume などの他の選択肢と比較して、メンテナンスとインストールが最も簡単なデータ収集ツールの 1 つとして評価されています。ツールに関係なく、目標は最も高速で合理化されたデータ収集エクスペリエンスを実現することです。これらのベスト プラクティスでは、ログと処理の迅速な最適化につながる FluentD の迅速なセットアップについて説明します。
余分な計算を避ける
FluentD はシンプルで使いやすいように設計されていますが、構成に余分な計算を追加すると、データの一貫性の維持と読み取りが困難になり、システムの堅牢性が低下する可能性があります。通常、データ処理全体を通じてデータを可能な限り合理化することが推奨されており、FluentD も例外ではありません。FluentD は要求の厳しいデータ要件にも対応できるほど柔軟ですが、シンプルなデータ収集システムを維持するのが最適です。
マルチプロセス入力プラグインを使用する
CPU が過負荷になっている場合は、マルチプロセスを試してください。マルチプロセス入力プラグインを使用すると、追加の構成要件で複数のプロセスを分離できます。複数の子プロセスの設定には時間がかかりますが、CPU の過負荷や受信 FluentD レコードのボトルネックを防ぐのに役立ちます。
Ruby GCパラメータでメモリ使用量を削減する
Ruby GC パラメータはパフォーマンスを調整し、パラメータを構成します。RUBY_GC_HEAP_OLDOBJECT_LIMIT_FACTOR は値を下げてメモリ使用量を改善します (デフォルトは 2.0)。
Kubernetes の FluentD はどのように機能しますか?
FluentD は、各ノードに 8 つのポッドが存在するように、Kubernetes に DaemonSet としてデプロイされます。その結果、KXNUMXs クラスターからログが収集され、Kubernetes 用に作成された適切なディレクトリから読み取ることができます。さらに、ログをスクラップして構造化された JSON データに変換し、tail 入力プラグインを介して Elasticsearch にプッシュすることもできます。
Kubernetes の FluentD + LogicMonitor
流暢なD 組織に関係なく、無数のログを分析できます。プログラムの柔軟性とシームレスなクロスプラットフォーム互換性により、不良データを統合したり、速度低下の苦痛を経験する危険なしに、リアルタイムのデータ分析の優れた通信が実現します。
LogicMonitor は、ログ記録に FluentD を使用するチームに効果的なソリューションを提供することを目指しています。
LogicMonitorのEnvisionプラットフォームは、ハイブリッド環境の監視に支援が必要な組織に包括的なハイブリッド監視ソリューションを提供します。 FluentDとの統合 組織は FluentD の可能性を最大限に引き出し、FluentD が提供するすべてのメリットを活用できるようになります。
LogicMonitorへのお問い合わせ 私達についての詳細を学ぶため ログ分析 今日!
私たちのブログを購読する
このような記事をあなたの受信箱に直接お届けします