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

Logstash parses logfiles to wrong index

我有一个 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"]
    }


}

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

问题解决了。使用 kibana,转到管理 -> 高级设置并将 dateFormat:tz 更改为所需的格式。在我的例子中,我必须使用第二个配置和来自 kibana-settings 的 select Europe/London。