今天將學到透過 Filebeat 傳送 Log 的資料到 Elastic cloud,並且深入了解各個細節部分。
本篇的主題包含有:
那我們就開始吧!
這一部分的實作,我們將可以學到:
filebeat.yml
檔案來設置 Filebeat 啟動 log
輸入,位置則是先準備好的 /home/elastic/datasets/nginx.log
:filebeat.inputs:
- type: log
enabled: true
paths:
- /home/elastic/datasets/nginx.log
OK
的訊息:./filebeat test config
./filebeat test output
modules enable
呢?別著急,下一階段就知道為什麼了!):./filebeat -e
Discover
下,過濾只有 filebeat-*
的部分,可以看到如下面的日誌紀錄:如果你去看左邊 message
欄位的部分,會發現內容並沒有解析出來,這是因為 Filebeat 並不知道哪一部分是屬於 NGINX 的日誌事件,原因很簡單,就是我們沒有啟用 NGINX 的 module 呀~
這一部分的實作,我們將可以學到:
Ctrl+C
關掉上一部分開啟的 Filebeat,然後來看看 modules.d
資料夾下面都有些什麼東西吧,可以看到 modules 有支援許多常見的應用程式如 nginx、redis、mongodb...等等。ls -l modules.d
access
和 error
。cat modules.d/nginx.yml.disabled
nginx.yml.disabled
檔案,這次實作要使用的日誌位置是在 /var/log/nginx/
下面:- module: nginx
access:
enabled: true
var.paths: ["/var/log/nginx/access.log*"]
error:
enabled: true
var.paths: ["/var/log/nginx/error.log*"]
# 啟動 nginx module
./filebeat modules enable nginx
# 列出目前所有 modules
./filebeat modules list
ls
比較一下,可以看到啟用後,檔名也改變了!ls -l modules.d
module/nginx
下面有什麼東西,可以看到有兩個種類日誌的資料夾以及 module.yml
的檔案:module.yml
檔案內容,描述 Filebeat 讀取的 Kibana 儀表板(dashboard)是使用什麼樣的。# 啟動 Filebeat
./filebeat -e
這一部分的實作,我們將可以學到:
Ctrl+C
關掉上一部分開啟的 Filebeat,然後到 Kibana Dev Tools 刪掉 Filebeat 的索引:DELETE filebeat-7.6.2-*
/home/elastic/datasets/nginx.log
記錄在此註冊檔案中,因此即使您刪除了索引資料,也不會再次將其重新讀取。GET filebeat-7.6.2/_search
{
"query": {
"match": {
"log.file.path": "/home/elastic/datasets/nginx.log"
}
}
}
rm data/registry/filebeat/data.json
filebeat.yml
的檔案中, logging
的那一部分,做對應的修改,例如說可以加入下面的描述:logging.level: debug
logging.to_files: true
logging.selectors: ["*"]
呼~結束 深入 Logs 的篇章了,其實裡面還有更多細節,但是覺得過於細節跟進階,相信目前的這些內容,要破門而入的話,應該是很夠了!(再破下去我怕連牆都要穿了ㄎㄎ)
今天我們更深入操作了 Filebeat,了解了其架構、Module 和 Resilience,明天我們要換到另一個重要的資料:Metrics,指摽了!