大數據

可觀測性-Elastic Stack 實戰手冊

作者:亢偉楠

在開發技術越來越成熟便捷的今天,我們可以很輕鬆寫出來一個程序,用來進行各種各樣的業務流程。你能想象如果我們運營一個銀行系統,但是不知道每天轉賬的成功率、取現的效率嗎?

和銀行系統一樣,我們日常中的軟件系統,都需要儘量良好的觀測和測量,才能保證系統的健康。

正如管理大師彼得德魯克的名言,”If you can’t measure it, you can’t manage it.” 我們必須對我們的計算系統進行測量和觀測,才能進一步管理它。

業界對可觀測性的定義由Logging(日誌),Metrics (指標)和 Tracing(跟蹤)組成。其中大多數軟件都僅在一個領域內發力,這導致了實施可觀測性時的高昂成本。需要建設多個技術棧的軟件,才能實現完整的可觀測性。大多數企業基本都使用了 5個+ 的技術棧,有的甚至能達到10個技術棧。

那有沒有什麼低成本便捷的方案能幫助我們在企業中實施可觀測性?

Elastic 可觀測性 :一站式低成本解決方案

Elastic Stack 的可觀測性 (Observability) 產品是一個讓人滿意的答案。相較於市面上其他的可觀測性系統,Elastic Stack 能提供一站式全棧的可觀測性解決方案,而其他系統基本只能提供一個方法的功能,實際落地中,需要搭配多套不同技術棧的系統實現,繁瑣且複雜。

Elastic Stack 提供開源的可觀測性能力,並且在雲原生計算基金會(CNCF)的2020年9月的可觀測性技術雷達評測中,獲得了“採納(ADOPT)”評級。

圖1 可觀測性技術雷達

Elastic Stack 的可觀測性由 Logs 、APM(application performance monitor)、Uptime、Metrics 四個模塊組成,他們分別由四個組件提供支持。

組件對應情況如下:

  • Logs -- Filebeat
  • APM -- APM Server & APM agent
  • Uptime -- Heartbeat
  • Metrics -- Metricbeat

Logs

Kibana 中的 Logs 應用實現任何數據源日誌的中心化,搜索。Elastic Stack 是天然的日誌處理的集大成者。最新的 Logs 模塊更是能實現在 web 的實時 tail、搜索、分類和異常檢測功能。我們可以通過 Filebeat 或者 Logstash 把日誌導入到 Elasticsearch 中。

圖2 Logs 頁面

APM(Application Performance Monitor)

Kibana 中的 APM 應用可以實現分佈式鏈路跟蹤、事務監控、依賴分析和基於真實用戶體驗的監控。該功能通過 APM Server 和 APM Agent 組件提供支持。

圖3 APM 頁面

Uptime

為了幫助您在可用性問題,從而影響用戶之前快速做出相應。Uptime 模塊提供了對主機,網絡設備以及第三方服務的整體可用性快照報告。根據其監控數據,可以查看出目前的總監控點和分別處於 up\down 狀態的監控點。該功能通過 Heartbeat 組件提供支持。

圖4 Uptime 頁面

Metrics

Metricbeats 支持讀取多大 50 種系統/數據源的 Metrics 採集,包括:數據庫,消息隊列,操作系統,文件系統和網關等系統。將 Metrics 數據採集完畢後,在 Metrics 應用中可實現一站式的統一查看、管理,甚至是基於機器學習的異常檢測。

圖5 Metrics 頁面

以上四個模塊均支持告警功能。

Fleet:更方便的數據收集

Fleet Agent 提供了更簡單方便的統一的 Logs 數據、Metrics 數據和主機的其他數據。不在需要安裝多個 Beat 來實現對數據的收集。

Fleet 目前處於 Beta 階段。

參考鏈接:

  1. CNCF End User Technology Radar https://radar.cncf.io/2020-09-observability

Leave a Reply

Your email address will not be published. Required fields are marked *