加載索引模板須要鏈接到Elasticsearch,若是輸出不是Elasticsearch,則必須手動加載模板。
在Elasticsearch中,索引模板用於定義肯定如何分析字段的設置和映射。linux
Filebeat的推薦索引模板文件由Filebeat包安裝,若是你接受filebeat.yml
配置文件中的默認配置,Filebeat會在成功鏈接到Elasticsearch後自動加載模板,若是模板已存在,則除非你配置Filebeat,不然不會覆蓋該模板。docker
默認狀況下,若是啓用了Elasticsearch輸出,Filebeat會自動加載推薦的模板文件fields.yml
,若是要使用默認索引模板,則不須要其餘配置,不然,你能夠將filebeat.yml
配置文件中的默認值更改成:json
加載不一樣的模板segmentfault
setup.template.name: "your_template_name" setup.template.fields: "path/to/fields.yml"
若是模板已存在,則除非你配置Filebeat,不然不會覆蓋該模板。安全
覆蓋現有模板app
setup.template.overwrite: true
禁用自動模板加載curl
setup.template.enabled: false
若是禁用自動模板加載,則須要手動加載模板。elasticsearch
更改索引名稱
url
若是要將事件發送到支持索引生命週期管理的集羣,請參閱配置索引生命週期管理以瞭解如何更改索引名稱。
code
默認狀況下,當禁用或不支持索引生命週期管理時,Filebeat使用時間系列索引,索引名爲filebeat-7.3.0-yyyy.MM.dd
,其中yyyy.MM.dd
是事件索引的日期,要使用其餘名稱,請在Elasticsearch輸出中設置index
選項。你指定的值應包括索引的根名稱以及版本和日期信息,你還須要配置setup.template.name
和setup.template.pattern
選項以匹配新名稱,例如:
output.elasticsearch.index: "customname-%{[agent.version]}-%{+yyyy.MM.dd}" setup.template.name: "customname" setup.template.pattern: "customname-*"
若是你使用的是預先構建的Kibana儀表板,請同時設置setup.dashboards.index
選項,例如:
setup.dashboards.index: "customname-*"
要手動加載模板,請運行setup
命令,須要鏈接到Elasticsearch,若是啓用了另外一個輸出,則須要臨時禁用該輸出並使用-E
選項啓用Elasticsearch,此處的示例假定已啓用Logstash輸出,若是已啓用Elasticsearch輸出,則能夠省略-E
標誌。
若是要鏈接到安全的Elasticsearch集羣,請確保已按第2步:配置Filebeat中所述配置憑據。
若是運行Filebeat的主機沒有與Elasticsearch的直接鏈接,請參閱手動加載模板(備用方法)。
要加載模板,請使用適用於你係統的命令。
deb和rpm:
filebeat setup --index-management -E output.logstash.enabled=false -E 'output.elasticsearch.hosts=["localhost:9200"]'
mac:
./filebeat setup --index-management -E output.logstash.enabled=false -E 'output.elasticsearch.hosts=["localhost:9200"]'
brew:
filebeat setup --index-management -E output.logstash.enabled=false -E 'output.elasticsearch.hosts=["localhost:9200"]'
linux:
./filebeat setup --index-management -E output.logstash.enabled=false -E 'output.elasticsearch.hosts=["localhost:9200"]'
docker:
docker run docker.elastic.co/beats/filebeat:7.3.0 setup --index-management -E output.logstash.enabled=false -E 'output.elasticsearch.hosts=["localhost:9200"]'
win:
以管理員身份打開PowerShell提示符(右鍵單擊PowerShell圖標,而後選擇「以管理員身份運行」)。
在PowerShell提示符下,切換到Filebeat的安裝目錄,而後運行:
PS > .\filebeat.exe setup --index-management -E output.logstash.enabled=false -E 'output.elasticsearch.hosts=["localhost:9200"]'
若是你已經使用Filebeat將數據索引到Elasticsearch中,則索引可能包含舊文檔,加載索引模板後,能夠從filebeat-*
中刪除舊文檔,以強制Kibana查看最新文檔。
使用此命令:
deb和rpm:
curl -XDELETE 'http://localhost:9200/filebeat-*'
mac:
curl -XDELETE 'http://localhost:9200/filebeat-*'
linux:
curl -XDELETE 'http://localhost:9200/filebeat-*'
win:
PS > Invoke-RestMethod -Method Delete "http://localhost:9200/filebeat-*"
此命令刪除與模式filebeat-*
匹配的全部索引,在運行此命令以前,請確保要刪除與該模式匹配的全部索引。
若是運行Filebeat的主機沒有與Elasticsearch的直接鏈接,則能夠將索引模板導出到文件,將其移動到具備鏈接的計算機,而後手動安裝模板。
要導出索引模板,請運行:
deb和rpm:
filebeat export template > filebeat.template.json
mac:
./filebeat export template > filebeat.template.json
linux:
./filebeat export template > filebeat.template.json
win:
PS > .\filebeat.exe export template --es.version 7.3.0 | Out-File -Encoding UTF8 filebeat.template.json
要安裝模板,請運行:
deb和rpm:
curl -XPUT -H 'Content-Type: application/json' http://localhost:9200/_template/filebeat-7.3.0 -d@filebeat.template.json
mac:
curl -XPUT -H 'Content-Type: application/json' http://localhost:9200/_template/filebeat-7.3.0 -d@filebeat.template.json
linux:
curl -XPUT -H 'Content-Type: application/json' http://localhost:9200/_template/filebeat-7.3.0 -d@filebeat.template.json
win:
PS > Invoke-RestMethod -Method Put -ContentType "application/json" -InFile filebeat.template.json -Uri http://localhost:9200/_template/filebeat-7.3.0