2016-03-30 8 views
0

私はRedisでサポートされているELKスタックを使用していますが、何らかの理由でElasticSearchが利用できない場合に問題が発生することがあります。ログイベントのLogstash + Elasticsearchフェールオーバーをローカルで実行するか、または再試行してください

フロー:

  1. サーバーは
  2. サーバがローカルRedisのサービス
  3. にLogstashサーバーにリモート
  4. Logstash-入ってくる書き込みを押して、ログを収集、ログ・宅配便を実行ログを生成します
  5. Redisは、バッファとして機能する処理対象のイベントを保持します。
  6. Redisキューからログアウトし、grokやその他のフィルタを実行してから、Elasticsearchクラスタに出力します。

logstash-incoming.conf

input { 
    courier { 
    port => 123 
    transport => "tcp" 
    } 
} 
output { 
    redis { 
    host => "127.0.0.1" 
    data_type => "list" 
    key => "logstash" 
    } 
} 

logstash-outgoing.conf

input { 
    redis { 
    host => "127.0.0.1" 
    data_type => "list" 
    key => "logstash" 
    } 
} 
output { 
    elasticsearch { 
    hosts => "elasticsearchcluster.local" 
    } 
} 

ステップ5で障害が発生した場合、イベントはRedisのからポップされ、Logstashは3を尽くします倍のペイロードをブラックホールして、データ収集に穴を開ける。

  1. がはるかに寛大なものに3回から待ちのX 2秒、リトライを行う拡張:

    するいずれかの方法があります。

  2. 問題が解決したら、ペイロードをディスクに書き込んで、ElasticSearchに戻すことができます。理想的には、両方とも。

答えて

関連する問題