【问题标题】:How to map new index from templates in elasticsearch如何从弹性搜索中的模板映射新索引
【发布时间】:2021-05-20 09:54:07
【问题描述】:

让我们从我的设置开始。 应用程序服务器将日志文件发送到 kinesis 数据流,然后将它们发送到 kinesis firehose,最终将它们发送到弹性搜索。 所有 kinesis 组件都是 AWS 特定的工具。 总而言之,这意味着我几乎无法控制弹性搜索之前的设置。 也就是说,日志正在正确流动并到达弹性搜索。到目前为止,一切都很好。 问题是映射完全错误。所有字段都标记为文本,并且无法识别时间戳。 我已经为具有正确映射的新索引准备了一个模板:

{
    "cms_access-template": {
        "order": 0,
        "index_patterns": [
            "cms_access-*"
        ],
        "settings": {},
        "mappings": {
            "properties": {
                "request": {
                    "type": "text"
                },
                "referrer": {
                    "type": "text"
                },
                "agent": {
                    "type": "text",
                    "fields": {
                        "keyword": {
                            "ignore_above": 256,
                            "type": "keyword"
                        }
                    }
                },
                "size": {
                    "type": "integer"
                },
                "ident": {
                    "type": "text"
                },
                "host": {
                    "type": "text",
                    "fields": {
                        "keyword": {
                            "ignore_above": 256,
                            "type": "keyword"
                        }
                    }
                },
                "client": {
                    "type": "ip"
                },
                "time": {
                    "type": "integer"
                },
                "user": {
                    "type": "text"
                },
                "X-Forwarder-For": {
                    "type": "text"
                },
                "status": {
                    "type": "text",
                    "fields": {
                        "keyword": {
                            "ignore_above": 256,
                            "type": "keyword"
                        }
                    }
                },
                "timestamp": {
                    "format": "dd/MMM/yyyy:HH:mm:ss +SSSS",
                    "type": "date"
                }
            }
        },
        "aliases": {}
    }
}

如您所见,这是一个简单的 apache 访问日志。 当我尝试基于这些索引创建索引模式时,无法识别时间戳,并且所有字段都设置为文本。

我是弹性搜索的新手,也许我遗漏了一些东西。 模板是否用于为新索引准备映射?如果是这样,如何链接它们? 我四处搜索,发送带有索引的映射似乎很常见。但我不能这样做,因为 AWS 中使用的 kinesis 工具没有办法。 您能帮我创建将从模板中获取映射的新索引吗?

【问题讨论】:

  • 您能发送一份数据样本吗? json格式(来自elastic),如果可能的话,来源(集成到elastic之前)?

标签: elasticsearch amazon-kinesis elk amazon-kinesis-firehose


【解决方案1】:

如前所述,我是弹性搜索的新手 :-) 经过大量的头撞后,我在某个论坛上看到了一条评论,指出我的方向是正确的。 当您发送数据时,模板已经存在是必不可少的。 因此,我删除了所有已发送的数据,创建了模板,然后才发送了新数据。之后,映射按照模板中的说明工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多