2017-10-27 25 views
-1

私はlogstashとCsv filter pluginを利用して、新しいファイルのディレクトリを見て、それらをElasticsearchに処理したいと思っています。これは、これと同様の構成で、容易に達成可能である:logstashはどのような状態を維持しますか?

input { 
    file { 
     path => "/csv/*.csv" 
     start_position => "beginning" 
     sincedb_path => "/dev/null" 
    } 
} 

filter { 
    csv { 
     separator => "," 
    } 
} 

output { 
    elasticsearch { 
     hosts => "${ELASTICSEARCH_URL}" 
     index => "myData" 
     document_type => "auto" 
    } 
} 

私の主な関心事は、復元力整合性です。

回復力 - 私は、彼が一年以上前にこれで課題を説明しJoão Duarteことで話を見ました。彼は、(その時の)ログスタッシュはすべての状態を記憶に保持し、失敗に対して回復力がないと説明しています。これは本当ですか?彼は潜在的にファイルに状態を格納することを暗示していますが、このファイルは今存在していますか? Csvファイルを読み込んでいる途中でlogstashがクラッシュした場合は、再起動時に中断したところから続ける必要があります。これは可能ですか?

インテグリティ - グーグルリングのかなりの量の後には、Logstash is still incapable of deleting (or renaming) the Csv file after it's readと思われます。私のデータは冪等ではないかもしれませんし、同じCsvを2度読むことは許されません。しかし、logstashは同じファイルを何度も試し続けていないので、同じファイルを(少なくとも直ちに)読み取らないようにするメカニズムがあります。 Csvファイルを読み込んだ後(削除、名前変更、移動)、この時点で "何か"することを勧められますが、これが不可能な場合はcsvファイルをクリーンアップするための最良の方法は何ですか?永遠にハングアップする。

+0

なぜこれがダウン票を獲得したのか分かりませんか? – szxnyc

答えて

1

Persistent Queuesは、5.2以降でコード化されており、5.6によって、それらは生産品質とみなされています。これにより、パイプラインのイベントがローカルファイルに保存され、再起動時に読み込まれます。

ファイルを再読み込みしない場合、これは何年もLogstashの中核部分でした。これのメカニズムはsincedbと呼ばれ、指定したファイルプラグインにはsincedbパラメータが設定されています。 sincedb_pathは使用されるsincedb_file自体を指定し、sincedb_write_intervalはデータベースをファイルオフセットで更新する頻度を指定します。

ファイルをクリーンアップするために、Logstashはそのためのメカニズムを提供しておらず、故意にそれをオペレータに任せています。時間でアクセスされていないすべてのファイルを削除するために

find /var/log/csv-archive/ -atime 0.083 -type f |xargs rm 

:種々の機構の一つだけが、次の一時間に一度のようなものを実行するcronジョブである、このためにあります。これには別の方法があります。

関連する問題