本主题介绍如何将 NSX Advanced Load Balancer 与 Slack 集成以监控警示。

Slack 是一个基于云的工具,可提供类似 IRC 的功能:持久聊天室、私人群组、私信等。WebHook 是一种通过 HTTP Post 消息提供事件通知的功能。与 WebHook 集成的应用程序会在满足某些条件时向 URL 发布消息。可以使用 ControlScript 将 NSX Advanced Load Balancer 配置为支持 WebHook 功能。

配置

以下是将 Slack 与 NSX Advanced Load Balancer 集成以监控警示的两种方法:

  • 使用 Slack 电子邮件应用程序

  • 使用 WebHook ControlScript

使用 Slack 电子邮件应用程序进行配置

在 Slack 电子邮件应用程序中选择必须为其发布警示的通道。Slack 电子邮件应用程序提供唯一的电子邮件 ID。在 NSX Advanced Load Balancer 用户界面的“警示操作”中设置此电子邮件 ID。有关配置警示操作的详细信息,请参阅配置 NSX Advanced Load Balancer 以向 WebHook URL 发送警示

有关向 Slack 发送电子邮件的详细信息,请参阅向 Slack 发送电子邮件

使用适用于 WebHook 的 NSX Advanced Load Balancer ControlScript 进行配置

使用适用于 WebHook 的 NSX Advanced Load Balancer ControlScript 包括以下两个主要步骤:

  • 获取 WebHook URL

  • 配置 NSX Advanced Load Balancer 以向配置的 WebHook URL 发送警示

获取 WebHook URL

可使用 ControlScript(通常为 Python 脚本)作为操作警示。按照下面提到的步骤获取 WebHook URL:

  • 以管理员身份登录 Slack URL

  • 选择需要为其配置警示的通道。

单击添加入站 Webhook 集成按钮。



从下一个窗口中复制唯一的 URL。此 URL 将在 ControlScript 中使用。

配置 NSX Advanced Load Balancer 以向 WebHook URL 发送警示

导航到操作 > 警示 > 警示操作,然后选择创建选项。

提供操作名称,选择警示级别,然后创建新的 ControlScript。在下面提到的示例中,将创建一个名为 Pool Down 的新 ControlScript。

使用在上一步中创建的 WebHook URL 作为 ControlScript 的内容。

以下是在实验中测试的示例 URL。根据要求更改 webhook_urlslack_data。将 webhook_url 设置为在 Slack Webhook URL 中创建 WebHook 时 Slack 提供的 webhook_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