Grafana OnCall的ServiceNow集成
注意
此集成仅适用于Grafana Cloud。
将ServiceNow与Grafana OnCall集成以实现双向功能,可基于Grafana OnCall警报组自动在ServiceNow中创建和更新事件,反之亦然。无论您的警报来自ServiceNow还是其他集成,例如Alertmanager或Grafana警报,您都可以直接从ServiceNow管理更新和状态更改。
使用此集成来自动化以下流程
- 在OnCall中创建警报组时,在ServiceNow中创建事件。
- 在OnCall中更改警报组状态时,在ServiceNow中更新事件状态。
- 在ServiceNow中创建事件时,在OnCall中创建警报组。
- 在ServiceNow中更改事件状态时,在OnCall中更新警报组状态。
开始之前
在配置集成之前,请确保您或您的ServiceNow管理员已为Grafana OnCall集成创建了一个特定的服务帐户。
按照以下步骤为Grafana OnCall创建ServiceNow用户
- 在ServiceNow中,导航到 用户管理 > 用户 并点击 新建。
- 填写以下详细信息
- 用户名:
grafana-oncall
- 名字:
Grafana OnCall
- 激活: ✔
- 仅提供Web服务访问: ✔
- 用户名:
- 创建用户后,使用设置密码按钮生成密码。请安全存储密码以备后用。
- 导航到角色选项卡,并将以下角色授予用户
itil
(用于事件创建和更新)personalize_choices
(获取可用事件状态列表)
配置ServiceNow集成
创建集成
- 在Grafana OnCall的集成选项卡中,点击+ 新集成。
- 从可用集成列表中选择ServiceNow。
- 为集成输入一个名称和描述。
- 输入ServiceNow凭据(Grafana OnCall用户的实例URL、用户名和密码)并验证连接。
- 确保启用创建默认 outgoing webhooks以在Grafana OnCall中创建必要的webhooks以向ServiceNow发送警报。
- 点击创建集成。
映射事件状态
将ServiceNow事件状态映射到OnCall警报组状态。
示例
触发 -> 新
确认 -> 进行中
已解决 -> 已解决
静音 -> 未选择
生成业务规则脚本
生成ServiceNow业务规则脚本,以使您的ServiceNow实例能够向Grafana OnCall发送更新。
注意
关闭对话框后,您将无法再次查看脚本,但可以在集成设置中随时重新生成它。
- 生成新的ServiceNow业务规则脚本并将其复制到剪贴板。
- 在ServiceNow中,导航到系统定义 > 业务规则并点击新建。
- 填写以下详细信息
- 名称:
grafana-oncall
- 表:
事件
- 激活: ✔
- 高级:✔
- 何时运行 > 何时:
before
- 何时运行 > 插入:✔
- 何时运行 > 更新:✔
- 高级 > 脚本:粘贴生成的脚本
- 名称:
- 点击提交以保存业务规则。
在Grafana OnCall中,点击继续以完成集成设置。
测试集成
- 在ServiceNow中创建一个新的事件。
- 验证在Grafana OnCall中创建了一个新的警报组。
- 在Grafana OnCall中确认警报组,并验证在ServiceNow中事件状态已更新。
- 在ServiceNow中解决事件,并验证在Grafana OnCall中警报组状态已更新。
连接其他集成
您可以将其他集成(如Alertmanager、Grafana Alerting等)连接到ServiceNow集成以实现统一的工作流程。连接后,Grafana OnCall将来自连接集成的警报发送到ServiceNow,并根据ServiceNow中事件状态的变化更新连接集成上的警报组。连接的集成使用与它们连接的ServiceNow集成相同的凭据和outgoing webhooks。
要连接其他集成
- 导航到现有ServiceNow集成的出站选项卡。
- 使用从其他集成发送数据部分连接其他集成。
- 如果您想从ServiceNow更新连接集成的警报组,请启用backsync选项。如果禁用,Grafana OnCall将仅向ServiceNow发送警报,但不会接收更新。
- 通过为连接的集成创建演示警报来测试连接。
- 验证在ServiceNow中创建了一个事件。
- 验证ServiceNow中事件状态的变化反映在Grafana OnCall中,反之亦然。
高级使用
通过编辑集成出站选项卡上的出站webhooks来根据您的需求自定义集成行为。
自定义事件字段
您可以在ServiceNow事件上设置自定义字段。为此,编辑集成出站选项卡上的创建的警报组webhook。
示例:根据警报组标签设置“紧急程度”字段,在数据模板中添加提供的JSON。
{
...,
"urgency": "{{ alert_group.labels.urgency }}"
}
更多信息,请参阅外出 webhook 模板和警报组标签。