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。
我有一个 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。