
創作人:亢偉楠
審稿人:曾紅
在開發技術越來越成熟便捷的今天,我們可以很輕松寫出來一個程式,用來進行各種各樣的業務流程。你能想象如果我們營運一個銀行系統,但是不知道每天轉賬的成功率、取現的效率嗎?
和銀行系統一樣,我們日常中的軟體系統,都需要盡量良好的觀測和測量,才能保證系統的健康。
正如管理大師彼得德魯克的名言,”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 階段。
參考連結:
- CNCF End User Technology Radar https://radar.cncf.io/2020-09-observability
創作人簡介:
亢偉楠,目前就職于 58 同城資訊安全部,任架構師。 在 Elastic 社群任日報編輯,曾
獲得中文社群傑出貢獻者獎項。平時對高并發、高可用等方向有較多關注,目前主要推
動可觀測性落地。
部落格:
https://cyberdak.github.io/