すべてのプロダクト
Search
ドキュメントセンター

Simple Log Service:ログ収集エージェントの違いは何ですか?

最終更新日:Aug 23, 2024

ログ収集シナリオでのクライアント評価

データ技術 (DT) の時代には、何億ものサーバー、モバイル端末、およびネットワークデバイスが毎日大量のログを生成します。 集中型ログ処理ソリューションは、ログデータのライフサイクルにおけるログ消費要件を効果的に満たします。 ログを消費する前に、デバイスからログを収集し、最初にクラウドに同期する必要があります。

3つのログ収集ツール

  • Logstash

    • ELKスタックの一部として、Logstashはオープンソースコミュニティで活動しています。 エコシステム内の広範なプラグインで動作します。

    • LogstashはJRubyでコーディングされており、Java仮想マシン (JVM) 上のプラットフォーム間で実行できます。

    • モジュール設計により、Logstashは高いスケーラビリティと相互運用性を備えています。

  • Fluentd

    • Fluendtdは、オープンソースコミュニティで人気のあるログ収集ツールです。 そのコアコンポーネントであるtdエージェントは、Treasure Dataによって市販されており、維持されています。 このトピックでは、Fluentdが評価用に選択されています。

    • FluentdはCRubyでコード化されています。 そのパフォーマンスに関連するいくつかの重要なコンポーネントは、Cで再コード化されます。Fluentdの全体的なパフォーマンスは優れています。

    • Fluentdはシンプルなデザインで、パイプラインで信頼性の高いデータ伝送を提供します。

    • Logstashと比較して、Fluentdのプラグインは少なくなっています。

  • Logtailは

    • As生産者のAlibaba Cloud Log Service、Logtailビッグデータシナリオでテストされていで長年Alibaba Group。

    • LogtailはC ++ でコーディングされており、安定性、リソース制御、および管理において優れたパフォーマンスを発揮します。

    • LogstashやFluentdと比較して、Logtailはオープンソースコミュニティからのサポートが少なく、ログ収集に重点を置いています。

機能の比較

機能

Logstash

Fluentd

Logtailは

ログデータの読み取り

投票

投票

イベントによるトリガー

ファイル回転

対応

対応

対応

ローカルチェックポイントに基づくフェイルオーバー処理

対応

対応

対応

一般的なログ解析

正規表現に基づくGrokを使用した解析

正規表現を使用した解析

正規表現を使用した解析

特定のログタイプ

区切り文字、キー値、JSONなどの主流形式

区切り文字、キー値、JSONなどの主流形式

区切り文字、キー値、JSONなどの主流形式

伝送のためのデータ圧缩

プラグインでサポート

プラグインでサポート

LZ4

Data filtering

対応

対応

対応

伝送用データバッファ

プラグインでサポート

プラグインでサポート

対応

送信例外処理

プラグインでサポート

プラグインでサポート

対応

ランタイム環境

JRubyでコード化され、JVM環境に依存

CRubyとCでコード化され、Ruby環境に依存

ランタイム環境の特別な要件なしで、C ++ でコード化

スレッドのサポート

マルチスレッド

グローバルインタプリタロック (GIL) によって制限されるマルチスレッド

マルチスレッド

ホットアップグレード

非対応

非対応

対応

集中構成管理

非対応

非対応

対応

実行中ステータスのセルフチェック

非対応

非対応

CPUまたはメモリしきい値保護をサポート

ログ収集シナリオでのパフォーマンス比較

たとえば、次のNginxアクセスログには365バイトが含まれており、そこから14のフィールドを抽出できます。

シミュレートされたテストシナリオでは、このログは、異なる圧縮比で繰り返し書き込まれる。 各ログの時間フィールドは、ログが書き込まれるときに現在のシステム時間に設定され、他の13のフィールドは同じです。 Compared実際シナリオ、模擬シナリオは差がない解析でログ。 Theのみが違い高データ圧縮比低減することができるネットワーク上のトラフィック書き込みデータ。

Logstash

In Logstash 2.0.0、Logstash parsesログを使用してGrokと書き込みログにKafka内蔵使用してプラグイン可能GZIP圧縮。

ログ解析設定:

