配置 Slack 通知

配置 Slack 通知

本教程演示如何配置 Slack 通知及添加频道,以便接收告警策略的通知。

准备工作

您需要准备一个可用的 Slack 工作区。

获取 Slack OAuth 令牌 (Token)

首先,您需要创建一个 Slack 应用,以便发送通知到 Slack 频道。若想认证您的应用,则必须创建一个 OAuth 令牌。

  1. 登录 Slack 以创建应用。

  2. 在 Your Apps 页面,点击 Create New App。

  3. 在出现的对话框中,输入应用名称并为其选择一个 Slack 工作区。点击 Create App 继续。

  4. 在左侧导航栏中,选择 Features 下的 OAuth & Permissions。在 Auth & Permissions 页面,下滑到 Scopes,分别点击 Bot Token Scopes 和 User Token Scopes 下的 Add an OAuth Scope,两者都选择 chart:write 权限。

  5. 上滑到 OAuth Tokens & Redirect URLs,点击 Install to Workspace。授予该应用访问您工作区的权限,您可以在 OAuth Tokens for Your Team 下看到已创建的令牌。

在 KubeSphere 控制台上配置 Slack 通知

您必须在 KubeSphere 控制台提供 Slack 令牌用于认证,以便 KubeSphere 将通知发送至您的频道。

  1. 使用具有 platform-admin 角色的用户登录 Web 控制台。

  2. 点击左上角的平台管理,选择平台设置。

  3. 导航到通知管理下的通知配置,选择 Slack。

  4. 对于服务器设置下的 Slack 令牌,您可以选择使用 User OAuth Token 或者 Bot User OAuth Token 进行认证。如果使用 User OAuth Token,将由应用所有者往您的 Slack 频道发送通知;如果使用 Bot User OAuth Token,将由应用发送通知。

  5. 在接收频道设置下,输入您想要收取通知的频道,点击添加。

  6. 添加完成后,该频道将在已添加的频道下列出。您最多可以添加 20 个频道,所有已添加的频道都将能够收到告警通知。

    备注

    若想从列表中移除频道,请点击频道右侧的 × 图标。
  7. 点击确定。

  8. 勾选通知条件左侧的复选框即可设置通知条件。

    • 标签:告警策略的名称、级别或监控目标。您可以选择一个标签或者自定义标签。
    • 操作符:标签与值的匹配关系,包括包含值,不包含值,存在和不存在。
    • 值:标签对应的值。

      备注

      • 操作符包含值和不包含值需要添加一个或多个标签值。使用回车分隔多个值。
      • 操作符存在和不存在判断某个标签是否存在,无需设置标签值。

    您可以点击添加来添加多个通知条件,或点击通知条件右侧的 icon 来删除通知条件。

  9. 配置完成后,您可以点击右下角的发送测试信息进行验证。

  10. 在右上角,打开未启用开关来接收 Slack 通知,或者关闭已启用开关来停用 Slack 通知。

    备注

    • 通知条件设置后,接收人只会接受符合条件的通知。
    • 如果您更改了现有配置,则必须点击确定以应用更改。
  11. 若想由应用发送通知,请确保将其加入频道。请在 Slack 频道中输入 /invite @<app-name> 将应用加入至该频道。

接收 Slack 通知

配置 Slack 通知并添加频道后,您需要启用 KubeSphere 告警,并为工作负载或节点创建告警策略。告警触发后,列表中的全部频道都将能接收通知。

备注

  • 如果您更新了 Slack 通知配置,KubeSphere 将根据最新配置发送通知。

  • 默认情况下,KubeSphere 大约每 12 小时针对同一告警发送通知。告警重复间隔期主要由 kubesphere-monitoring-system 项目中 alertmanager-main 密钥的 repeat_interval 所控制。您可以按需自定义间隔期。

  • KubeSphere 拥有内置告警策略,在不设置任何自定义告警策略的情况下,只要内置告警策略被触发,您的 Slack 频道仍能接收通知。

通过邮件接收 KubeSphere 最新的技术博客与产品更新的通知


感谢您的反馈。如果您有关于如何使用 KubeSphere 的具体问题,请在 Slack 上提问。如果您想报告问题或提出改进建议,请在 GitHub 存储库中打开问题。