精品国产一区二区三区麻豆小说,亚洲国产精品一区二区三区,欧美大片一区二区,欧美日韩国产精品一区

首頁

/

IT可觀測系列剖析——容器監控

發布日期:2024-09-09 14:53:14

分享到

01. 容器監控痛點

近年來,Kubernetes 作為許多公司云原生改造的首選容器編排平臺,越來越多的開發和運維工作都圍繞 Kubernetes 展開,保證 Kubernetes 的穩定性和可用性是基本需求,而其中的核心是如何有效地監控 Kubernetes 集群,確保整個集群的高可觀測性容器監控常常會有以下痛點:

  • 態環境與復雜架構
容器化環境通常是高度動態和分布式的,這意味著容器生命周期短且頻繁變化,同時應用由多個微服務組件構成,分布在多個節點上。這種動態性和復雜性要求監控工具能夠快速適應環境變化,并有效地追蹤跨多個服務和節點的問題。
  • 數據量大與性能開銷
高頻率的數據收集和大量的日志、指標數據會迅速增長,給存儲和處理帶來挑戰。另外,監控系統本身引入的性能開銷也需要謹慎管理,以免影響應用程序的正常運行。
  • 多層次監控需求

容器監控需要覆蓋多個層次,包括底層基礎設施、容器運行時、容器編排平臺,以及應用層面的性能指標和日志數據。


02. 場景介紹

容器監控,泛指在容器場景下,對容器環境的指標、事件等進行上報。目前市面上的容器管理平臺,基本被Kubernetes所統一,本文將核心圍繞Kubernetes的場景及特性,介紹嘉為藍鯨監控中心(下稱“監控中心”)是如何實現容器監控的。

不同于常見的主機監控組件監控等成就,容器監控具備以下幾個鮮明的監控特性:

  • 監控目標是動態的,無法通過傳統的方式對指定目標IP、目標端口進行監控。
  • 由于容器的頻繁銷毀與創建,監控目標展現出極高的動態性,缺乏有效的監控手段將直接導致難以追溯。
  • 無需關注容器具體運行在哪臺機器上。
  • 容器的數量多,上報的指標量級多。

圍繞著上面的特性,容器監控的訴求主要分為以下幾點:

1)集群本身的運行狀態監控,監控的目的是隨時關注容量、及時發現異常,讓集群的運維者能夠快速修復集群問題。

  • 對Kubernetes集群狀態的監控,如Master集群的etcd,Kube-api、Kube-scheduler、Kube-proxy、Kubelet等核心服務的監控。
  • 對Node節點狀態的監控,如CPU、內存、網卡等監控。
  • 對資源的統計需求,如Cluster、NameSpace、 Node、Pod數量的統計。
  • 對Workload、Service、Pod、Container運行指標和狀態監控。

2)Kubernetes事件監控記錄了組件的某個時間的動作,用于展示集群內發生的情況,當集群內的資源狀態發生變化時產生新的event,容器事件的收集、監控,避免集群或節點可用性產生的影響。

  • 容器事件:如容器啟停狀態、拉取/創建/啟動容器失敗等;
  • 節點事件:如節點添加/刪除、節點狀態變化、節點可用性等;
  • Pod事件:如創建Pod成功/失敗、刪除pod成功/失敗等.

3)自定義指標的監控:

  • 對于運行在容器中的服務而言,僅僅依賴運行環境的指標正常性來評估服務狀態是不足夠的。因為即便運行環境(如CPU、內存等)指標表現正常,因此需要上報服務本身的指標。
  • 服務的指標,如接口的成功、失敗、飽和度、錯誤率等,通常這類指標對應用開發來說,更具有實際參考價值,更能夠對業務有幫助。


03. 產品方案

對于K8s的監控,其實已經有一套原生的Prometheus方案,方案本身采集的指標相對完善,但是核心問題是對集群性能有較大的占用,且整體部署方式相對獨立,采集的指標無法結合其他監控產品進行有效的消費。

