日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

通過Kubernetes Label分發告警

本文以容器CPU使用率告警為例演示當Pod出現告警后,如何通過Pod上的標簽進行告警分發。

背景信息

Kubernetes提供了非常輕巧靈活的標簽機制實現多維度的資源分組管理功能,在實際的使用中我們通常會給應用打上各種標簽,例如env:prod代表應用是生產環境,service:iam代表應用提供IAM服務。通過這些標簽我們可以從各個維度來進行管理,如查看生產環境的應用列表,查看IAM服務的資源使用量。

ARMS告警管理可以通過Prometheus數據源對告警添加標簽,當Pod出現告警后可以將Pod上的Labels作為標簽添加到告警中,再通過通知策略實現按照任意標簽分發告警。

原理

  1. Prometheus中的kube-state-metrics提供了各個基礎資源的標簽指標,如kube_pod_labels、kube_node_labels等,記錄了每個資源的標簽。

  2. 在告警規則上配置特定的注釋(_aliyun_arms_enrich_desc),注釋內容是一個可執行的PromQL,在告警發生后告警引擎會通過查詢這個PromQL,將查詢出的標簽添加到告警中。

  3. 配置注釋內容為kube-state-metrics提供的標簽指標對應的查詢語句,對告警添加標簽。

操作步驟

  1. Kubernetes集群接入阿里云Prometheus監控。具體操作,請參見Prometheus實例 for 容器服務

  2. ACK中部署應用。

    1. 容器服務管理控制臺左側導航欄單擊集群,在集群列表頁面上的目標集群右側操作列單擊應用管理

    2. 無狀態頁面的目標應用右側選擇更多 > 編輯YAML

    3. 編輯YAML對話框添加自定義Labelapp:arms-prom-ack-arms-prometheus

      添加label

    4. 單擊更新

  3. 創建Prometheus告警規則。

    1. ARMS控制臺左側導航欄,選擇Prometheus監控 > Prometheus告警規則

    2. Prometheus告警規則頁面的右上角單擊創建Prometheus告警規則

    3. 創建Prometheus告警規則頁面,設置告警名稱EnrichDemo告警條件當容器CPU使用率大于2%時,滿足告警條件。

      創建Prometheus告警規則1

    4. 參見Prometheus告警規則,設置其他告警參數,然后單擊保存

  4. 為告警添加標簽。

    創建Prometheus告警規則頁面單擊高級設置右側箭頭,添加注釋。Prometheus告警注釋

    注釋說明:

    • 鍵:_aliyun_arms_enrich_desc。

    • 值: 可執行的PromQL,支持通過${xxx}引用告警中的標簽,此處示例為kube_pod_labels{pod_name=${pod_name}},示例中使用了${pod_name}來引用Pod名稱。

    重要
    • 注釋值的內容必須是可以執行的PromQL。

    • 執行PromQL查詢出的內容只能包含一條時間序列(timeseries)。

    • PromQL執行結果中查詢出來的所有標簽會被添加到告警中。

    • kube_pod_labels會對所有標簽的Key添加label_前綴,因此在最終使用時需要手動添加這個前綴。

    • 當查詢出來的結果超過10條時間線時,只能對前10條時間線富化標簽。

  5. 配置通知策略。

    通知策略頁面通過設置匹配告警事件規則為label_app等于arms-prom-ack-arms-prometheus訂閱告警。具體操作,請參見通知策略通知策略

  6. 告警發送歷史頁面查看告警信息。更多信息,請參見查看告警發送歷史

    告警發送歷史