95

Apache ファイルを解析するために Logstash をインストールしました。設定を正しく行うのにかなりの時間がかかり、常に実際のログを試していました。(ドキュメントにあるように)logstash がファイル内の場所を「記憶」していることに気付きました。これで私の設定はOKです。Logstashを「忘れる」ようにしたいと思います。これは私より難しいようですが。私はすでに次のことをしました:

  • 使用済み:start_position => "beginning"

  • elastissearchから完全な「データ」フォルダーを削除しました(そして最初に停止しました)

  • logstash で開かれたファイルを確認しlsof -p PID、有望なすべてのものを削除しました (私の場合/tmp/jffi*.tmp)

それでも Logstash は、ログが保存されているフォルダー内の「新しい」ファイルのみを忘れずに解析します。

何か案は?

4

14 に答える 14

137

デフォルトでは、logstash は最後にあった位置を、通常は に存在するログファイルに書き込みます$HOME/.sincedb。as . /dev/null_sincedb_path

ドキュメントInput Fileの一部です。

since データベースを書き込む場所 (監視対象のログ ファイルの現在の位置を追跡します)。デフォルトは、環境変数「$SINCEDB_PATH」または「$HOME/.sincedb」の値です。

設定例

input {
    file {
        path => "/tmp/logfile_to_analyse"
        start_position => "beginning"
        sincedb_path => "/dev/null"
    }
}
于 2014-08-04T13:31:16.540 に答える
9

すべての回答を組み合わせて、これがファイルを解析する最良の方法だと思います。私は自分のテストでも同じことをしました。

input {
  file {
    path => "/tmp/access_log"
    start_position => beginning
    sincedb_path => "/dev/null"
    ignore_older => 0
  }
}

簡単なテストのために、代わりに、ファイルのタイムスタンプを変更ignore_olderすることもできます。touch /tmp/access_log

于 2016-12-18T23:23:58.487 に答える
5

logstash-forwarder を使用している場合は、.logstash-forwarder代わりにホームでファイルを確認してください。

{
  "/var/log/messages": {
    "source": "/var/log/messages",
    "offset": 43715,
    "inode": 12967,
    "device": 51776
  }
}
于 2014-11-25T21:25:23.183 に答える
3

削除$HOME/.sincedb_*した後も、データを取り込んでいませんでした。

たくさんのことを試した後、Logstash.confからメイン ファイル以外をすべて削除して再起動したところ、すべてが機能しました。私は、logstash が静かにぶら下がってい/etc/logstash/conf.dたファイルの 1 つに何かがあったと推測することしかできません。.conf

于 2015-04-03T16:02:49.007 に答える
1

logstash オプションをいじりたくない場合は、既存のログ ファイルの名前を変更または削除し、古いファイルの内容から新しいファイルを作成すると、logstash をだましてインデックスを再作成することがわかりました。

于 2016-08-15T14:21:17.237 に答える
0

ホームディレクトリで見つけましたが、削除した後、logstash は既存のログファイルを再選択することを拒否しました。私がそれを機能させる方法は、追加することでした

sincedb_path => "/opt/elk/sincedb/"  

私のファイルプラグインに。毎回リセットしようと思いますが、 sincedb_path のパスを変更するだけです

于 2014-08-31T02:35:01.813 に答える
0

私は提案します:

sincedb_clean_after => 0
start_position => "beginning"
于 2021-04-02T06:47:23.127 に答える
-1

logstash バージョン 5 の新しいディレクトリは次の場所にあります

<path.data>/plugins/inputs/file

path.data 定義は logstash.yml にあります

于 2017-06-23T23:04:23.207 に答える