為了讓大家統一集中管理監控,將容器監控與主機監控,業務監控等融為一體,監控中心推出了容器場景的監控能力。可以解決以下問題:

  • 避免Prometheus服務在高負載情況下OOM,查詢無響應,可用性不高問題。
  • 無需每個Kubernetes集群獨立部署Prometheus。
  • 解決容器監控和業務監控割裂使用的問題,集中式查看監控、告警,讓監控數據在統一的地方消費使用,無需同時維護多套監控系統。

得益于監控中心化的存儲能力,Bkmonitor-operator 較 Prometheus-operator 方案,對集群內資源消耗更低。


04. 效果展示

1)容器多指標計算檢測

容器監控的指標數量龐雜,許多指標均需經過二次計算,甚至無法通過常規的配置方式配置檢測策略。對此,監控中心同步提供以下兩個檢測能力:

① 衍生指標管理

支持衍生指標能力,允許用戶通過指標計算自定義衍生指標。要知道,在容器內,許多上層資源指標都是由下層指標匯聚計算而來(比如Cluster的性能指標,其實是Pod性能指標匯聚計算獲得),通過衍生指標功能,用戶可以預定義上層匯聚指標,并在策略配置,可視化展示時直接消費,而不需要每次都重復配置計算規則。


② 兼容PromQL表達式

完全兼容PromQL檢測預計,實現更多樣化的檢測邏輯,應對容器監控下復雜的監控檢測需求。


③ 容器資源監控

監控中心支持對容器內各類資源對象進行發現,并采集相關性能指標,包括以下對象:

  • Cluster
  • Workload (DaemonSet、Deployment、StatefulSet、Job、CrontJob、GameStatefulSet、GameDeployment)
  • Pod
  • Container
  • Node

支持按照容器實例查看對應的實時指標視圖、告警數據以及實例本身的信息。


④ 容器組件服務監控

對于容器上部署的組件服務,監控中心支持通過多種方式進行監控:

  • 支持serviceMonitor(主推)和PodMonitor;
  • sidecar方式( 以sidecar模式部署exporter抓取器暴露出metrics,結合serviceMonitor進行采集);
  • 中心遠程統一采集 (組件本身暴露了metrics,結合serviceMonitor進行采集)。

支持檢索查看上報后的指標實時數據


⑤ 容器日志監控

對于容器上的日志,監控中心支持采集以下類型的日志:

  • 支持采集在容器上運行的文件日志,即應用/服務產生的文本日志,例如Nginx日志、業務日志等;
  • 支持采集K8s Node日志;
  • 支持Kubernetes的標準輸出,即Pod容器的標準輸出,包含標準輸出信息(stdout)和標準出錯信息(stderr),輸出路徑為容器的/dev/termination-log文件。

配置容器采集時可根據需要選擇指定的Pods。


05. 最佳實踐

容器監控場景由于自身的復雜性,即使在技術上我們實現了對目標的全量監控、采集,但是如何配置有效的告警依然是用戶實施容器監控的一大難點。

為了幫助在容器監控場景下經驗不深的用戶,監控中心不僅內置了默認的容器監控策略、容器儀表盤,同時還提供了詳盡的指標說明文檔和最佳實踐配置指引,幫助用戶全面了解容器監控數據。

免費申請演示

聯系我們

服務熱線:

020-38847288

QQ咨詢:

3593213400

在線溝通:

立即咨詢
查看更多聯系方式

申請演示

請登錄后在查看!

主站蜘蛛池模板: 板桥市| 温宿县| 云南省| 宁河县| 和林格尔县| 锦屏县| 栾城县| 马尔康县| 海原县| 高台县| 土默特左旗| 吴旗县| 安达市| 绵阳市| 和林格尔县| 唐河县| 祁连县| 安庆市| 佛学| 衢州市| 叙永县| 芜湖县| 嘉定区| 女性| 米泉市| 烟台市| 鄂温| 原阳县| 永年县| 新巴尔虎左旗| 上饶县| 德江县| 恭城| 抚宁县| 时尚| 文水县| 托里县| 连南| 永善县| 定西市| 偃师市|