Metricbeat 參考指南(步驟3:在Elasticsearch中加載索引模板)

步驟3:在Elasticsearch中加載索引模板

在Elasticsearch中,索引模板用於定義設置和映射,以肯定如何分析字段。html

Metricbeat推薦的索引模板文件是由Metricbeat包安裝的,若是你接受metricbeat.yml配置文件中的默認配置,那麼Metricbeat在成功鏈接到Elasticsearch以後會自動加載模板。若是模板已經存在,則不會覆蓋它,除非你配置Metricbeat這樣作。docker

經過在Metricbeat配置文件中配置模板加載選項,你能夠禁用自動模板加載,或者加載你本身的模板。json

你還能夠設置選項來更改索引和索引模板的名稱。segmentfault

加載索引模板須要鏈接到Elasticsearch,若是輸出不是Elasticsearch,則必須手動加載模板。

配置模板加載

若是激活了Elasticsearch輸出,默認狀況下,Metricbeat會自動加載推薦的模板文件fields.yml,你能夠將metricbeat.yml配置文件中的默認值更改成:安全

  • 加載不一樣的模板
setup.template.name: "your_template_name"
setup.template.fields: "path/to/fields.yml"

若是模板已經存在,則不會覆蓋它,除非你配置Metricbeat這樣作。app

  • 覆蓋現有模板
setup.template.overwrite: true
  • 禁用自動模板加載
setup.template.enabled: false

若是禁用自動模板加載,則須要手動加載模板。curl

  • 更改索引名稱

默認狀況下,Metricbeat將事件寫入名爲metricbeat-6.4.2-yyyy.MM.dd的索引,yyyy.MM.dd是事件被索引的日期,要使用不一樣的名稱,能夠在Elasticsearch輸出中設置index選項。你指定的值應該包括索引的根名稱加上版本和日期信息,你還須要配置setup.template.namesetup.template.pattern選項以匹配新名稱,例如:elasticsearch

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

setup.dashboards.index => 若是你計劃設置Kibana儀表盤,還能夠設置此選項以覆蓋儀表盤和索引模式中定義的索引名稱。ide

有關配置選項的完整列表,請參閱加載Elasticsearch索引模板。ui

手動加載模板

要手動加載模板,運行setup命令,須要鏈接到Elasticsearch,若是啓用了另外一個輸出,你須要使用-E選項暫時禁用該輸出並啓用Elasticsearch。這裏的示例假設啓用了Logstash輸出,若是已經啓用了Elasticsearch輸出,能夠省略-E標誌。

若是你鏈接到一個安全的Elasticsearch集羣,請確保你已經按照步驟2:配置Metricbeat所述配置了憑證。

若是運行Metricbeat的主機沒有直接鏈接到Elasticsearch,請參見手動加載模板(備用方法)。

要加載模板,請爲系統使用適當的命令。

deb和rpm:

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

mac:

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

docker:

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

win:

做爲管理員打開PowerShell提示符(右鍵單擊PowerShell圖標並選擇Run as Administrator)。

從PowerShell提示符,切換到你安裝Metricbeat的目錄,而後運行:

PS > .\metricbeat.exe setup --template -E output.logstash.enabled=false -E 'output.elasticsearch.hosts=["localhost:9200"]'

強迫Kibana查看最新的文檔

若是你已經使用Metricbeat將數據索引到Elasticsearch,那麼索引可能包含舊文檔,加載索引模板後,能夠從metricbeat-*刪除舊文檔,以強制Kibana查看最新的文檔,使用此命令:

deb、rpm和mac:

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

win:

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

這個命令刪除全部匹配metricbeat-*模式的索引,在運行此命令以前,請確保要刪除與模式匹配的全部索引。

手動加載模板(備用方法)

若是運行Metricbeat的主機沒有直接鏈接到Elasticsearch,你能夠將索引模板導出到文件,將其移動到有鏈接的機器上,而後手動安裝模板。

  1. 導出索引模板:
    deb和rpm:

    metricbeat export template > metricbeat.template.json

    mac:

    ./metricbeat export template > metricbeat.template.json

    win:

    PS > .\metricbeat.exe export template --es.version 6.4.2 | Out-File -Encoding UTF8 metricbeat.template.json
  2. 安裝模版:
    deb、rpm和mac:

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

    win:

    PS > Invoke-RestMethod -Method Put -ContentType "application/json" -InFile metricbeat.template.json -Uri http://localhost:9200/_template/metricbeat-6.4.2
相關文章
相關標籤/搜索