美文网首页Elastic Search
在Elasticsearch中加载索引模版

在Elasticsearch中加载索引模版

作者: Vekaco | 来源:发表于2020-04-17 15:33 被阅读0次

    🏳️‍🌈连接Elasticsearch是要求加载索引模版的。如果你的输出目标不是Elasticsearch,那么你就必须手动加载模版

    在Elasticsearch中,索引模版通常用来定义设置和映射关系,确定域需要如何被数据分析。

    Metricbeat建议的索引模版在已经在安装Metricbeat的时候配置好了。如果你使用默认的metricbeat.yml配置文件,那么Metricbeat会自动在成功连接到Elasticsearch之后加载模版。如果模版已经存在,那就不会被覆盖除非你配置了Metricbeat强制覆盖。

    配置模版加载

    默认情况,如果Metricbeat激活了Elasticsearch作为输出,那么Metricbeat会自动加载推荐的模版文件fields.yml。如果你向使用默认的索引模版,不需要其他额外的配置。否则,你可以修改在metricbeat.yml配置文件的默认配置:

    • 加载不同的模版
    setup.template.name: "your_template_name"
    setup.template.fields: "path/to/fields.yml"
    

    如果模版已存在,除非你配置Metricbeat强制覆盖,否则文件不会做改动。

    • 覆盖已存在的模版
    setup.template.overwrite: true
    
    • 禁用模版加载
    setup.template.enabled: false
    

    如果你禁用自动模版加载,那么你就需要自己手动加载模版

    • 重命名索引

    ℹ️如果你正在发送事件到一个支持索引生命周期管理的集群,那么请参考 Index lifecycle management (ILM)重命名索引。

    默认情况下,当禁用或者不支持索引生命周期管理时,Metricbeat使用时间序列索引。这个索引叫metricbeat-7.x.x-yyyy.MM.dd,这里的yyyy.MM.dd是这个触发索引的事件发生的时间。要用其他命名的话,参考Elasticsearch输出的索引配置选项。你所指定的名字应该包含这个索引的根名称+版本号+日期信息。同时你还需要配置setup.template.namesetup.template.pattern来匹配这个新名字。如下:

    output.elasticsearch.index: "customname-%{[agent.version]}-%{+yyyy.MM.dd}"
    setup.template.name: "customname"
    setup.template.pattern: "customname-*"
    

    ⚠️如果索引生命周期管理被启用(通常是默认的),那么setup.template.namesetup.template.pattern会被忽略。

    如果你使用预构建Kibana仪表盘,同时设置了setup.dashboards.index选项,如下:

    setup.dashboards.index: "customname-*"
    

    参考Elasticsearch index template获取所有配置列表。

    手动加载模版

    要手动加载模版,运行setup命令。要求已有Elasticsearch
    的连接。如果还启用了另一个输出,你需要临时将其禁用,并使用-E参数吧Elasticsearch启用。下面的例子假设Logstash输出已经启用。你可以省略-E参数,如果Elasticsearch输出已经启用。

    如果你连接到启用安全性的Elasticsearch集群,确保你已经按照第二步配置Metricbeat所表述的方式配置了credentials。

    如果你所运行的Metricbeat没有直连Elasticsearch,参考 Load the template manually (alternate method).

    加载模版,使用对应系统的命令:
    deb and rpm:

    metricbeat setup --index-management -E output.logstash.enabled=false -E 'output.elasticsearch.hosts=["localhost:9200"]'
    

    mac:

    ./metricbeat setup --index-management -E output.logstash.enabled=false -E 'output.elasticsearch.hosts=["localhost:9200"]'
    

    brew:

    metricbeat setup --index-management -E output.logstash.enabled=false -E 'output.elasticsearch.hosts=["localhost:9200"]'
    

    linux:

    ./metricbeat setup --index-management -E output.logstash.enabled=false -E 'output.elasticsearch.hosts=["localhost:9200"]'
    

    docker:

    docker run docker.elastic.co/beats/metricbeat:7.8.0 setup --index-management -E output.logstash.enabled=false -E 'output.elasticsearch.hosts=["localhost:9200"]'
    

    win:
    用管理员打开 一个PowerShell prompt (右键单击PowerShell 选择以管理员运行).
    在PowerShell prompt中, 重定向到你安装Metricbeat的目录, 然后运行:

    PS > .\metricbeat.exe setup --index-management -E output.logstash.enabled=false -E 'output.elasticsearch.hosts=["localhost:9200"]'
    
    强制让Kibana查看新文档

    如果你已经用Metricbeat索引数据到Elasticsearch,这些索引可能包含旧文档。当你加载了索引模版之后,你可以在metricbeat-*删除旧文档,一强制Kibana查看新文档。
    使用如下命令:
    deb and rpm:

    curl -XDELETE 'http://localhost:9200/metricbeat-*'
    

    mac:

    curl -XDELETE 'http://localhost:9200/metricbeat-*'
    

    linux:

    curl -XDELETE 'http://localhost:9200/metricbeat-*'
    

    win:

    PS > Invoke-RestMethod -Method Delete "http://localhost:9200/metricbeat-*"
    

    这个命令会删除所有符合模式匹配metricbeat-*的索引。在运行此命令之前,请确认你确实想要删除这些符合模式匹配的索引。

    手动加载模版(替代方法)

    如果你运行的Metricbeat没有直接连接Elasticsearch,你可以将索引模版到导出到一个文件中,然后将文件移动到具有连接的机器上,然后手动安装模版。

    导出索引模版的命令如下:
    deb and rpm:

    metricbeat export template > metricbeat.template.json
    

    mac:

    ./metricbeat export template > metricbeat.template.json
    

    brew:

    metricbeat export template > metricbeat.template.json
    

    linux:

    ./metricbeat export template > metricbeat.template.json
    

    win:

    PS > .\metricbeat.exe export template --es.version 7.8.0 | Out-File -Encoding UTF8 metricbeat.template.json
    

    加载模版,运行下面这个命令:
    deb and rpm:

    curl -XPUT -H 'Content-Type: application/json' http://localhost:9200/_template/metricbeat-7.8.0 -d@metricbeat.template.json
    

    mac:

    curl -XPUT -H 'Content-Type: application/json' http://localhost:9200/_template/metricbeat-7.8.0 -d@metricbeat.template.json
    

    linux:

    curl -XPUT -H 'Content-Type: application/json' http://localhost:9200/_template/metricbeat-7.8.0 -d@metricbeat.template.json
    

    win:

    PS > Invoke-RestMethod -Method Put -ContentType "application/json" -InFile metricbeat.template.json -Uri http://localhost:9200/_template/metricbeat-7.8.0
    

    相关文章

      网友评论

        本文标题:在Elasticsearch中加载索引模版

        本文链接:https://www.haomeiwen.com/subject/gzzsvhtx.html