このトピックでは、カスタム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" }
ネットワークを選択するにはどうすればよいですか?
Simple Log Serviceのアラートシステムは、インターネット経由でのみwebhookベースのアラート通知を送信します。 内部システムを使用していて、システムのインターネットアクセスを有効にしたくない場合は、インターネットプロキシを使用できます。 次の図は、ネットワークアーキテクチャを示しています。
アクセス許可を確認する方法?
アクセス権限を確認するには、IPアドレスホワイトリストまたはHTTPヘッダーを設定します。
webhookのIPアドレスホワイトリストを設定し、IPアドレス120.76.47.88と119.23.150.175をホワイトリストに追加します。
HTTPヘッダーを設定します。
カスタムトークンを使用します。 Request Headerパラメーターを
Authorization: Bearer tokenに設定できます。 tokenをカスタムトークンに置き換えます。基本認証を使用します。 リクエストヘッダーのパラメーターを
Authorization: Basic $(base64_encode(username:password))に設定できます。 usernameとpasswordを実際のユーザー名とパスワードに置き換えます。
たとえば、webhookがNGINXリバースプロキシを使用している場合、アクセス許可を確認するためにNGINXで基本認証を設定できます。
NGINXで基本認証を設定します。
パスワードファイルにユーザーを追加します。
重要conf/passwdファイルが存在しない場合は, パスワードファイルを作成する必要があります。
ユーザー名adminとパスワードfoobarを例として使用します。
htpasswd -b conf/passwd admin foobarNGINXでauth_basicおよびauth_basic_user_fileパラメーターを設定して、基本認証を有効にします。
location / { auth_basic on; auth_basic_user_file conf/passwd; root html; index index.html index.htm; }NGINXを再起動します。
アクションポリシーでカスタムwebhookを設定します。
echo -n admin:foobar | base64コマンドは、YWRtaW46Zm9vYmFyを返します。 したがって、カスタムwebhookを設定するときに、リクエストヘッダーパラメーターを[Authorization: Basic YWRtaW46Zm9vYmFy]に設定できます。 詳細については、「Webhook-Custom」をご参照ください。