如何在Opsgenie中配置规则实现不同团队接收对应类型告警
Opsgenie按团队分发Prometheus告警实现方案
完全可以实现需求,核心逻辑是给告警打分类标签匹配Opsgenie路由策略,将不同类型告警分发到对应团队,具体操作步骤如下:
步骤1:Prometheus侧给告警打归属团队标签
你需要先在Prometheus告警规则中给两类告警添加固定的归属标签,方便后续Opsgenie做路由匹配,推荐直接加team标签区分:
- 基础设施类告警统一添加
team: devops标签 - 应用类告警统一添加
team: app-team标签
示例告警规则配置如下:
groups: # 基础设施类告警组 - name: infrastructure_alerts rules: - alert: NodeHighCPUUsage expr: 100 - (avg by(instance) (irate(node_cpu_seconds_total{mode="idle"}[5m])) * 100) > 80 for: 5m labels: severity: critical team: devops # 标记归属devops团队 annotations: summary: "节点 {{ $labels.instance }} CPU使用率超过80%" # 应用类告警组 - name: application_alerts rules: - alert: AppHighErrorRate expr: sum(rate(http_requests_total{status=~"5.."}[5m])) / sum(rate(http_requests_total[5m])) > 0.05 for: 2m labels: severity: critical team: app-team # 标记归属应用团队 annotations: summary: "应用 {{ $labels.app_name }} 5xx错误率超过5%"
步骤2:Opsgenie侧配置路由分发规则
完成Prometheus配置后,在Opsgenie中按如下步骤配置路由:
- 提前在Opsgenie创建
devops和应用团队两个团队,分别配置好各自的通知渠道(邮件、短信、企业IM、电话等) - 进入Opsgenie控制台的
Alert Policies->Routing Rules页面,按优先级从高到低新建两条路由规则:- 规则1:匹配条件设置为
标签 team 等于 devops,执行动作为 将告警转发给devops团队 - 规则2:匹配条件设置为
标签 team 等于 app-team,执行动作为 将告警转发给应用团队
- 规则1:匹配条件设置为
- (可选)配置兜底默认路由:未匹配到任何
team标签的未知告警,统一转发给devops团队或公共告警池,避免告警遗漏
可选替代方案
如果暂时不方便修改Prometheus告警规则打标签,也可以直接在Opsgenie路由规则中通过告警名称、告警规则组名、关联资源类型等现有字段做匹配分发,不过提前打归属标签的方案规则更清晰,后续维护成本更低,更推荐使用。
内容的提问来源于stack exchange,提问作者oscar
相关产品推荐
相关产品推荐

