1
ESETログファイル(json形式)をelasticsearchに取得する作業。私はsyslogサーバ(syslog-ng)にログを配送してから、logstashとelasticsearchに配送します。それはすべきである。私の問題は、logstashでログを処理しようとしている...キーと値のペアを別々のフィールドに分けることができない。ここでLogstash Grok Filterのキーと値のペア
は、サンプルのログエントリです:ここで
Jul 8 11:54:29 192.168.1.144 1 2016-07-08T15:55:09.629Z era.somecompany.local ERAServer 1755 Syslog {"event_type":"Threat_Event","ipv4":"192.168.1.118","source_uuid":"7ecab29a-7db3-4c79-96f5-3946de54cbbf","occured":"08-Jul-2016 15:54:54","severity":"Warning","threat_type":"trojan","threat_name":"HTML/Agent.V","scanner_id":"HTTP filter","scan_id":"virlog.dat","engine_version":"13773 (20160708)","object_type":"file","object_uri":"http://malware.wicar.org/data/java_jre17_exec.html","action_taken":"connection terminated","threat_handled":true,"need_restart":false,"username":"BATHSAVER\\sickes","processname":"C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe"}
は私のlogstash confにある:
input {
udp {
type => "esetlog"
port => 5515
}
tcp {
type => "esetlog"
port => 5515
}
filter {
if [type] == "esetlog" {
grok {
match => { "message" => "%{DATA:timestamp}\ %{IPV4:clientip}\ <%{POSINT:num1}>%{POSINT:num2}\ %{DATA:syslogtimestamp}\ %{HOSTNAME}\ %{IPORHOST}\ %{POSINT:syslog_pid\ %{DATA:type}\ %{GREEDYDATA:msg}" }
}
kv {
source => "msg"
value_split => ":"
target => "kv"
}
}
}
output {
elasticsearch {
hosts => ['192.168.1.116:9200']
index => "eset-%{+YYY.MM.dd}"
}
}
データと時間すべてが "で一緒に集中されているよりも、データがkibana他に表示された場合個別のキーと値のペアはなく、「メッセージ」フィールドのみです。
私は1週間読書しています。私は他のログファイルと同様のことを何の問題もなくしてきたので、何が欠けているのかは分かりません。どんな助言/提案も大歓迎です。