logstash - 无法解析时间戳
logstash - Unable to parse timestamp
我有以下 JSON 日志(换行分隔)
{
"logName": "projects/gg-sanbox/logs/appengine.googleapis.com%2Fnginx.request",
"timestamp": "2018-04-02 22:26:02.869 UTC",
"receiveTimestamp":"2018-04-02 22:28:06.742394 UTC",
}
和 logstash 配置
input
{
file {
type => "json"
path => "/logs/mylogs.log"
codec => json
start_position => "beginning"
sincedb_path => "/dev/null"
}
}
filter{
json{
source => "message"
}
date {
match => [ "timestamp", "yyyy-MM-dd HH:mm:ss.SSS Z"]
}
}
output
{
stdout
{
#codec => rubydebug
}
elasticsearch
{
codec => "json_lines"
hosts => ["127.0.0.1:9200"]
# document_id => "%{logstash_checksum}"
index => "appengine_nginx-requests"
}
}
我在 logstash 输出中得到以下内容
"@timestamp"=>2018-04-07T15:26:31.857Z, "tags"=>["_dateparsefailure"],
请注意,它回退到当前数据和时间,而不是日志行中提到的时间,这实际上是事件已经发生,我想在 Kibana 时间线中看到。
不确定这里有什么问题。
查看date filter plugin documentation,格式选项Z
不匹配UTC
;因为单独它不是时区(要使它有效,它需要 +0000
)。您需要像这样添加它:yyyy-MM-dd HH:mm:ss.SSS 'UTC'
回答你关于秒精度的另一个问题; 不支持 精度低于毫秒。如果您查看上面的 link,您会发现:
Maximum precision is milliseconds (SSS). Beyond that, zeroes are appended.
我有以下 JSON 日志(换行分隔)
{
"logName": "projects/gg-sanbox/logs/appengine.googleapis.com%2Fnginx.request",
"timestamp": "2018-04-02 22:26:02.869 UTC",
"receiveTimestamp":"2018-04-02 22:28:06.742394 UTC",
}
和 logstash 配置
input
{
file {
type => "json"
path => "/logs/mylogs.log"
codec => json
start_position => "beginning"
sincedb_path => "/dev/null"
}
}
filter{
json{
source => "message"
}
date {
match => [ "timestamp", "yyyy-MM-dd HH:mm:ss.SSS Z"]
}
}
output
{
stdout
{
#codec => rubydebug
}
elasticsearch
{
codec => "json_lines"
hosts => ["127.0.0.1:9200"]
# document_id => "%{logstash_checksum}"
index => "appengine_nginx-requests"
}
}
我在 logstash 输出中得到以下内容
"@timestamp"=>2018-04-07T15:26:31.857Z, "tags"=>["_dateparsefailure"],
请注意,它回退到当前数据和时间,而不是日志行中提到的时间,这实际上是事件已经发生,我想在 Kibana 时间线中看到。
不确定这里有什么问题。
查看date filter plugin documentation,格式选项Z
不匹配UTC
;因为单独它不是时区(要使它有效,它需要 +0000
)。您需要像这样添加它:yyyy-MM-dd HH:mm:ss.SSS 'UTC'
回答你关于秒精度的另一个问题; 不支持 精度低于毫秒。如果您查看上面的 link,您会发现:
Maximum precision is milliseconds (SSS). Beyond that, zeroes are appended.