elasticsearch - Fluentd Elasticsearch Kibana 记录动态索引 GEOPOINT 映射
问题描述
我正在使用 EFK 日志堆栈,并设法设置了 fluentd 过滤器和匹配配置,以便在 Kibana 中收集的 tomcat 访问日志所有需要的字段都在那里:IP、纬度、经度、城市、国家代码等。
我有curl -XPUT -H "Content-Type: application/json" --data @fluentd_mapping.json http://$host/fluentd/fluentd/_mapping
,但它只影响流利的索引。不是动态创建的每日日志索引<foo>.access.logs.*
所以我的问题是如何应用映射,以便 geo_point 类型对每日日志索引有效?谢谢。
我重新启动了 ES 容器,curl -XPUT
以下 mapping.json 由 fluentd 索引而不是日常日志索引拾取:
{
"fluentd": {
"location_array": {
"type": "geo_point"
},
"location_properties": {
"type": "geo_point"
},
"location_string": {
"type": "geo_point"
},
}
}
现有模板:
"dynamic_templates": [{
"kibana_index_template:.kibana": {
"dynamic_templates": [{
"security-index-template": {
"dynamic_templates": [{
"path_match": "result\\.(input(\\..+)*|(transform(\\..+)*)|(actions\\.transform(\\..+)*))\\.search\\.request\\.(body|template)",
"logstash-index-template": {
现有的索引模式:
"index_patterns": [".monitoring-logstash-6-*"],
"index_patterns": [".monitoring-kibana-6-*"],
"index_patterns": [".ml-anomalies-*"],
"index_patterns": [".kibana"],
"index_patterns": [".ml-state"],
"index_patterns": [".watches*"],
"index_patterns": [".monitoring-beats-6-*"],
"index_patterns": [".monitoring-es-6-*"],
"index_patterns": [".security_audit_log*"],
"index_patterns": [".ml-meta"],
"index_patterns": [".security-*"],
"index_patterns": [".triggered_watches*"],
"index_patterns": [".watcher-history-9*"],
"index_patterns": [".monitoring-alerts-6"],
"index_patterns": [".ml-notifications"],
"index_patterns": [".logstash"],
我添加了以下模板,但无济于事:
"fluentd": {
"order": 0,
"index_patterns": ["myapp.access.logs*"],
"settings": {},
"mappings": {
"fluentd": {
"properties": {
"location_array": {
"type": "geo_point"
},
"location_properties": {
"type": "geo_point"
},
"location_string": {
"type": "geo_point"
}
}
}
},
"aliases": {}
},
它没有被 myapp.access.logs 拾取-
解决方案
为清楚起见,请指定 fluentd_mapping.json 的内容,但看起来索引具有不同的名称模式,这就是映射不适用于所有索引的原因。
您应该使用 elasticsearch 模板来配置 geoip 映射。在模板中查看描述索引匹配条件的“index_patterns”。https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-templates.html
一旦 index_patterns 正则表达式将匹配您需要的所有索引(包括访问日志索引),那么 GEOIP 映射和所有其余的都将按预期应用。
推荐阅读
- python - 如何在响应鼠标指针悬停在python中的绘图上显示注释?
- sql - 更新表的列时代码进入无限循环
- php - 用多级数组重构 foreach
- python - 如何从直方图中重建原始数据?
- c# - 如何使用 IText7 和 C# 为现有 PDF 中的内部链接添加下划线?
- reactjs - 你如何使用 jest 来测试 React 组件中的函数?
- javascript - 如何使用javascript将(非重复)数据附加到firebase db?
- mysql - mysql 连接器/j 复制选项 - SQLException:未选择数据库
- c# - 使用 Moq 和 Mock 设置的 IConfiguration 单元测试控制器返回 null
- c# - 使用 JavaScriptSerializer 反序列化 JSON C# - 数组的反序列化不支持类型