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

使用自定義Webhook的常見問題

本文介紹使用自定義Webhook的常見問題。

如何設置內容模板

當通過自定義Webhook進行告警通知時,建議設置通知內容為JSON格式,即最終渲染的內容需為合法的JSON格式。

例如為如下的告警消息配置內容模板,由于alert.annotations.message字段值中包含雙引號(""),因此您在內容模板中直接使用{{ alert.annotations.message }},會導致渲染結果不是合法的JSON,從而導致發送告警通知失敗。

您需要使用內置模板函數quote(value)對數據進行引用,避免因為特殊字符導致JSON格式異常。

  • 告警消息示例

    {
        "project": "test-alert",
        "region": "cn-hangzhou",
        "labels": {
            "service": "signin",
            "env": "prod"
        },
        "annotations": {
            "message": "user \"xxx\" signin failed, error is: userNotFound"
        }
    }
  • 內容模板示例

    {
        "project": "{{ alert.project }}",
        "service": "{{ alert.labels.service }}",
        "message": {{ alert.annotations.message | quote }}
    }
  • 渲染結果示例

    {
        "project": "test-alert",
        "service": "signin",
        "message": "user \"xxx\" signin failed, error is: userNotFound"
    }

如何選擇網絡

日志服務告警中的Webhook通知僅支持公網訪問。如果是內部系統,且不希望對外開啟訪問功能時,可以通過公網代理方式解決。參考架構如下圖所示。

image

如何設置訪問權限校驗

您可以通過設置IP白名單或設置HTTPHeader的方式來進行權限校驗。

  • 為您的Webhook服務設置訪問IP白名單。IP地址為120.76.47.88、119.23.150.175。

  • 通過設置HTTPHeader的方式來進行權限校驗。

    • 使用自定義Token:在Header中添加Authorization: Bearer token,其中token需替換為您自定義的Token。

    • 使用Basic Auth:在Header中添加Authorization: Basic $(base64_encode(username:password)),其中username、password需替換為實際的用戶名和密碼。

例如您的Webhook服務使用了Nginx反向代理,則您可以在Nginx中設置Basic Auth,從而實現訪問權限校驗。

  1. 在Nginx中設置Basic Auth。

    1. 在密碼文件中添加用戶。

      重要

      如果不存在conf/passwd文件,需先手動創建。

      例如用戶名為admin,密碼為foobar。

      htpasswd -b conf/passwd admin foobar
    2. 在Nginx中添加auth_basic和auth_basic_user_file配置,開啟Basic Auth。

      location / {
          auth_basic  on;
          auth_basic_user_file  conf/passwd;
          root   html;
          index  index.html index.htm;
      }
    3. 重啟Nginx。

  2. 在行動策略中設置自定義Webhook。

    echo -n admin:foobar | base64的結果為YWRtaW46Zm9vYmFy,因此在設置自定義Webhook時,您可以直接使用Authorization: Basic YWRtaW46Zm9vYmFy Header。具體操作,請參見Webhook-自定義