1

/var/log/wtmpアクセスログをelasticsearchから読み込もうとしています

を使用してボックスにログインすると、ファイルを読み取ることができますlast -F /var/log/wtmp

私はlogstashを実行してelasticsearchにログを送信しています.ここにlogstash confファイルがあります.

input {
  file {
    path => "/var/log/wtmp"
    start_position => "beginning"
  }
}

output {
  elasticsearch {
    host => localhost
    protocol => "http"
    port => "9200"
  }
}

Elasticsearchに表示されているのは

ここに画像の説明を入力

G

4

2 に答える 2

4

less を使用してファイルを開くと、バイナリ データしか表示されませんでした。現在、logstash はこのデータを理解できません。次のようなログスタッシュ ファイルは正常に動作するはずです -

input { 
  pipe {
    command => "/usr/bin/last -f /var/log/wtmp"
  }
}

output {
    elasticsearch {
    host => localhost
    protocol => "http"
    port => "9200"
    }
}
于 2015-11-05T13:20:41.280 に答える
1

Vineeth の答えは正しいですが、次のよりクリーンな構成も同様に機能します。

input { pipe { command => "last" } }

last /var/log/wtmplastまったく同じです。


utmp、wtmp、btmpは、ユーザーのログインとログアウトを追跡する Unix ファイルです。通常のテキスト ファイルではないため、直接読み取ることはできません。ただし、平文でlast情報を表示するコマンドがあります。/var/log/wtmp

$ last --help

Usage:
 last [options] [<username>...] [<tty>...]

last -F /var/log/wtmp を使用して、ボックスにログインしたときにファイルを読み取ることができます

私はそれを疑います。-Fフラグの機能:

-F, --fulltimes      print full login and logout times and dates

そのため、ユーザー名としてlast -F /var/log/wtmp解釈/var/log/wtmpされ、ログイン情報は出力されません。

-fフラグの機能:

-f, --file <file>    use a specific file instead of /var/log/wtmp
于 2015-11-05T14:12:14.270 に答える