在上一章節我們已經可以抓取log資料到Elasticsearch內,今天我們將在進一步的設定filebeat.yml,來讓我們可以更進一步了解elk功能。
前往kibana網頁查詢資料,確認資料是否能正常抓取,查詢時用索引為filebeat-*
,從這裡我們可以看出當設定檔沒特別指定索引時,就會自動使用filebeat-*
來當索引,接下來我們將進一步去設定各自資料的索引來區別資料。
修改filebeat.yml
filebeat.inputs:
# 設定要抓取log的路徑
- type: filestream
enabled: true
paths:
- /usr/local/var/log/nginx/*.log
# 設定kibana
setup.kibana:
host: "localhost:5601"
# 設定elasticsearch
output.elasticsearch:
hosts: ["localhost:9200"]
#設定索引名稱
index: "mytest-nginx-%{+yyyy.MM.dd}"
# 設定索引樣板資訊
setup.template.name: "mytest-nginx"
setup.template.pattern: "mytest-nginx-*"
setup.ilm.enabled: false
查看kibana介面,可以發現系統有自動產生對應名稱的樣板和索引
樣板名稱mytest-nginx
索引mytest-nginx-2021.09.08
filebeat.yml增加下列資料
processors:
- add_host_metadata:
when.not.contains.tags: forwarded
- add_cloud_metadata: ~
- add_docker_metadata: ~
- add_kubernetes_metadata: ~
- add_fields:
target: content
fields:
myfields: "mynginx"
接下來我們就可以在kibana介面上發現多出一個content.myfields
的欄位
今日了解filebeat如何定義不同的索引,這對我們在查詢資料提升了大大的便利性。