日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Istio on ACK集成生态(2): 扩展AlertManager集成钉钉助力可观测性监控能力

發布時間:2025/6/15 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Istio on ACK集成生态(2): 扩展AlertManager集成钉钉助力可观测性监控能力 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

阿里云容器服務Kubernetes(簡稱ACK)支持一鍵部署Istio,可以參考文檔在ACK上部署使用Isito。Istio on ACK提供了豐富的監控能力,為網格中的服務收集遙測數據,其中Mixer是負責提供策略控制和遙測收集的Istio組件。使用Prometheus進行監控是Istio提供的監控能力之一。

告警能力在Prometheus的架構中被劃分成兩個獨立的部分:Prometheus負責產生告警,而Alertmanager負責告警產生后的后續處理。如下所示,通過在Prometheus中定義告警規則,Prometheus會周期性的對告警規則進行計算,如果滿足告警觸發條件就會向Alertmanager發送告警信息。

Alertmanager作為一個獨立的組件,負責接收并處理來自Prometheus Server(也可以是其它的客戶端程序)的告警信息。Alertmanager可以對這些告警信息進行進一步的處理,比如當接收到大量重復告警時能夠消除重復的告警信息,同時對告警信息進行分組并且路由到正確的通知方,Prometheus內置了對郵件、Slack等多種通知方式的支持,同時還支持與Webhook的集成,以支持更多定制化的場景。例如,完全可以通過Webhook與釘釘機器人進行集成,從而通過釘釘接收告警信息。同時AlertManager還提供了靜默和告警抑制機制來對告警通知行為進行優化。

以下介紹如何擴展AlertManager集成釘釘,并通過AlertManager幫助實現Istio on ACK在可觀測性監控方面的能力。

通過Webhook集成釘釘
單擊釘釘群右上角群設置圖標,進入群設置頁面。單擊群機器人,進入群機器人頁面,選擇需要添加的機器人。此處選擇自定義機器人。
在機器人詳情頁面,單擊添加,進入添加機器人頁面。

填寫完配置群機器人信息后,單擊完成添加。
單擊復制,復制webhook地址。

部署AlertManager并對接釘釘
登錄容器服務管理控制臺。 在Kubernetes菜單下,單擊左側導航欄中的應用 > 無狀態,進入 無狀態(Deployment)頁面。
選擇目標集群,命名空間選為istio-system,單擊右上角使用模板創建。
根據以下信息配置模板,完成后單擊創建。

自定義YAML內容如下:

