2017-07-14 5 views
0

私はfilebeatの一度限りの配信コミットメントについて読んでいます。私が理解したことは、送信されたログラインの確認がファイルビートで受信されないと、ファイルビート再開の場合)。 私の解決策では、Filebeat、Logstash、およびlogstashがフィルタリングに使用している他のコンポーネントを使用しています。そして、フィルタリングの後、ログ・スタッシュはelasticsearchにラインを送ります。今ここにLogstashが入力ソースにACKを送信すると、

は、我々は損失データをすることができますチェックポイント下回っている。

  1. Filebeat logstashからのACKを受信せずにシャットダウンしました - このケースでは、ラインがfilebeatで再び送られることを知っています。
  2. Filebeatが1行を送信し、logstashが外部コンポーネントとのフィルタリングを適用し、それがelasticsearchに送信しようとしたときにlogstash/elasticsearchがクラッシュしたとしたら、このデータは失われます。

私の質問は:以下の順序で

基本的にlogstashプロセスデータ:

INPUT --> FILTER --> OUTPUT 

だから私はその時filebeatするACKを送信しますlogstashステップ知りたいです。私は基本的にどのようにACKSが送信されているのかを理解したいと思います。私はgoogleとELKの公式サイトで検索しようとしましたが、情報を詳細に取得しませんでした。

誰かがこれらの詳細を理解するのを手伝ってもらえますか?ありがとうございます。

答えて

1

パイプラインワーカーの内部キューにイベントをプッシュすると、入力はACKになります。それはプラグイン入力スレッドがイベントが完了したとみなすときです。

パイプラインの作業者は何が起こるのかは種類によって異なります。永続的なキューが設定されて有効になっている場合、logstashが再起動してもデータが失われることはありません(その場合はバグです)。永続キューがない場合、そのデータは失われます。

関連する問題