gpt4 book ai didi

elasticsearch - Logstash/Elasticsearch 保持自动映射 geoip 到对象而不是 geo_point

转载 作者:行者123 更新时间:2023-12-03 02:35:38 26 4
gpt4 key购买 nike

我有一些具有以下格式的日志(我将 IP 从公共(public)更改为私有(private),但你明白了):

192.168.0.1 [20/Nov/2019:16:09:28 +0000] GET /some_path HTTP/1.1 200 2 2
192.168.0.2 [20/Nov/2019:16:09:28 +0000] GET /some_path HTTP/1.1 200 2 2

然后我使用以下模式探索这些日志:
grok { match => { "message" => "%{IPORHOST:clientip} \[%{HTTPDATE:timestamp}\] %{WORD:method} %{URIPATHPARAM:request} %{DATA:httpversion} %{NUMBER:response} %{NUMBER:duration}" } }
geoip { source => "clientip" }

在我的输出部分,我有以下代码:
else  if "host.name" in [host][name]{ #if statement with the hostname
elasticsearch {
hosts => "localhost:9200"
manage_template => false
index => "mms18-%{+YYYY.MM.dd}"
user => "admin-user"
password => "admin-password"
}

}

问题是当我去 Kibana 时 geoip.location 被映射为一个对象,我不能在 map 仪表板上使用它。
由于索引的名称每天都在更改,因此我无法手动放置正确的 geoip 映射,因为我必须每天都这样做。

我认为可以部分解决问题的一种解决方案是从 Logstash 输出中的索引中删除日期,因此它有一个恒定索引“mms18”,然后在 Kibana 管理控制台上使用它:
PUT mms18
{
"mappings": {
"properties": {
"geoip": {
"properties": {
"location": { "type": "geo_point" }
}
}
}
}
}

但是,这并不理想,因为我希望可以选择显示所有索引及其相应的日期,然后选择要删除的内容和不删除的内容。
有什么方法可以实现正确的映射,同时还保留索引及其日期?

任何帮助,将不胜感激。

最佳答案

使用 index template (使用 index_patterns 的值,例如“mms-*”)将 geoip 映射为 geo_point。

关于elasticsearch - Logstash/Elasticsearch 保持自动映射 geoip 到对象而不是 geo_point,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58959043/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com