このトピックでは、アラートをモニターするための、NSX Advanced Load Balancer と Slack の統合について説明します。

Slack はクラウドベースのツールで、パーシステント チャットルーム、プライベート グループ、ダイレクト メッセージングなどの IRC のような機能を提供します。WebHook は、HTTP Post メッセージを介したイベント通知機能です。WebHook と統合されたアプリケーションは、特定の基準が満たされると URL にメッセージを POST します。NSX Advanced Load Balancer は、ControlScript を使用して WebHook 機能をサポートするように構成できます。

構成

Slack を NSX Advanced Load Balancer と統合してアラートをモニターするには、次の 2 つの方法があります。

  • Slack E メール アプリケーションの使用

  • WebHook ControlScript の使用

Slack E メール アプリケーションを使用した構成

アラートを投稿する必要がある Slack E メール アプリケーションのチャネルを選択します。Slack E メール アプリケーションは、一意の E メール ID を提供します。NSX Advanced Load Balancer ユーザー インターフェイスのアラート アクションでこの E メール ID を設定します。アラート アクションの構成の詳細については、「WebHooks URL にアラートを送信するための NSX Advanced Load Balancer の構成」を参照してください。

Slack への E メールの送信の詳細については、「Slack への E メールの送信」に関する説明を参照してください。

WebHook 用 NSX Advanced Load Balancer ControlScript を使用した構成

WebHook 用 NSX Advanced Load Balancer ControlScript の使用には、次の 2 つの主な手順があります。

  • WebHook URL の取得

  • 構成された WebHook URL にアラートを送信するための NSX Advanced Load Balancer の構成

WebHook URL の取得

ControlScript(通常は Python スクリプト)がアクション アラートとして使用されます。次の手順に従って、WebHook URL を取得します。

  • 管理者として Slack URL にログインします。

  • アラートを構成する必要があるチャネルを選択します。

[受信 WebHook 統合の追加] ボタンをクリックします。



次に表示されるウィンドウで、一意の URL をコピーします。この URL は、ControlScript で使用されます。

WebHook URL にアラートを送信するための NSX Advanced Load Balancer の構成

[運用] > [アラート] > [アラート アクション] の順に移動し、[作成] オプションを選択します。

アクションの名前を入力し、[アラート レベル][高] を選択して、新しい ControlScript を作成します。次の例では、Pool Down という名前の新しい ControlScript が作成されます。

前の手順で作成した WebHook URL を ControlScript のコンテンツとして使用します。

ラボでテストしたサンプル URL を次に示します。要件に応じて、webhook_urlslack_data を変更します。webhook_url を、Slack Webhook URL で WebHook を作成するときに Slack によって提供される URL に設定します。

#!/usr/bin/python

 import json
 import requests

 requests.packages.urllib3.disable_warnings()
 
 webhook_url = 'https://hooks.slack.com/services/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' 
 slack_data = {'text': "Sev1 Incident: Pool is Down :computer:"}

 response = requests.post(
    webhook_url, data=json.dumps(slack_data),
    headers={'Content-Type': 'application/json'}
 )
 if response.status_code != 200:
    raise ValueError(
        'Request to slack returned an error %s, the response is:\n%s'
        % (response.status_code, response.text)
 )

[運用] > [アラート] > [アラート構成] の順に移動し、[作成] をクリックして新しいアラートを設定します。

構成を完了し、[アラート アクション] ドロップダウン メニューから [Pool Down] を選択します。





イベントがトリガされると、対応するアラートが Slack チャネルに表示されます。構成されたアラートのログは、 [運用] > [アラート][アラート アクション] タブに表示されます。


注:

ControlScript の実行中にエラーが発生した場合も、同じ場所に表示されます。

REST API を使用した WebHook の構成

NSX Advanced Load Balancer REST API を使用した WebHook の構成の詳細については、WebHook API の説明を参照してください。