通过 webhook 的方式将夜莺(Nightingale / n9e)或 Flashcat 告警事件推送到 Flashduty。当告警触发时,向 Flashduty 发送触发事件,当告警恢复时,向 Flashduty 发送恢复事件。在夜莺/Flashcat 的 v8.0.0-beta.7 版本之后(含 beta.7),可以直接在告警通知规则中配置协作空间,不再需要使用路由规则。使用限制#
在夜莺#
您必须拥有修改 系统配置=>全局通知 或 告警管理=>告警规则 的权限。
您的夜莺 server 必须能够访问域名 api.flascat.cloud,将告警推送到外网。
支持版本#
操作步骤#
在 Flashduty#
您可通过以下2种方式,获取一个集成推送地址,任选其一即可。使用专属集成#
当您不需要将告警事件路由到不同的协作空间,优先选择此方式,更简单。展开
1.
进入 Flashduty 控制台,选择 协作空间,进入某个空间的详情页面
2.
选择 集成数据 tab,点击 添加一个集成,进入添加集成页面
3.
选择 夜莺/Flashcat 集成,点击 保存,生成卡片。
4.
点击生成的卡片,可以查看到 推送地址,复制备用,完成。
5.
(可选)点击生成的卡片,点击 编辑 按钮,选择 控制台地址,输入夜莺控制台地址(仅域名部分),Flashduty 会为新告警生成一个夜莺详情跳转链接。
使用共享集成#
当您需要根据告警事件的 Payload 信息,将告警路由到不同的协作空间,优先选择此方式。展开
1.
进入 Flashduty 控制台,选择 集成中心=>告警事件,进入集成选择页面。
2.
控制台地址:(可选)输入夜莺控制台地址(仅域名部分),Flashduty 会为新告警生成一个夜莺详情跳转链接。
3.
配置默认路由,并选择对应的协作空间(集成创建后可以前往 路由
进行更多路由规则的配置)。
4.
点击 保存 后,复制当前页面的新生成的 推送地址 备用。
在夜莺/Flashcat#
在夜莺/Flashcat v8.0.0-beta.7 + 版本中配置 #
在新版本中,虽然您可以直接在告警通知规则中配置协作空间,但您仍然需要在 Flashduty 中创建协作空间并配置分派策略等。步骤 1:添加通知媒介#
1.
登录您的 n9e 控制台,选择 告警管理 > 通知媒介,并点击新增。
2.
填写媒介名称和标识,选择 FlashDuty 类型,URL
填写 Flashduty 的 推送地址
。

步骤 2:配置通知规则#
1.
登录您的 n9e 控制台,选择 告警管理 > 通知规则,并点击新增或编辑已有的告警规则。
3.
在通知配置中选择上一步添加的 FlashDuty
通知媒介。
4.
选择通过此规则生成的告警应发送到的协作空间(协作空间需提前在 Flashduty 中创建),其他按需选择。 
步骤 3:告警规则中选择通知规则#
1.
登录您的 n9e 控制台,选择 告警管理 > 告警规则,并点击新增或编辑已有的告警规则。
2.
在通知配置中选择上一步添加的 FlashDuty
通知规则,其他按需选择。

在夜莺/Flashcat v5.5~v8.0.0-beta.6 版本中配置 #
方式 1:按策略配置#
批量选择告警规则并配置 webhook。
1.
登录您的 n9e 控制台,选择 告警管理 > 告警规则,进入告警规则列表页面
2.
批量选中您期望导入的告警规则,右上角选择批量更新告警规则
3.
在弹窗中选择“回调地址”字段,新增输入框中填写集成的推送地址,如下图所示:

4.
回到集成列表,如果展示了最新事件时间,说明配置成功且收到事件
方式 2:全局配置#
夜莺支持在页面和配置文件中配置全局 webhook 地址,推送所有的告警事件。以下两种方式二选一即可。
V6 及以上版本#
3.
如下图所示,启用一个新的 webhook,URL
部分填写集成的推送地址

V5.4~5.15 版本#
2.
找到并打开配置文件,一般为 etc/server.conf
3.
更改 Alerting 配置部分,写入 Webhook 配置,如下[Alerting.Webhook]
Enable = true
Url = "{api_host}/event/push/alert/n9e?integration_key=$integration_key"
BasicAuthUser = ""
BasicAuthPass = ""
Timeout = "5s"
Headers = ["Content-Type", "application/json", "X-From", "N9E"]
您需要替换 Url 对应的参数值为集成的推送地址。 6.
回到集成列表,如果展示了最新事件时间,说明配置成功且收到事件
严重程度映射关系#
夜莺/Flashcat 到 Flashduty 告警等级映射关系:n9e | Flashduty | 状态 |
---|
1 | Critical | 严重 |
2 | Warning | 警告 |
3 | Info | 提醒 |
常见问题#
为什么在Flashduty没有收到告警?
在 Flashduty#
1.
查看集成是否展示了 最新事件时间?如果没有,代表Flashduty没有收到推送,直接优先排 查夜莺部分。
2.
如果您使用的是 共享集成,优先确认您是否配置了 路由规则。不设置路由规则,系统会直接拒绝新的推送,因为没有协作空间可以承接您的告警。这种情况下,直接配置路由规则到您期望的空间即可。
在夜莺/Flashcat#
1.
首先确认夜莺测是否产生了新的告警:前往 告警管理=>历史告警,查看配置完 webhook 之后,是否产生了新的告警,注意新的告警状态必须是 Triggered。如没有产生新告警,请继续等待新告警触发后重新验证。
2.
找到告警之后,进到告警详情,查看 回调地址 部分。验证真实回调地址是否和集成推送地址完全匹配。如果不匹配,请修改 告警规则后重新验证。
3.
如果匹配,则需要登录到夜莺 server 并确认其可以访问外网 api.flashcat.cloud 域名。如果不可以,您首先需要为 server 开通外网,或单独针对 Flashduty 的域名开通外网访问。
4.
如果网络无问题,您需要继续排查server,查找是否存在相关的错误日志。
如果以上步骤执行之后,仍然没有查询到问题根因,请直接联系我们。