可觀測性不是一個新鮮的名詞,主要是指通過分析數字化應用系統的指標(Metrics)、鏈路(Traces)、日志(Logs)等數據,構建出完整的態勢觀測模型,從而實現快速的威脅發現和故障診斷。在許多情況下,可觀察性會被錯誤理解成是“系統監控”的同義詞,但隨著數字化應用的深入,特別是隨著云原生技術的發展,基于容器和微服務化的應用規模更加龐大,復雜的云上環境以及應用系統的分布性、復雜性、動態性,使得故障定界和檢測分析非常困難,而可觀測性無疑是降低這種難度的有效手段之一。因此,有更多企業發現部署可觀察性產品的能力和價值。
目前,研究機構Gartner已將應用可觀測性列為“2023年十大戰略技術趨勢”之一。安全研究人員表示,成功實現可觀測性的企業機構,會在數字化業務開展中建立競爭優勢,企業需要找到合適的工具并盡快部署使用。本文收集整理了8款主流的可觀察性工具,并對其應用特性、不足和典型應用場景進行了分析,可為企業組織應用選型提供參考。
1. Prometheus
Prometheus是一款開源工具,廣泛用于云原生環境中的可觀察性獲取。它可以收集和存儲時間序列數據,并提供可視化工具來分析這些數據。
關鍵特性與不足:
可以從各種來源獲取指標,包括應用程序、服務和系統;
可以將收集到的數據存儲在時間序列數據庫中,并可以高效地查詢和聚合數據;
帶有一個內置的警報系統,可以根據查詢觸發警報;
可以自動檢測和抓取運行在多個環境中的服務的指標,比如Kubernetes和其他容器編排系統;
能夠與Grafana靈活地集成,允許它創建儀表板來顯示和分析Prometheus指標。
不能提供內置的根本原因分析;
需要將所有數據存儲在內存中,因此可能會占用大量計算資源;
目前還不支持嵌套字段和連接。
主要應用場景:
監控指標收集和存儲;
自動化報警;
異常服務行為發現。
傳送門:
??https://prometheus.io/??
2. Grafana
Grafana是一個開源工具,主要用于對數據的可視化和監控。它允許用戶輕松地創建和共享交互式儀表板,對來自不同來源的數據進行可視化分析。
關鍵特性與不足:
可以創建定制化的交互式儀表板,對來自各種數據源的指標和日志進行分析;
允許用戶根據其指標的狀態設置警報,以發現潛在的問題;
允許用戶設置異常檢測,并根據其指標中的異常行為自動檢測和警報;
允許用戶深入到指標中,通過提供帶有歷史上下文的詳細信息來分析根本原因。
不支持長期存儲,需要Prometheus或Elasticsearch等額外工具來存儲指標和日志;
不提供高級數據建模功能;
不包含內置的數據聚合功能。
主要應用場景:
對各種監控指標的可視化;
自動化報警;
異常服務行為檢測。
傳送門:
??https://grafana.com/??
3. ELK堆棧
ELK堆棧是一款流行的開源可觀察性解決方案,有助于運營人員更好地管理日志和分析數據。它由三個組件組成:Elasticsearch、Logstash和Kibana。
Elasticsearch是一個分布式搜索和分析引擎,可以處理大量結構化和非結構化數據,使用戶能夠存儲、索引和搜索大量數據;Logstash是一個數據收集和處理管道,允許用戶收集、處理和豐富來自許多源(如日志文件)的數據;Kibana是一個數據可視化和探索工具,允許用戶基于Elasticsearch中的數據創建交互式儀表板和可視化。
關鍵特性與不足:
允許用戶收集、處理、存儲和分析來自多個來源的日志數據和指標,同時提供一個集中控制臺來搜索日志;
允許用戶搜索和分析相關日志數據,這對于解決和深入了解問題的根本原因至關重要;
可以對來自多個數據源的日志數據和指標進行可視化分析;
允許在日志數據中為異?;顒影l出警報;
允許用戶向下獲取更多日志數據,通過提供詳細的日志和歷史上下文,可以更好地找出問題的根本原因。
ELK目前還不支持分布式跟蹤,用戶需要使用額外的工具,如Jaeger;
ELK的日志報告會造成輕微的延遲;
策略配置和維護過程比較復雜,需要特定的知識來管理運營。
主要應用場景:
多來源的日志管理;
數據可視化;
遵從性和安全性監控
傳送門:
Elasticsearch:https://www.elastic.co/elasticsearch/
Logstash:https://www.elastic.co/logstash/
Kibana:https://www.elastic.co/kibana/
4. InfluxDB 和Telegraf組合
InfluxDB和Telegraf都是開源版的可觀察性工具,它們的時間序列數據存儲和監控功能很受企業用戶的歡迎。其中,InfluxDB是一個時間序列數據庫,它使用類似sql的查詢語言存儲和查詢大量時間序列數據;而Telegraf則是一款性能出色的數據收集代理,它可以支持各種數據源,收集各種指標和事件信息,并將其發送給多個提前設置的接收器,比如InfluxDB等。
關鍵特性與不足:
Telegraf允許用戶從許多來源收集指標,并將它們發送到InfluxDB進行存儲和分析;
InfluxDB可以與第三方可視化工具(如Grafana)集成,以創建靈活的交互式控制面板;
InfluxDB的設計允許它處理較長時間段內的數據并提供擴展能力;
這兩個工具都缺乏警報功能,需要第三方集成來提供警報;
缺乏深入的原因分析功能,需要第三方集成。
主要應用場景:
指標收集和存儲;
長時間的運行監控。
傳送門:
InfluxDB:
??https://www.influxdata.com/??
Telegraf:
??https://www.influxdata.com/time-series-platform/telegraf/??
5. Datadog
Datadog是一款基于云的可觀察性監控和分析平臺,目前已被廣泛用于深入了解分布式系統的運行狀況和性能,以便在風險真實發生前排除問題。
關鍵特性與不足:
可以監控在AWS、Azure、GCP等多種公有云平臺上運行的應用程序;
可以對服務依賴關系、位置、服務和容器等信息進行可視化分析;
可以跟蹤分析有關應用程序性能的詳細信息;
可以通過提供帶有歷史上下文的詳細信息,讓用戶分析了解問題的根本原因;
可以設置異常檢測,自動檢測和警告觀測到的異常行為。
Datadog是一種基于云計算的付費服務,隨著部署規模擴大,使用費用會增加;
不提供默認的日志分析支持,用戶必須單獨購買日志攝取和索引功能;
不允許用戶在本地或自己的數據中心存儲數據。
主要應用場景:
可觀察性數據管道
分布式服務跟蹤
集裝箱式應用監測
傳送門:
??https://www.datadoghq.com/??
6. New Relic
New Relic也是一款基于云的監控和分析平臺,允許用戶監控分布式環境中的程序運行狀態。它使用“New Relic Edge”服務進行分布式跟蹤,可以實現幾乎100%的應用程序跟蹤監測。
關鍵特性與不足:
提供全面的APM解決方案來監控和排除應用程序性能故障;
可以在AWS、Azure、GCP等多個公有云平臺上監控應用程序運行;
可以提供有關系統和應用程序性能的詳細信息,并進行跟蹤分析;
可以幫助用戶深入到指標和上下文信息中,分析問題的根本原因;
可以收集、處理和分析各種來源的日志數據,并提供全面的日志視圖。
New Relic是一個閉源平臺,它與其他開源工具的集成能力非常有限;
在進行大規模部署時,New Relic的使用成本會比較高。
主要應用場景:
多云環境中的應用監控
深入的跟蹤分析
傳送門:
??https://newrelic.com/??
7. AppDynamics
AppDynamics是一款應用廣泛的可觀察性監控和分析平臺,不僅允許用戶對各種應用程序的每個組件進行跟蹤監測,同時還提供了根本原因分析,以確定可能影響應用程序性能的潛在問題。
關鍵特性與不足:
可以從許多來源(如主機、容器、云服務和應用程序)收集監控指標并跟蹤分析;
可以設置異常檢測功能,對發現的異常行為進行及時檢測和預警;
用戶可以獲取較詳細的性能信息并跟蹤分析;
由供應商維護工具,對開源工具的集成能力不足;
定制選項不夠靈活,用戶不能自己定制解決方案。
主要應用場景:
應用程序性能監視
多云環境中的應用監控
業務流程管理
傳送門:
??https://www.appdynamics.com/??
8. Helios
Helios是一款為系統開發人員提供可觀察性的解決方案,提供了對應用程序流程的可操作性洞察能力。它整合了OpenTelemetry的上下文連接框架,可以提供跨微服務、無服務器應用、數據庫和第三方API的可見性。
關鍵特性與不足:
在完整的上下文中提供分布式跟蹤信息;
使用戶能夠從多個數據源收集和可視化跟蹤數據,以深入挖掘和排除潛在問題;
支持Python、JavaScript、Node.js、Java、Ruby等多種語言和框架;
允許團隊成員重用請求、查詢和有效負載;
可根據跟蹤數據自動生成測試;
與現有的生態系統輕松集成,包括日志、測試、錯誤監控等;
只需點擊幾下即可再現一個精確的工作流。
主要應用場景:
分布式應用跟蹤;
多語言應用程序跟蹤集成;
無服務器應用程序監控;
應用測試中的故障排除;
API調用自動化。
傳送門:
??https://app.gethelios.dev/??
參考鏈接:
??https://dzone.com/articles/11-observability-tools-you-should-know-in-2023??