2
ローカルのELKスタック(macOs)で '古い'ログファイルを処理しようとしていますが、Logstashでファイルを読み取ることができません。Logstashで古いログを処理するには
{"eventid": "cowrie.direct-tcpip.data", "timestamp": "2016-07-10T03:00:17.713013Z", "format": "direct-tcp forward to %(dst_ip)s:%(dst_port)s with data %(data)s", "sensor": "sensor", "system": "says message", "src_ip": "8.8.8.8", "session": "session", "dst_port": 25, "dst_ip": "0.0.0.0", "message": "message'", "data": "data", "isError": 0}
STDINに1行入力すると正常に動作します。すべてのスタックオーバーフローの質問を読んで、私はすべてを試してみました
input {
# this is the actual live log file to monitor
file {
path => "/Users/Auyer/ELK/ServerLogs/cowrie.json"
start_position => beginning
ignore_older => 0
sincedb_path => "/Users/Auyer/ELK/ServerLogs/cowrie.sincedb"
codec => json_lines
sincedb_write_interval => 15
discover_interval => 5
}
stdin{
codec =>json_lines
type => "cowrie"
}
}
filter {
if [type] == "cowrie" {
json {
source => message
}
date {
match => [ "timestamp", "ISO8601" ]
}
if [src_ip] {
dns {
reverse => [ "src_host", "src_ip" ]
action => "append"
}
geoip {
source => "src_ip"
target => "geoip"
database => "/Users/Auyer/ELK/logstash-2.3.3/vendor/geoip/GeoLiteCity.dat"
add_field => [ "[geoip][coordinates]", "%{[geoip][longitude]}" ]
add_field => [ "[geoip][coordinates]", "%{[geoip][latitude]}" ]
}
geoip {
source => "src_ip"
database => "/Users/Auyer/ELK/logstash-2.3.3/vendor/geoip/GeoIPASNum.dat"
}
mutate {
convert => [ "[geoip][coordinates]", "float" ]
}
}
}
}
output {
if [type] == "cowrie" {
elasticsearch {
hosts => ["localhost:9200"]
}
file {
path => "/Users/Auyer/ELK/tmp/cowrie-logstash.log"
codec => json
}
stdout {
codec => rubydebug
}
}
}
(ただし、線の一部は、STDINとして貼り付けコピーを解除するにはあまりにも大きいです)、そして何も動いていないようにみえ。
他にも使用できる方法はありますか?
これを試してください:logstashとelasticsearchを起動し、使用するログファイルを開き、ログ全体をコピーして同じファイルに貼り付けて保存します。これが機能しているかどうか教えてください。 – rresol
@rresol私は動作しなかったものを試しました。私は古いファイルを移動し、古いファイルからすべてのものを貼り付ける新しいファイルを作成しました。 しかし、私はプログラムが同時に動いているのか、それとも後で彼らを反撃したのか分かりません。 –
試してみてください。そして、logstashとelasticsearchが実行されていることを確認します。私は同様の問題を抱えていましたが、ファイルに新しいコンテンツを追加しているときにイベントとして放出されていたことがわかりました – rresol