3

stdin を入力ストリームとして使用すると、正しい出力が得られます。しかし、ファイルを入力として使用するたびに、次のメッセージの後に出力がフリーズします。

"Using milestone 2 input plugin 'file'. This plugin should be stable but if you see strange behavior, please let us know."

ここに私の設定ファイルがあります。

input {
  file {
    path => ["c:/users/a/b/c/logstash-1.4.1/bin/logs/logfile.log"]
    start_position => beginning
  }
}

filter {
    grok {
                patterns_dir => "./patterns"
                break_on_match => "false"
                match => ["message", "%{MY_DATE:my_date}"]
        }
    grok {
                patterns_dir => "./patterns"
                break_on_match => "false"
                match => ["message", "%{DATE:date}"]
        }
    grok {
                patterns_dir => "./patterns"
                break_on_match => "false"
                match => ["message", "%{TIME:time}"]
        }
    grok {
                patterns_dir => "./patterns"
                break_on_match => "false"
                match => ["message", "%{LOG_LEVEL:log_level}"]
        }
    grok {
                patterns_dir => "./patterns"
                break_on_match => "false"
                match => ["message", "%{SERVER:server}"]
        }
    grok {
                patterns_dir => "./patterns"
                break_on_match => "false"
                match => ["message", "%{CLASS_NAME:class_name}"]
        }

}

output {
  stdout { codec => rubydebug }
  elasticsearch { host => localhost }
 }

ファイル パスの形式が間違っていませんか?

4

3 に答える 3

5

新しいログをログ ファイルに書き込みますか?

start_position オプションは、a file is new and not seen before. これは、監視対象のログ ファイルの現在の位置を追跡するために、Logstash がファイルごとにsincedbを保存するためです。そのため、次に Logstash を再起動すると、Logstash は sincedb レコードに基づいてファイルの監視を開始し、start_position は機能しません。

そのため、古いログをインポートする場合は、logstash を開始して start_position オプションを追加する前に、すべての .sincedb ファイルを削除する必要があります。

于 2014-06-11T01:47:51.903 に答える
4

ここに 2 つの問題があります。

  1. ファイルの読み取り場所を追跡する sincedb プロセスは現在、Windows で壊れています: https://logstash.jira.com/browse/LOGSTASH-429。パッチがありますが、バージョン 1.4.1 の時点でまだ壊れていることが確認されています。
  2. ドキュメントによると、「開始」または「終了」であり、start_position のデフォルトは「終了」です。だから私はそれがあなたの指示を無視しているだけだと思います。

start_position

Value can be any of: "beginning", "end"
Default value is "end"

Logstash が最初にファイルの読み取りを開始する場所 (最初または最後) を選択します。デフォルトの動作では、ファイルがライブ ストリームのように扱われるため、最後から開始されます。インポートしたい古いデータがある場合は、これを「開始」に設定してください</p>

この組み合わせにより、常にファイルの最後から開始する可能性があります。

現在、Windows でテストすることはできません (職場ではアクセスできません) が、これをあなたに伝えたかったのです。

于 2014-06-11T23:43:50.443 に答える
0

Macでlogstash-1.5.4を使用しています。同様の問題が発生し、conf ファイルで sincedb_path を明示的に設定することで解決しました。

sincedb_path => "your sincedb path"

異なるバージョンのlogstashと異なるOSを使用しているため、このソリューションで問題が解決するかどうかはわかりません.

コマンドをデバッグ モードで実行して、何が起こっているかを確認できます。

./bin/logstash -f my_logstash.conf --debug
于 2015-10-27T16:19:31.450 に答える