夜莺 Flashcat 集成指引
title: "夜莺/FlahCat集成"
description: "通过 webhook 的方式将夜莺(Nightingale / n9e)或 Flashcat 告警事件推送到 Flashduty。当告警触发时,向 Flashduty 发送触发事件,当告警恢复时,向 Flashduty 发送恢复事件。"
date: "2024-05-11T10:00:00+08:00"
url: "https://docs.flashcat.cloud/zh/flashduty/nightingale-integration-guide"
通过 webhook 的方式将夜莺(Nightingale / n9e)或 Flashcat 告警事件推送到 Flashduty。当告警触发时,向 Flashduty 发送触发事件,当告警恢复时,向 Flashduty 发送恢复事件。
使用限制
在夜莺
- 您必须拥有修改 系统配置=>全局通知 或 告警管理=>告警规则 的权限。
- 您的夜莺 server 必须能够访问域名 api.flascat.cloud,将告警推送到外网。
支持版本
本文适配 夜莺 V5 和 V6 版本。
操作步骤
在 Flashduty
您可通过以下2种方式,获取一个集成推送地址,任选其一即可。
使用专属集成
当您不需要将告警事件路由到不同的协作空间,优先选择此方式,更简单。
展开
- 进入 Flashduty 控制台,选择 协作空间,进入某个空间的详情页面
- 选择 集成数据 tab,点击 添加一个集成,进入添加集成页面
- 选择 夜莺/Flashcat 集成,点击 保存,生成卡片。
- 点击生成的卡片,可以查看到 推送地址,复制备用,完成。
- (可选)点击生成的卡片,点击 编辑 按钮,选择 控制台地址,输入夜莺控制台地址(仅域名部分),Flashduty 会为新告警生成一个夜莺详情跳转链接。
使用共享集成
当您需要根据告警事件的 Payload 信息,将告警路由到不同的协作空间,优先选择此方式。
展开
- 进入 Flashduty 控制台,选择 集成中心=>告警事件,进入集成选择页面。
- 选择 夜莺/Flashcat 集成:
- 集成名称:为当前集成定义一个名称。
- 控制台地址:(可选)输入夜莺控制台地址(仅域名部分),Flashduty 会为新告警生成一个夜莺详情跳转链接。
- 点击 保存 后,复制当前页面的新生成的 推送地址 备用。
- 点击 创建路由,为集成配置路由规则。您可以按条件匹配不同的告警到不同的协作空间,也可以直接设置默认协作空间作为兜底,后续再按需调整。
- 完成。
在夜莺/Flashcat
两种配置方式任选其一。
方式 1:按策略配置
批量选择告警规则并配置 webhook。
- 登录您的 n9e 控制台,选择 告警管理 > 告警规则,进入告警规则列表页面
- 批量选中您期望导入的告警规则,右上角选择批量更新告警规则
- 在弹窗中选择“回调地址”字段,新增输入框中填写集成的推送地址,如下图所示:
![drawing](https://download.flashcat.cloud/saas-n9e-rule.png)
- 回到集成列表,如果展示了最新事件时间,说明配置成功且收到事件
- 完成
方式 2:全局配置
V6 及以上版本
- 登录您的 n9e 控制台
- 进入
系统配置-通知设置-回调地址
页面 - 如下图所示,启用一个新的 webhook,
URL
部分填写集成的推送地址
![drawing](https://download.flashcat.cloud/flashduty/integration/n9e/n9e_v6_webhook.png)
- 完成
V5.4~5.15 版本
登录您的 n9e server 实例
找到并打开配置文件,一般为 etc/server.conf
更改 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 对应的参数值为集成的推送地址。
保存配置文件
重启 n9e server,使配置生效
回到集成列表,如果展示了最新事件时间,说明配置成功且收到事件
完成
严重程度映射关系
夜莺/Flashcat 到 Flashduty 告警等级映射关系:
n9e | Flashduty | 状态 |
---|---|---|
1 | Critical | 严重 |
2 | Warning | 警告 |
3 | Info | 提醒 |
常见问题
为什么在Flashduty没有收到告警?
在 Flashduty
- 查看集成是否展示了 最新事件时间?如果没有,代表Flashduty没有收到推送,直接优先排查夜莺部分。
- 如果您使用的是 共享集成,优先确认您是否配置了 路由规则。不设置路由规则,系统会直接拒绝新的推送,因为没有协作空间可以承接您的告警。这种情况下,直接配置路由规则到您期望的空间即可。
在夜莺/Flashcat
- 首先确认夜莺测是否产生了新的告警:前往 告警管理=>历史告警,查看配置完 webhook 之后,是否产生了新的告警,注意新的告警状态必须是 Triggered。如没有产生新告警,请继续等待新告警触发后重新验证。
- 找到告警之后,进到告警详情,查看 回调地址 部分。验证真实回调地址是否和集成推送地址完全匹配。如果不匹配,请修改 告警规则后重新验证。
- 如果匹配,则需要登录到夜莺 server 并确认其可以访问外网 api.flashcat.cloud 域名。如果不可以,您首先需要为 server 开通外网,或单独针对 Flashduty 的域名开通外网访问。
- 如果网络无问题,您需要继续排查server,查找是否存在相关的错误日志。
如果以上步骤执行之后,仍然没有查询到问题根因,请直接联系我们。