Logstash将日志文件解析为错误的索引

时间:2018-03-27 13:13:27

标签: elasticsearch logstash filebeat

我有一个elasticsearch实例,它根据我的正则表达式模式解析我的日志文件,该模式从日志文件中获取日期。然后,日期应该用作弹性搜索目的的索引模式。这是它出错的地方。我的logstash-pipeline-config-file看起来如下:

input {

beats {
        port => "5044"
    }

}

filter {
    grok {
        match => { "message" => "%{LOGGERLEVEL:log}%{PIPE:k}%{TIMESTAMP_ISO8601:datetime}%{GREEDYDATA:data}"}
    }
    date {
        match => ["datetime", "ISO8601"]
        timezone => "Europe/Helsinki"


    }

}
output {

    elasticsearch {
        hosts => ["localhost:9200"]
    }


}

LOGGERLEVEL和PIPE是用户定义的正则表达式。此版本按原样解析日志,但它将当天的前两个小时编入索引。如果我按如下方式更改配置文件,elasticsearch将完全忽略前两个小时:

input {

beats {
        port => "5044"
    }

}

filter {
    grok {
        match => { "message" => "%{LOGGERLEVEL:log}%{PIPE:k}%{TIMESTAMP_ISO8601:datetime}%{GREEDYDATA:data}"}
    }
    date {
        match => ["datetime", "ISO8601"]
        timezone => "Europe/London"


    }

}
output {

    elasticsearch {
        hosts => ["localhost:9200"]
    }


}

我应该如何配置我的管道,哪一天将作为一个整体索引,并在与日志文件中找到的日期相同的索引下?

1 个答案:

答案 0 :(得分:0)

解决了这个问题。使用kibana,转到管理层 - >高级设置并将dateFormat:tz更改为所需的格式。在我的情况下,我必须使用第二种配置,并从kibana-settings中选择Europe / London。