網頁

2021/5/31

ELK 是什麼? What is ELK?

ELK是什麼?用途在哪?


Elk是歐洲麋鹿的英文...。在撰寫本篇前我只知道ELK好像是用來蒐集及監看log的技術。


ELK是三個開源專案的縮寫,分別是Elasticsearch、Logstash、Kibana。後來又多了個Beats。

  • Elasticsearch:分佈式搜尋分析引擎。
  • Logstash:服務器端資料蒐集及處理管道。
  • Kibana:Elasticsearch的資料視覺化平台。
  • Beats:輕量型資料採集器。

因為多了個Beats所以ELK stack現在改稱為Elastic Stack。


Elastic stack運作流程圖。Beats蒐集並將log資料送給Logstash解析、過濾、轉化等,然後將整理好的資料送給Elasticsearch分析搜尋,然後以Kibana視覺化呈現

┬──┐ ┬    ┐ ┌─                                                 ┌────────┐
├──  │    ├─┴┐                                                 │        │
┴──┘ ┴──┘ ┘  └                                                 │ Kibana │
                                                               │        │
   ┌────────┐                                                  └────────┘
   │Server 1│   ship data                                         ▲
   ├────────┤──────────────────────┐                              │
   │ Beats  │                      │                          visualize
   └────────┘                      │                              │
                                   ▼                              │
   ┌────────┐                ┌──────────┐                 ┌───────────────┐
   │Server 2│   ship data    │          │  parse, filter  │               │
   ├────────┤───────────────►│ Logstash │────────────────►│ Elasticsearch │
   │ Beats  │                │          │   transform     │               │
   └────────┘                └──────────┘                 └───────────────┘
                                   ▲
   ┌────────┐                      │
   │Server 3│   ship data          │
   ├────────┤──────────────────────┘
   │ Beats  │
   └────────┘

那什麼時候需要用到ELK?在分散式或微服務系統的每個應用程式及服務是運行在數個伺服器或容器中並產生各自的log紀錄,而這些log的訊息量又非常龐大,用手動的方式去查找特定伺服器的特定log中的一段訊息非常無效率且困難,而ELK則能將龐大且分散四處的log訊息蒐集起來,依條件整理分析後,讓我們能快速搜尋到特定訊息並以視覺化圖表呈現。


沒有留言:

張貼留言