DUICUO

オープンソースのログ収集ツール4つの紹介と機能分析

企業が既にオープンソースのログ収集ツールを使用している場合でも、1つ以上のツールの導入を検討している場合でも、ログ収集ツールに求められる主要な要件を理解することが不可欠です。これらの要件には、高いデータスループット、信頼性、拡張性、柔軟性、セキュリティ、そしてリソース消費量(CPUとメモリ)が含まれます。この記事では、市場で人気のログ収集ツール(Logstash、Fluentd、Fluent Bit、Vectorなど)とその主な機能について説明します。

1. ログスタッシュ

Logstash は最も人気のあるログ収集ツールの 1 つであり、ELK (Elasticsearch/Logstash/Kibana) アーキテクチャの一部です。

Logstash の主な利点:

  • 構造化データと非構造化データを処理します。
  • 強化されたデータ セキュリティをサポートし、機密フィールドを匿名化または除外できます。
  • 入力プラグイン、フィルタリングプラグイン、出力プラグインなど、数百のプラグインをサポートしています。フィルタプラグインは、集計や解析などのログ処理を実行します。

Logstashはログデータ処理のための豊富なオプションを備えた信頼性の高いログ収集ツールですが、メモリ使用量の削減が重要な要件である場合は、この記事で紹介する他のログ収集ツールの方が優れている可能性があります。LogstashはJavaで記述されているため、JVMのサポートが必要です。そのため、組み込みデバイスやIoTアプリケーションからログを収集する企業にとって最適な選択肢とは言えません。

2. 流暢に

Fluentdは、メモリ使用量が少なく、多様なログソースと出力先に対応できるログ収集ツールです。多くのプラグインがサポートされており、様々な種類のログソースと出力先への接続が可能です。他のログ収集ツールと同様に、Fluentdの典型的なログソースには、アプリケーション、インフラストラクチャ、メッセージキューイングプラットフォームなどが含まれ、典型的な出力先は、ログ管理ツールやストレージアーカイブシステムです。

Fluentd の主な利点:

  • 多くのログ ソースと宛先をサポートします。
  • 柔軟でスケーラブルな解析オプションは、さまざまな入力形式をサポートします。
  • 数百のプラグインを含む大規模なエコシステムを誇り、Ruby で独自のプラグインを作成する機能も備えています。
  • Apache ライセンス バージョン 2.0 をサポートします。
  • サプライヤー中立性(CNCF プロジェクト)。

Fluentdは、中立的なベンダーを必要とするビジネスに最適な選択肢です。Kubernetesやコンテナ化された環境でも頻繁に使用されます。

3. 流暢なビット

Fluent Bitはログ収集ツールであるだけでなく、データストリーム処理ツールとしても機能し、ログデータをFluentdに転送するためのトランスポーターとして機能します。Fluent Bitは、Kubernetesクラスターなどのコンテナ化された環境でスムーズに動作します。Fluent Bitはフットプリントが小さいため、スケーラブルでリソース効率に優れています。Kubernetes環境でよく使用されますが、ベアメタルサーバー、仮想マシン、組み込みデバイスにも導入できます。

Fluent Bit の主な利点:

  • メモリフットプリントが非常に小さい軽量設計 (通常 1 MB 未満)。
  • 簡単に拡張可能なアーキテクチャ。
  • 多数の入力、フィルター、出力プラグインを備えたプラグ可能なアーキテクチャを備えています。
  • メトリックベースとログベースの両方のペイロードをサポートします。
  • 安全な接続を介してストレージ バックエンドにログを送信することをサポートします。
  • SQL を使用し、データ ストリーム処理をサポートします。
  • Apache ライセンス バージョン 2.0 をサポートします。
  • サプライヤー中立性(CNCF プロジェクト)。

Fluent Bitは、多数のログソースからログとメトリクスを収集し、さまざまな宛先に送信します。Fluent Bitは、組み込み、エッジ、その他のリソース制約のある環境で真価を発揮します。これらの環境では、合理化されたランタイム環境と豊富な入出力オプションの組み合わせが不可欠です。

4. ベクトル

Vectorは高性能なログ収集ツールです。この記事で紹介する他のログ収集ツールと比べると、比較的新しいツールです。

Vector の主な利点:

  • 高いメモリ/CPU 消費量と高いデータ スループット。
  • 優れた信頼性、正確性、納期が保証されます。
  • これには、安全かつ高性能な方法でデータを動的に変換するカスタム DSL が含まれます。
  • メトリックとログに基づくペイロードをサポートします。
  • 多数の入力と出力が統合されています。
  • エージェントまたはアグリゲータとして展開できます。

Vectorは、幅広いデプロイメントオプション、メトリクスとログの同時サポート、そして多数の統合機能により、優れた柔軟性を備えた選択肢です。Rustで記述されたVectorは、メモリの安全性と効率性を保証する点で、既存のツールとは一線を画しています。Vectorはユニットテストフレームワークを導入しており、複雑なログ収集ツールのトポロジの維持管理を容易にします。

さらに、Vectorのソフトウェアコンポーネントは、ログとイベントが宛先に配信される際の配信保証の提供に努めています。Vectorユーザーは、Vectorコンポーネントのコード全体の安定性も保証されているというメリットも享受できます。これは、新規環境でも既存環境でも検討する価値のあるポイントです。

結論

どのツールが市場を支配しているかを判断するのは困難です。適切なログ収集ツールの選択は、企業の具体的なニーズと要件によって異なります。例えば、リソース消費量を抑える必要があるIoTアプリケーション向けのログ収集ツールを探している企業の場合、LogstashよりもVectorやFluent Bitの方が適しています。ベンダー中立性を重視する場合は、CNCFが支援するプロジェクト(FluentdやFluent Bitなど)が適切な選択肢です。パフォーマンス、リソース消費量、多様な入出力形式をサポートする柔軟性、スケーラビリティ、信頼性、ベンダーロックイン、セキュリティ要件などを慎重に検討することで、企業は適切なログ収集ツールを見つけることができます。

参考リンク:

https://www.cncf.io/blog/2022/02/10/logstash-fluentd-fluent-bit-or-vector-how-to-choose-the-right-open-source-log-collector/