web-dev-qa-db-ja.com

ログファイル集約のためのLogstashとRsyslog

CentOs6.xサーバーからの集中ログファイル集約のソリューションに取り組んでいます。 Elasticsearch/Logstash/Kibana(ELK)スタックをインストールした後、RsyslogからElasticsearchにlogstash形式でメッセージを送信できるRsyslog omelasticsearchプラグインに出会い、Logstashが必要な理由を自問し始めました。

Logstashには、Rsyslogメッセージを受け入れるプラグインを含むさまざまな入力プラグインがあります。複数のサーバーからログファイルのコンテンツを収集する必要があるユースケースにLogstashを使用する理由はありますか?また、Elasticsearchに直接送信するのではなく、RsyslogからLogstashにメッセージを送信する利点はありますか?

12
alecswan

Rsyslogにないものが必要な場合は、途中でLogstashを使用します。たとえば、IPアドレスからGeoIPを取得します。

一方、Elasticsearchでsyslogまたはファイルの内容にインデックスを付ける必要がある場合は、rsyslogを直接使用します。バッファリング(ディスク+メモリ)、フィルタリングを実行でき、ドキュメントの外観を選択でき(たとえば、数値の代わりにテキストの重大度を指定できます)、非構造化データを解析できます。しかし、主な利点は、rsyslogが焦点を当てているパフォーマンスです。 Logstash、rsyslog、Elasticsearchに関するいくつかの数値(およびヒントとコツ)を含むプレゼンテーションを次に示します。 http://blog.sematext.com/2015/05/18/tuning-elasticsearch-indexing-pipeline-for-logs /

5
Radu Gheorghe

Logstashをお勧めします。それはセットアップがより簡単で、より多くの例があり、それらが一緒に収まるようにテストされています。

また、いくつかの利点があります。logstashでは、ログをフィルタリングおよび変更できます。

  1. サーバー名、タイムスタンプ、...などの有用なデータでログを拡張できます。
  2. キャストタイプ、文字列から整数など(正しいElasticインデックスに役立ちます)
  3. いくつかのルールでログを除外する

さらに、バッチサイズを設定して、エラスティックへの保存を最適化できます。別の機能として、問題が発生し、Elasticが処理できない1秒あたりのログ数が異常に多い場合は、logstashを設定して、イベントのキューを保存したり、保存できないイベントを削除したりできます。

3
Andrew Andrew

負荷がかかった状態で動作し、高可用性を実現するためにシステムに本当に依存したい場合は、どちらも実行可能なオプションではありません。

Rsyslogを使用して一元化された場所に送信し、redis of kafkaを使用してアーカイブし、logstashを使用してその魔法を実行し、Elasticsearchに出荷することが最良のオプションであることがわかりました。

それについての私たちのブログを読んでください ここ -- http://logz.io/blog/deploy-elk-production/

(免責事項-私は logz.io のVP製品であり、ELKをサービスとして提供しています)

2
Asaf Yigal

サーバーからelasticsearchに直接アクセスすると、基本的なドキュメントを取得できます(ソースがjsonなどであると想定)。私にとって、logstashの力は、ビジネスロジックを適用してログを変更および拡張することにより、ログに付加価値を与えることです。

1つの例を次に示します。syslogは優先度レベル(0〜7)を提供します。値が0〜7の円グラフは必要ないので、表示に使用できるきれいな名前( "emerg"、 "debug"など)を含む新しいフィールドを作成します。

ほんの一例...

2
Alain Collins