grok {    
    patterns_dir=>"/home/admin/workspace/survey/logstash/patterns"
    match=>{ "message"=>"%{IPORHOST:ip} %{USERNAME:rt} - \[%{HTTPDATE:time}\] \"%{WORD:method} %{DATA:url}\" %{NUMBER:status} %{NUMBER:size} \"%{DATA:ref}\" \"%{DATA:agent}\" \"%{DATA:cookie_unb}\" \"%{DATA:cookie_cookie2}\" \"%{DATA:monitor_traceid}\" %{WORD:cell} %{WORD:ups} %{BASE10NUM:remote_port}" }
    remove_field=>["message"]
}

次の表にテスト結果を示します。

1秒あたりの書き込みトランザクション数 (TPS)

書き込みトラフィック (単位: KB/s)

CPU使用率 (単位: %)

メモリ使用量 (単位: MB)

500

178.22

22.4

427

1,000

356.45

46.6

431

5,000

1,782.23

221.1

440

10,000

3,564.45

483.7

450

Fluentd

td-agent 2.2.1では、Fluentdは正規表現を使用してログを解析し、GZIP圧縮を有効にするサードパーティ製プラグインfluent-plugin-Kafkaを使用してログをkafkaに書き込みます。

ログ解析設定:

<source>
  type tail
  format /^(? <ip>\S+)\s(? <rt>\d+)\s-\s\[(? <time>[^\]]*)\]\s"(? <url>[^\"]+)"\s(? <status>\d+)\s(? <size>\d+)\s"(? <ref>[^\"]+)"\s"(? <agent>[^\"]+)"\s"(? <cookie_unb>\d+)"\s"(? <cookie_cookie2>\w+)"\s"(?
<monitor_traceid>\w+)"\s(? <cell>\w+)\s(? <ups>\w+)\s(? <remote_port>\d+).*$/
  time_format %d/%b/%Y:%H:%M:%S %z
  path /home/admin/workspace/temp/mock_log/access.log
  pos_file /home/admin/workspace/temp/mock_log/nginx_access.pos
  tag nginx.access
</source>

次の表にテスト結果を示します。

TPSの書き込み

書き込みトラフィック (単位: KB/s)

CPU使用率 (単位: %)

メモリ使用量 (単位: MB)

500

178.22

13.5

61

1,000

356.45

23.4

61

5,000

1,782.23

94.3

103

説明

GILの制限により、Fluentdの単一プロセスは1つのCPUコアのみを使用します。 マルチプロセスプラグインをインストールして複数のプロセスを使用し、より高いログスループットを実現できます。

Logtail

Logtail 0.9.4では、Logtailは正規表現を使用してログフィールドを抽出し、LZ4圧縮アルゴリズムを使用してデータを圧縮し、HTTPに準拠してデータをAlibaba Cloud log Serviceに書き込みます。 batch_sizeパラメーターは4000に設定されています。

ログ解析設定:

logRegex : (\S+)\s(\d+)\s-\s\[([^]]+)]\s"([^"]+)"\s(\d+)\s(\d+)\s"([^"]+)"\s"([^"]+)"\s"(\d+)"\s"(\w+)"\s"(\w+)"\s(\w+)\s(\w+)\s(\d+).*
keys : ip,rt,time,url,status,size,ref,agent,cookie_unb,cookie_cookie2,monitor_traceid,cell,ups,remote_port
timeformat : %d/%b/%Y:%H:%M:%S

次の表にテスト結果を示します。

TPSの書き込み

書き込みトラフィック (単位: KB/s)

CPU使用率 (単位: %)

メモリ使用量 (単位: MB)

500

178.22

1.7

13

1,000

356.45

3

15

5,000

1,782.23

15.3

23

10,000

3,564.45

31.6

25

シングルコアCPU処理能力の比較

概要

The 3ログ収集ツールが独自の長所と短所:

  • Logstashはすべての主流ログタイプ、最も豊富なプラグイン、と柔軟なカスタマイズ。 However、そのパフォーマンスログコレクションは比較的低、と必要高メモリ使用量JVM環境で実行しているとき。

  • Fluentdは、すべての主流ログタイプと多くのプラグインをサポートします。 Itsパフォーマンスログコレクションは良好である。

  • Logtail占有最少のCPUとメモリリソース機、達成高性能スループット、かつ包括的なサポート一般的なログコレクション。 ただし、プラグインのサポートが不足しているため、前の2つのツールよりも柔軟性とスケーラブル性が低くなります。