iT邦幫忙

第 12 屆 iT 邦幫忙鐵人賽

DAY 2
0
Elastic Stack on Cloud

前端三分鐘 X Elastic Stack系列 第 2

Elastic Logging Quick Start: 用 Filebeat 傳送 Nginx Log 到 Elasticsearch (2)

這篇文章會示範如何安裝並使用 Filebeat 傳送 Nginx Access Log 到 Elasticsearch 中,並使用 Kibana 即時監看相關資料。

Logging 簡介

目前蒐集資料到 Elasticsearch 的方法有兩種

  • Logstash: Java Base,還沒跑服務就需要吃資源,可負責處理 Log 格式
  • Beats: Go Base,需要資源較少效能較好

為什麼 log 很重要?

  • 監測應用程式
  • 安全性分析
  • 問題排解

解決的痛點:

  • 不同的 Log 會有不同的格式
  • 需要專業知識才讀得懂
  • 有好幾種 log 的來源
  • 需要產出不同格式的分析

Beats

Beats 可以安裝在 server 上協助傳送資訊到 Elasticsearch 或 Logstash,除了這次要用到的 Filebeat 以外還有一堆很厲害的 beat 系列工具,例如 Metricbeat 收集 system loading 還有 Packetbeat 可以收集網路封包。

Nginx Log 蒐集

主要步驟有以下三個

  1. 建立服務

    • 規格都挑喜歡的選就可以了,我是選 GCP 位置台灣 IO 優先
    • 開好之後記得下載帳號跟密碼,之後要打資料到 kibana 的配置檔中會用到
  2. 安裝 filebeat 打 log 資料到 Elasticsearch

    • 第一次使用可以先加入 Sample Data 來試用
    • 教學範例中可以看到常見的 Apache、Nginx、Docker 可以說該有的都有
  3. 從 Kibana 的介面中監看成果

https://ithelp.ithome.com.tw/upload/images/20200904/20130026dWM0wgvEmn.jpg

安裝 Filebeat

如果是 Windows 官方的 Quick Start 不用試了,因為 system module 跑不起來,所以我們要先停用:

./filebeat modules disable system

接下來就挑選 Nginx 的範例來嘗試,首先當然要下載 nginx,下載解壓縮後到目錄直接 start nginx 然後瀏覽器瀏覽 localhost 先來產生一下 access.log,我的 Log 位置會在 C:\nginx-1.18.0\logs

Filebeat 的安裝使用步驟如下

  • 下載 Filebeat 解壓縮
  • ./filebeat modules enable nginx 啟用模組
  • 找到 filebeat.yml 中的 cloud.id 及 cloud.auth 並填入正確資料
  • 找到 modules.d\nginx.yml 中的 var.paths: ["c:\\nginx-1.18.0\\logs\\access.log*"]
  • ./filebeat test config -e 看看有沒有打錯
  • ./filebeat setup
  • ./filebeat -e

如果有其他更特殊的 Log,也可以透過直接上傳 log 檔 (CSV, NDJSON, log) 到 kibana,然後人工稍微針對機器學習辨識出來的 Grok Pattern 結果進行編輯即可。

https://ithelp.ithome.com.tw/upload/images/20200904/20130026wJkcmIkAnZ.jpg

透過剛剛機器學習的模組會幫我們分析 Log 的組成,並且也有幫我們產生 YML 的內容的功能,方便我們去寫剛剛提到的 filebeat.yml

https://ithelp.ithome.com.tw/upload/images/20200904/201300260qOKDAF2Ck.jpg

Kibana 監看 Log

Kibana 就是一個管理的 GUI,載入 Sample web logs 範例資料後就可以看到華麗的 Dashboard,如果看到這裡覺得還是很複雜,如果剛好 Server 又是 Nginx 的也很推薦使用 GoAccess 這套工具。

Kibana Dashboard GoAccess Dashboard
https://ithelp.ithome.com.tw/upload/images/20200904/201300264kdOq80t3A.jpg https://ithelp.ithome.com.tw/upload/images/20200904/20130026e2RBwiWfFo.jpg

這次目標是看 Log 有沒有進來,所以到 Kibana 選單中 Observability 的 Logs,有幾個功能還蠻方便的:

  1. 關鍵字搜尋
  2. 關鍵字 highlight
  3. 時段篩選

接著記得開啟 stream live,並且重複瀏覽幾次 localhost 看看我們剛剛 Nginx Access Log 有沒有自動匯入,如果看到如下圖,就恭喜大大設定成功,完成了這次 Quick Start 的任務。

https://ithelp.ithome.com.tw/upload/images/20200904/201300262Bht3gshYj.jpg


上一篇
Elastic Cloud Stack 簡介 (1)
下一篇
Elastic Metric Quick Start: 監控 Nginx 伺服器狀態 (3)
系列文
前端三分鐘 X Elastic Stack31

尚未有邦友留言

立即登入留言