如何将N9e配置为电话告警,实现故障电话语音通知?

摘要:# 电话告警配置指南 > 通过夜莺配置电话告警,实现 P1 级故障的语音通知 ## 目录 - [一、概述](#一概述) - [二、夜莺电话告警配置](#二夜莺电话告警配置) - [三、API 电话告警配置](#三api
# 电话告警配置指南 > 通过夜莺配置电话告警,实现 P1 级故障的语音通知 --- ## 目录 - [一、概述](#一概述) - [二、夜莺电话告警配置](#二夜莺电话告警配置) - [三、API 电话告警配置](#三api-电话告警配置) - [四、测试数据示例](#四测试数据示例) - [五、响应格式](#五响应格式) --- ## 一、概述 ### 1.1 告警方式 电话告警目前主要通过**夜莺**配置使用,如有需要也可以直接使用相关接口。 ### 1.2 告警号码 目前告警使用固定号码,**建议将其加入手机通讯录**,防止骚扰拦截以及便于识别: | 告警号码 | |---------| | `02164410976` | | `057156354604` | --- ## 二、夜莺电话告警配置 ### 2.1 创建通知规则 登录夜莺后,通过如下菜单新建通知规则: ``` 告警 → 通知 → 通知规则 → 新建 ``` **配置项说明**: | 配置项 | 值 | |--------|-----| | **通知媒介** | Phone Call Alivoice | | **消息模板** | Phone Call | ### 2.2 被通知人配置 支持两种方式添加被通知人: | 方式 | 说明 | |------|------| | **接收人** | 直接选择夜莺用户(需要在夜莺登记电话号码) | | **其它手机号码** | 直接填入手机号码,多个号码使用英文逗号隔开 | ### 2.3 应用通知规则 可以将通知规则应用于: - 具体的**告警规则** - **订阅规则** --- ## 三、API 电话告警配置 ### 3.1 Endpoint ``` http://voice-alarm.example.com/alert/alivoice ``` ### 3.2 接口支持多种方式指定电话号码 #### 方式1:URL 参数 ```bash curl -X POST 'http://voice-alarm.example.com/alert/alivoice?phone=18867121234,+8618867125678,8618867121111' \ -H "Content-Type: application/json" \ -d @test-alivoice.json ``` #### 方式2:JSON Body 中的 phone_numbers ```bash curl -X POST 'http://voice-alarm.example.com/alert/alivoice' \ -H "Content-Type: application/json" \ -d @test-alivoice.json ``` #### 方式3:告警标签中的 labels.call ```bash curl -X POST 'http://voice-alarm.example.com/alert/alivoice' \ -H "Content-Type: application/json" \ -d '{ "alerts": [ { "status": "firing", "labels": { "alertname": "HighCPUUsage", "severity": "critical", "call": "18867121234,+8618867125678" }, "annotations": { "description": "CPU使用率超过90%" } } ] }' ``` ### 3.3 支持的电话号码格式 | 格式 | 示例 | 说明 | |------|------|------| | 11位中国手机号 | `18888888888` | 标准格式 | | 国际格式 | `+8618888888888` | 带国际区号 | | 13位格式 | `8618888888888` | 不带 + 号 | > 服务会自动将所有格式标准化为 11 位中国手机号码 --- ## 四、测试数据示例 ### 4.1 基础 test.json ```json { "alerts": [ { "status": "firing", "labels": { "alertname": "HighCPUUsage", // 必填 "severity": "critical" // 可选 }, "annotations": { "description": "实例 i-1234567890abcdef 的CPU使用率超过90%" // 必填 }, "startsAt": "2024-12-11T08:30:00Z", // 可选,默认为当前时间 "endsAt": "2024-12-11T08:45:00Z" // 可选 } ] } ``` ### 4.2 高级 test-alivoice.json(所有电话号码) ```json { "alerts": [ { "status": "firing", "labels": { "alertname": "HighCPUUsage", "severity": "critical", "call": "18867121057,+8619858152502" // 标签中的电话号码 }, "annotations": { "description": "实例 i-1234567890abcdef 的CPU使用率超过90%" }, "startsAt": "2024-12-11T08:30:00Z" } ], "phone_numbers": [ // 兜底/公共电话号码 "18867121059", "+8619858152503", "8618867121060" ] } ``` ### 4.3 必填字段说明 | 字段 | 是否必填 | 说明 | |------|---------|------| | `alerts[].labels.alertname` | **必填** | 告警名称 | | `alerts[].annotations.description` | **必填** | 告警描述,会转为语音播报 | | `alerts[].labels.severity` | 可选 | 告警级别 | | `alerts[].startsAt` | 可选 | 告警开始时间,默认当前时间 | | `alerts[].endsAt` | 可选 | 告警结束时间 | | `phone_numbers` | 可选 | 公共电话号码列表 | | `alerts[].labels.call` | 可选 | 单条告警的电话号码 | --- ## 五、响应格式 ### 5.1 成功响应 ```json { "status": "ok", "sent": 3, "phones": ["18867121234", "18867125678", "18867121111"] } ``` ### 5.2 部分成功响应 ```json { "status": "partial", "success": 2, "failed": 1, "errors": ["phone 18867121111: 号码无效"] } ``` ### 5.3 错误响应 ```json { "status": "error", "message": "所有语音通话失败", "errors": ["phone 18867121234: API错误", "phone 18867125678: 凭证无效"] } ``` --- ## 六、最佳实践 | 场景 | 建议 | |------|------| | **P1 告警** | 配置电话通知,确保关键故障及时响应 | | **多人通知** | 使用 `phone_numbers` 配置多个号码 | | **告警分级** | 仅 P1 级告警使用电话,P2/P3 使用 Lark 卡片 | | **号码维护** | 在夜莺系统中维护用户电话,便于统一管理 | | **测试验证** | 部署后使用测试 JSON 验证配置是否生效 | --- ## 七、架构图 ``` ┌─────────────────────────────────────────────────────────────┐ │ 电话告警架构 │ ├─────────────────────────────────────────────────────────────┤ │ │ │ ┌─────────────┐ ┌─────────────┐ │ │ │ Prometheus │────────►│ 夜莺 │ │ │ │ 告警规则 │ │ Alertmanager│ │ │ └─────────────┘ └──────┬──────┘ │ │ │ │ │ ▼ │ │ ┌─────────────┐ │ │ │ 通知规则 │ │ │ │ Phone Call │ │ │ └──────┬──────┘ │ │ │ │ │ ▼ │ │ ┌─────────────────────────────────────────────────────┐ │ │ │ voice-alarm.example.com │ │ │ │ /alert/alivoice │ │ │ └─────────────────────────┬───────────────────────────┘ │ │ │ │ │ ▼ │ │ ┌─────────────┐ │ │ │ 阿里云语音 │ │ │ │ 服务 │ │ │ └──────┬──────┘ │ │ │ │ │ ┌──────────────┼──────────────┐ │ │ ▼ ▼ ▼ │ │ ┌────────┐ ┌────────┐ ┌────────┐ │ │ │ 手机1 │ │ 手机2 │ │ 手机3 │ │ │ └────────┘ └────────┘ └────────┘ │ │ │ └─────────────────────────────────────────────────────────────┘ ```