2014-12-02 478 views
2

我正在尝试使用我日志文件中的时间戳。但是,这些时间戳具有以下格式,这与logstash的@timestamp字段不同。Kibana:使用日志文件中的时间戳而不是@timestamp

2014-10-31 02:45:09,355 

当尝试使用我的领域涉及到在我的日志文件中的时间戳,不显示直方图。我相应地更改了仪表板设置的“Timepicker”选项卡中的“Time field”,以及直方图的设置。

任何建议将不胜感激。

编辑:

下面是我目前在我的过滤器:

filter { 
    grok { 
     patterns_dir => ".\patterns" 
     match => [ "message", "%{LOGTIMESTAMP:tstamp}" ] 
    } 
    date { 
     locale => "en" 
     timezone => "Europe/Paris" 
     match => [ "tstamp", "yyyy-MM-dd HH:mm:ss,SSS" ] 
     target => "tstamp" 
    } 
} 

至于我的正则表达式:

LOGTIMESTAMP (\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2},\d{3}) 

有了这个配置,我得到以下错误:“字段解析日期失败”

任何想法?

回答

0

我还想添加这是评论,但我没有信誉......反正,我猜Kibana认为你的日期时间是一个字符串,而不是一个类型的日期(检查映射,
http://localhost:9200/_mapping?pretty或其他)。

我也有类似的问题,但随之而来的:http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/mapping-timestamp-field.html

然而,任何映射我也没有工作,直到我将它输出在此确切格式2014-12-03T09:04:02。 (如果我放弃T它不会工作)

我的建议是尝试转换该日志文件的时间匹配,因为我不能让Kibana采取任何其他格式。

+0

我更新了我原来的帖子。通过我目前的配置,我甚至无法保存数据。不幸的是,添加“T”没有帮助。 – halpsb 2014-12-04 13:31:45

0

您必须使用“日期”过滤器来告诉Logstash日期格式 - 它会将您的时间戳从文件转换为@timestamp字段。

到这里看看:http://logstash.net/docs/1.4.2/filters/date

+0

谢谢,我已经更新了我原来的帖子。 – halpsb 2014-12-04 13:29:49

+0

你为什么要做“target =>”tstamp“”?我的理解是@timestamp是elasticsearch使用的神奇领域,你应该坚持下去。 至少,它适用于我:) – rabbbit 2014-12-05 15:02:38

0

我花了一些时间才能体现出来,但下面的格式对我的作品的具体时间之间的搜索项(2015年5月27日上午11时至1130AM是精确的) -

@timestamp:[1432704600000至1432706400000]

Kibana需要时间戳,以时间戳记格式为单位,以毫秒为单位。

0

我对于相同的日志模式“2014-10-31 02:45:09,355”有类似的问题。这个配置对我有用。

grok { 
    match => [ "message", "%{DATESTAMP:timestamp}" ] 
} 
date { 
    locale => "en" 
    timezone => "Europe/Paris" 
    match => [ "timestamp", "yyyy-MM-dd HH:mm:ss,SSS" ] 
    target => ["tstamp"] 
    remove_field => ["timestamp"] 
} 
相关问题