apiVersion: v1
kind: Service
metadata:
name: dingtalkservice
labels:
app: dingtalkservice
service: dingtalkservice
spec:
ports:

  • port: 8060
    name: http
    selector:
    app: dingtalkservice

    apiVersion: extensions/v1beta1
    kind: Deployment
    metadata:
    name: dingtalkservice
    labels:
    app: dingtalkservice
    version: v1
    spec:
    replicas: 1
    template:
    metadata:
    labels:
    app: dingtalkservice
    version: v1
    spec:
    containers:

    • name: prometheus-webhook-dingtalk
      image: timonwong/prometheus-webhook-dingtalk
      imagePullPolicy: IfNotPresent
      args:
      • --ding.profile=webhook1={替換為上述步驟中復制的webhook地址}
        ports:
      • containerPort: 8060

        kind: ConfigMap
        apiVersion: v1
        metadata:
        name: alertmanager
        data:
        config.yml: |-
        global:
        resolve_timeout: 5m
        templates:

      • '/etc/alertmanager-templates/*.tmpl'
        route:
        group_by: ['alertname', 'cluster', 'service']
        group_wait: 30s
        group_interval: 5m
        repeat_interval: 1m
        receiver: webhook_alert
        routes:
    • match:
      severity: info
      receiver: webhook_alert
    • match:
      severity: warning
      receiver: webhook_alert
      receivers:
      • name: webhook_alert
        webhook_configs:
    • url: 'http://dingtalkservice:8060/dingtalk/webhook1/send'
      send_resolved: false

      apiVersion: v1
      kind: Service
      metadata:
      annotations:
      prometheus.io/scrape: 'true'
      prometheus.io/path: '/metrics'
      labels:
      name: alertmanager
      name: alertmanager
      spec:
      selector:
      app: alertmanager
      type: ClusterIP
      ports:

  • name: alertmanager
    protocol: TCP
    port: 9093
    targetPort: 9093

    apiVersion: extensions/v1beta1
    kind: Deployment
    metadata:
    name: alertmanager
    spec:
    replicas: 1
    selector:
    matchLabels:
    app: alertmanager
    template:
    metadata:
    name: alertmanager
    labels:
    app: alertmanager
    spec:
    containers:

    • name: alertmanager
      image: prom/alertmanager:v0.15.0
      args:
      • '--config.file=/etc/alertmanager/config.yml'
      • '--storage.path=/alertmanager'
        ports:
        • name: alertmanager
          containerPort: 9093
          volumeMounts:
        • name: config-volume
          mountPath: /etc/alertmanager
        • name: alertmanager
          mountPath: /alertmanager
          serviceAccountName: prometheus
          volumes:
    • name: config-volume
      configMap:
      name: alertmanager
    • name: alertmanager
      emptyDir: {}
      創建成功之后,單擊左側導航欄中的應用 > 容器組,選擇相應的集群和命名空間istio-system, 可以看到如下類似的運行中的alertmanager和dingtalkservice容器組。

      創建Prometheus告警規則配置項
      登錄 容器服務管理控制臺。在Kubernetes菜單下,單擊左側導航欄中的應用配置 > 配置項,選擇相應的集群與命名空間istio-system,點擊右上角的創建按鈕,進入創建配置項頁面。
      輸入配置項名稱:prom-rules1。
      添加配置項,名稱為rule1.yaml,值為如下內容:
      groups:
      • name: fake
        rules:
      • alert: rules-alert
        expr: |
        histogram_quantile(0.99, sum by(source_app, source_version, destination_service, destination_version, le) (irate(istio_request_duration_seconds_bucket[1m])) ) > 3
        for: 1m
        labels:
        alertname: "request-duration-3"
        annotations:
        summary: "Request duration gt 3"
        from: "{{ $labels.source_app }}:{{ $labels.source_version }}"
        to: "{{ $labels.destination_service }}:{{ $labels.destination_version }}"
        該規則描述過去1分鐘內99%請求時延超過3s時會發出告警。

點擊確定按鈕。
集成AlertManager到Istio中
阿里云容器服務Kubernetes(簡稱ACK)支持一鍵部署Istio,可以參考文檔在ACK上部署Isito。
默認部署中的Prometheus服務沒有對接AlertManager,需要按照如下步驟進行配置。

登錄容器服務管理控制臺。
在 Kubernetes 菜單下,單擊左側導航欄的應用 > 發布,進入發布頁面。
單擊Helm,選擇所需的集群,選擇待更新的Istio,單擊操作列的更新。

在彈出的對話框中,對Istio的Prometheus參數進行修改:

| 配置 | 說明 |


alerting:
alertmanagers:

  • static_configs:
    • targets: ["alertmanager:9093"]

修改完畢之后,單擊更新。
告警規則觸發驗證
當你的應用服務調用滿足觸發條件時,在Prometheus控制臺上,點擊Alerts頁簽,可以看到如下類似內容。

同時,相應的釘釘群也會收到類似的告警信息,如下所示。

總結
在阿里云Kubernetes容器服務基礎之上,快速搭建一套用于連接、管理以及安全化微服務的開放平臺Istio,為應用引入和配置多個相關服務。使用Prometheus進行監控是Istio提供的監控能力之一,通過擴展AlertManager集成釘釘助力Istio on ACK可觀測性監控能力。

轉載于:https://blog.51cto.com/14031893/2411068

總結

以上是生活随笔為你收集整理的Istio on ACK集成生态(2): 扩展AlertManager集成钉钉助力可观测性监控能力的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。