我的系统审核日志包含日期格式,如created_at“:1422765535789,因此,弹性搜索输出也会将日期显示为相同的样式。但是,我想将此1422765535789转换并打印为unix样式的日期格式。
我在syslog文件中使用了这种格式(正如另一个问题线程所建议的那样)。但我没有得到上述值为unix样式日期格式 日期{ match => [“created_at”,“UNIX_MS”] }
嗨,我已经更新了syslog中的代码,但是,我将created_at仍然输出到相同格式的弹性搜索页面,如1422765535789,请找到修改后的代码
input {
stdin {
}
}
filter {
grok {
match => [ "message", "%{NUMBER:created_at}"
]
}
if [message] =~ /^created_at/ {
date {
match => [ "created_at" , "UNIX_MS" ]
}
ruby {
code => "
event['created_at'] = Time.at(event['created_at']/1000);
"
}
}
}
output {
elasticsearch { host => localhost }
stdout { codec => rubydebug }
}
答案 0 :(得分:0)
date
过滤器用于更新@timestamp
字段值。
input {
stdin {
}
}
filter {
grok {
match => [ "message", "%{NUMBER:created_at:int}"
]
}
if "_grokparsefailure" not in [tags]
{
date {
match => [ "created_at" , "UNIX_MS" ]
}
ruby {
code => "
event['created_at'] = Time.at(event['created_at']/1000);
"
}
}
}
output
{
stdout {
codec => rubydebug
}
}
这是我的配置。当我输入1422765535789
时,它可以解析值并更新@timestamp
字段值。
输出
{
"message" => "1422765535789",
"@version" => "1",
"@timestamp" => "2015-02-01T04:38:55.789Z",
"host" => "ABC",
"created_at" => "2015-02-01T12:38:55.000+08:00"
}
您可以发现@timestamp
的值与created_at
相同。
并且,ruby
过滤器用于将created_at
转换为UTC格式。
FYI。