このトピックでは、アラートをモニターするための、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_url と slack_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 の説明を参照してください。