大家好,我有OS日志,我想将@timestamp更改为日志中的时间:
Wed Oct 10 23:46:19 2018 +02:00
LENGTH : '2295'
ACTION :[2143] 'select /*+ '
DATABASE USER:[3] 'SYS'
PRIVILEGE :[4] 'NONE'
CLIENT USER:[0] ''
CLIENT TERMINAL:[7] 'UNKNOWN'
STATUS:[1] '0'
DBID:[10] '0088'
接下来,在Logstash中,我使用以下过滤器:
grok {
match => [ "message", "%{DAY:day} %{MONTH:month} %{MONTHDAY:monthday} %{TIME:time} %{YEAR:year} %{ISO8601_TIMEZONE:timezone} .*LENGTH : .%{INT:length}.*ACTION :\[\d*\] .%{GREEDYDATA:action}.*DATABASE USER:\[\d*\] '%{GREEDYDATA:database_user}'.*PRIVILEGE :\[\d*\] '%{GREEDYDATA:privilege}'.*CLIENT USER:\[\d*\] '%{GREEDYDATA:client_user}'.*CLIENT TERMINAL:\[\d*\] '%{GREEDYDATA:client_terminal}'.*STATUS:\[\d*\] '%{INT:status}'.*DBID:\[\d*\] '%{GREEDYDATA:dbid}'.*"]
}
mutate {
add_field => {
"timestamp" => "%{month} %{monthday} %{year} %{time}"
}
}
date {
match => [ "timestamp", "MMM dd yyyy HH:mm:ss"]
target => "@timestamp"
}
但是,我在kibana中出错:
_grokparsefailure, _dateparsefailure
此外,其他字段未映射,而在时间戳字段中,我具有:
%{month} %{monthday} %{year} %{time}
如果我删除了日期过滤器插件,则其他字段仍然有效,但没有更改@timestamp。
我也在使用filebeat中的多行选项。
预先感谢