iT邦幫忙

第 11 屆 iT 邦幫忙鐵人賽

DAY 10
0
自我挑戰組

從 RedHat OpenShift 社群版 OKD 看 Kubernetes系列 第 10

[偷一下未來的進度] Day 10 :Kubernetes EFK 服務 Log 收集系統

EFK架構與合作關係

昨天向各位講述了日記在日常生活的重要性,當發生重大事故的時候我們可以從過往的日記內容查詢鄉端的資料,同理,在 Linux 系統中 Log 日誌可以幫助釐清事情的脈絡與原因,維運人員可以透過 Log 日誌來檢查系統或是應用程式過去在主機 (Host) 發生過什麼事情以此作為依據來校正與優化相關的服務。

以及簡短地提到有一套 EFK 集中式的 Log 系統,能夠提供不同來源將 Log 訊息集中式的儲存在一起,並起提供快速地查詢方法。透過此一系統可以大幅度的提高維運人員除錯的效率也能降低服務發生故障事後無從查證的感覺。

我認為一個 Log 收集系統大致上需要擁有以下五個功能

  • 撰寫 Log 訊息
  • 統一 Log 訊息格式
  • 儲存 Log 訊息
  • Log 訊息搜尋與分析
  • Log 訊息的視覺化處理

今天要介紹三個開源專案分別是 ElasticsearchFluentdKibana ,來看看 EFK 所組合而成的 Log 收集系統可以做到什麼樣的事情

  • Elasticsearch :一套分散式的 Log 訊息搜尋引擎。基於 Apache Lucene(TM) 所開發的搜尋引擎,可以透過全文搜尋、結構化搜尋和分析這三種功能組合再一起搜尋 Log 訊息,此外 Elasticsearch 具有高擴展性、高可用性、易管理等特點。知名的 Wikipedia 、 Stack Overflow 、 GitHub等搜尋引擎底層都採用這一套系統,由此可見 Elasticsearch 的強大與實用。

  • Fluentd : 是一個 Log 訊息收集的工具。支援各種不同的資料來源如:Application Logs 、 Network Protocols 、 IOT Devices Logs 等等,並有豐富的 Plugins 可以對資料進行過濾、分析、統一格式一系列的操作,最後可以將資料輸出到各式各樣的後端儲存平台上如 AWS S3 、 MySQL 、 Hadoop DFS 等儲存平台。
  • Kibana :提供一個資料視覺化的操作平台。使用者能夠透過 Kibana 快速的將 Elasticsearch 中所查詢到的資料生成圖表、表格、地圖以較為圖像式的方式呈現。

由上述三個開源專案我們可以清楚的看到他們強大的特性與功能,這邊做一個簡單的整理與分類。

  • Log 訊息的分析、搜尋
    • Elasticsearch
  • Log 訊息的發送接收、儲存與資料格式統一
    • Fluentd
  • Log 訊息轉為圖表、表格、地圖等視覺化資料
    • Kibana

EFK架構圖

EFK架構可以分為四個部分來看,第一個部分為產生資料,第二個部分是資料處理(包含分析、分類、統一格式等行為),第三部分是提供資料查詢,第四部分為將欲查詢的資料進行視覺化。

第一部分

由 Application 撰寫 Log 訊息,並且透過 EFK 架構中的 "F" 也就是 Fluentd 來發送資料。

第二部分

Application 所產生的 Log 訊息會透過 Fluentd 來發送資料,將資料轉發到彙整的 Fluentd 上,透過該彙整 Fluentd 對資料進行加工(如分析、分類、統一格式等動作),最後將資料存入對應的儲存平台。

第三部分

ElasticSearch 透過索引 (indexing)搜索 (search) 以及聚合 (aggregations) 等動作查詢 Log 資訊,使用者能快速取得欲查詢的資料。

第四部分

透過 Kibana 視覺化系統將 ElasticSearch 所查詢到的資料以視覺化方式如圖表、表格、地圖等視覺化方式呈現。

我了解架構了,接著要做什麼?

在了解了 EFK Log 資訊收集系統的架構以及每個元件的合作方式後,明天將把舞台轉向 Kubernetes 的身上,我們如何在 Container 的世界架設一個 EFK Log 資訊收集系統並且收集 Kubernetes 相關的 Log 資訊?


上一篇
[偷一下未來的進度] Day 9 :Kubernetes Log 監控服務
下一篇
[偷一下未來的進度] Day 11 :Kubernetes 純手動部署與設定 EFK (1/4)
系列文
從 RedHat OpenShift 社群版 OKD 看 Kubernetes17

尚未有邦友留言

立即登入留言