過去に Logstash を使用したことがありますが、しばらく経ち、ファイルからの読み取りを試みたのはこれが初めてです。私の人生では、絶対に単純な仕事であるべきことに何時間も費やしてきました。ログ全体を読む代わりに、小さなものから始めて、そこからコードを構築しています。
私のログのファイル名は /home/shoresc/Desktop/logstash_config/sample.messages です
その内容は次のようになります。
Jan 15 00:33:48 "POST /service.php?session_name=sample_name HTTP/1.1"
私のlogstashファイルは次のようになります。
input {
file {
path => "/home/shoresc/Desktop/logstash_config/sample.messages"
}
}
filter {
grok {
patterns_dir => "/home/shoresc/Desktop/logstash_config/patterns"
match => [ "message", "%{SYSLOGBASE} %{GREEDYDATA:message1}"]
}
}
output {
stdout { codec => rubydebug }
}
最後に、このパスを使用してこのコードを参照しています:
/usr/bin/java -Xmx256m -Xms256m -jar logstash.jar agent -w 1 -f /home/shoresc/Desktop/logstash_config/syslog.conf
Syslog.conf はそのディレクトリにあり、パターン フォルダーへのパスと sample.messages ファイルを確認しました。奇妙なことは、実際に時折それを解析することです。20回に1回くらい。
これはlogstashのバグであるとほぼ確信していますが、何か不足している場合に備えてコミュニティで実行したいと思います。
ここで何か間違ったことをしていますか?
前もってありがとうコール
私はこれでコードを更新しました:
input {
file {
path => "/home/shoresc/Desktop/logstash_config/sample.messages"
type => syslog
start_position => "end"
}
}
filter {
if [type] == "syslog" {
grok {
patterns_dir => "/home/shoresc/Desktop/logstash_config/patterns"
match => [ "message", "%{SYSLOGBASE} %{GREEDYDATA:message1}"]
}
}
}
output {
stdout { codec => rubydebug }
}
私のすべての拠点をカバーするには(タグを追加し、ファイル入力を終了に設定します。まだ機能していません。誰かアイデアはありますか?
ありがとう、コール