本主题介绍如何将 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_url 和 slack_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。