如何将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 │ │
│ └────────┘ └────────┘ └────────┘ │
│ │
└─────────────────────────────────────────────────────────────┘
```
