【问题标题】:ELK Stack - Customize autogenerated field mappingsELK Stack - 自定义自动生成的字段映射
【发布时间】:2016-01-29 03:52:46
【问题描述】:

我有一个非常基本的 ELK 堆栈设置,并通过 syslog 将日志传递给它。我使用内置的 grok 模式将日志拆分为字段。但是字段映射是由 logstash elasticsearch 插件自动生成的,我无法自定义它们。

例如,我使用 logstash 配置文件(见下文)创建了一个名为“dst-geoip”的新字段:

geoip {
  database => "/usr/local/share/GeoIP/GeoLiteCity.dat" ### Change me to location of GeoLiteCity.dat file
    source => "dst_ip"
    target => "dst_geoip"
    fields => [ "ip", "country_code2", "country_name", "latitude", "longitude","location" ]
    add_field => [ "coordinates", "%{[dst_geoip][latitude]},%{[geoip][longitude]}" ]
    add_field => [ "dst_country", "%{[dst_geoip][country_code2]}"]
    add_field => [ "flow_dir", "outbound" ]
}

我想将它分配给我无法从 Kibana 编辑的类型“geo_point”。在线文档提到使用 ElasticSearch API 手动更新各个索引上的映射。但是 Logstash 会生成许多索引(每天一个)。如果我更新一个索引,映射在以后的索引中会保持不变吗?

【问题讨论】:

    标签: elasticsearch logstash kibana geoip


    【解决方案1】:

    您要查找的是“template”。

    【讨论】:

    • 就是这样!你的回答让我陷入了探索 ES 模板的困境。最后我找到了这个article,它符合我想要做的。但与 logstash conf 文件不同,似乎没有简单的方法来测试模板 json 文件。我能够强制映射一种字段类型,但是当我添加另一种时,它没有按预期工作。关于如何开发模式文件的任何建议或最佳实践?
    • 为了测试,将模板应用于非生产索引。请记住,在创建索引后无法更改字段映射,因此请继续删除测试索引,直到一切正常。
    猜你喜欢
    • 2017-11-09
    • 2016-08-06
    • 2018-12-28
    • 1970-01-01
    • 1970-01-01
    • 2016-07-29
    • 2013-07-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多