gpt4 book ai didi

elasticsearch - Logstash无法识别日志时间

转载 作者:行者123 更新时间:2023-12-03 02:05:01 25 4
gpt4 key购买 nike

我是ELK堆栈的新手,但是在阅读文档后,我仍然无法获取logstash来识别自定义时间

日志看起来像这样

2014-11-30 03:30:01.000118,122.99.34.242,123.56.212.1,44,u,q,NA,0       ? a.root-servers.net A

我的logstash过滤器是这个
filter {
date {
#2014-11-30 03:30:01.000118,122.99.34.242,123.56.212.1,44,u,q,NA,0 ? a.root-servers.net A
match => ["timestamp" , "YYYY-MM-dd HH:mm:ss"]
locale => "en"
}
}

但是,当我通过该配置文件和日志文件运行它时,它似乎无法识别我定义的匹配项
{
"message" => "2014-11-30 03:30:01.011895,123.52.36.153,213.55.121.1,55,u,q,NA,0\t? mobile-collector.newrelic.com A\t",
"@version" => "1",
"@timestamp" => "2014-12-03T03:09:49.857Z",
"type" => "syslog",
"host" => "0.0.0.0",
"path" => "/var/log/dns/2014-11-30_0335_dnsparse.log"
}

我正在运行“logstash 1.4.2修改”

为了完整起见,这是我的整个logstash配置
input {
file {
path => "/var/log/dns/*.log"
type => "dns_parselog"
start_position => beginning
}
}

filter {
date {
#2014-11-30 03:30:01.000118,122.99.34.242,123.56.212.1,44,u,q,NA,0 ? a.root-servers.net A
match => ["timestamp" , "YYYY-MM-dd HH:mm:ss"]
locale => "en"
}
}
output {
elasticsearch {
host => localhost
}
stdout { codec => rubydebug }
}

最佳答案

您要让日期过滤器解析一个名为“timestamp”的字段,但是没有这样的字段。首先将消息中的时间戳提取到单独的字段,然后使用日期过滤器。

filter {
grok {
match => ["message", "%{TIMESTAMP_ISO8601:timestamp}"]
}
date {
match => ["timestamp", "YYYY-MM-dd HH:mm:ss.SSSSSS"]
remove_field => ["timestamp"]
}
}

您将需要向grok表达式中添加其他模式以提取其他字段,但这超出了此问题的范围。

关于elasticsearch - Logstash无法识别日志时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27263029/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com