我的输入时间戳格式为Apr20 14:59:41248 Dataxyz。 现在在我的输出中,我需要以下格式的时间戳: **日月工作日小时:分钟:第二年DataXYZ **。我能够从输入中删除时间戳。但我不太清楚如何添加新的时间戳。
我在接收输入时使用grok匹配消息:
match => ["message","%{WORD:word} %{TIME:time} %{GREEDYDATA:content}"]
我尝试使用mutate add_field。但是没有成功添加DAY的值。 add_field => [ "timestamp","%{DAY}"]
。我的输出为'Day',而不是DAY的值。有人可以对错过的内容有所了解。
答案 0 :(得分:0)
您需要将其删除到各个命名字段中,然后您可以在add_field中引用这些字段。
所以你的grok会这样开始:
var db = new Database();
db.database('nodetest1')
.then(function (mydb) {return mydb.query('FOR x IN User RETURN x');})
.then(function (cursor) {return cursor.all();})
.then(
function (list) {console.log(list);},
function (err) {console.error('Something went wrong:', err);}
);
然后你可以把它们放回原处:
%{MONTH:month}%{MONTHDAY:mday}
答案 1 :(得分:0)
您可以查看我的回答,我认为这对您非常有帮助。
grok {
match => { "message" => "%{TIMESTAMP_ISO8601:time} \[%{NUMBER:thread}\] %{LOGLEVEL:loglevel} %{JAVACLASS:class} - %{GREEDYDATA:msg}" }
}
if "Exception" in [msg] {
mutate {
add_field => { "msg_error" => "%{msg}" }
}
}
答案 2 :(得分:0)