Kibana:使用日志文件中的时间戳而不是@timestamp

时间:2014-12-02 15:21:00

标签: timestamp histogram kibana

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

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

尝试使用与日志文件中的时间戳相关的字段时,不会显示直方图。我已经改变了"时间字段"在" Timepicker"相应地,我的仪表板设置的选项卡以及直方图的设置。

任何建议都将不胜感激。

修改

以下是我目前在过滤器中的内容:

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})

使用此配置,我收到以下错误:"无法解析字段中的日期"

有什么想法吗?

4 个答案:

答案 0 :(得分: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采用任何其他格式。

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

我花了一些时间来弄明白,但以下格式适合我在特定时间之间搜索条目(2015年5月27日上午11点到11点30分确切) -

@timestamp:[1432704600000 TO 1432706400000]

Kibana需要从纪元格式开始的毫秒级时间戳。

答案 3 :(得分: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"]
}