腾讯云短信

通过腾讯云短信服务(SendSms)把告警发送成短信,新人可按步骤直接完成配置。

概述

腾讯云短信通知媒介利用腾讯云 SMS · SendSms API,把告警以普通短信的形式下发到手机。常作为邮件/IM 的兜底通道。

  • 适用场景:必须兜底通知、不装 IM 的用户、值班人员换班提醒等。
  • 你需要准备:
    1. 已开通腾讯云短信 SMS 的账号;
    2. 腾讯云 SecretId / SecretKey(建议用 CAM 子账号,只授予 SMS 发送权限);
    3. SmsSdkAppId(短信应用 ID,SMS 控制台里创建);
    4. 已审核通过的 短信签名短信模板
  • 整个配置分三步:①在腾讯云控制台准备应用/签名/模板 → ②在夜莺新建腾讯云短信通知媒介 → ③用户填手机号、通知规则里选接收人

签名和模板需要工单审核(通常数小时到 1 个工作日),首次接入建议预留时间。

第一步:在腾讯云控制台准备资料

  1. 登录 腾讯云短信控制台
  2. 创建短信应用:进入 应用管理 → 创建应用,得到 SmsSdkAppId(一串数字)。
  3. 创建短信签名签名管理 → 创建签名,按引导填写企业/个人资质审核。
  4. 创建短信模板正文模板 → 创建正文模板
    • 模板类型选"通知类";
    • 关键:模板只能有一个变量 {1},因为夜莺预置的请求体里写的是 TemplateParamSet = ["{{$tpl.content}}"]——只传了一个值,对应 {1}
    • 把固定话术写在模板里,让 {1} 只放变化部分:
      您有一条 {1} 级别的告警,请及时处理
      
      然后到夜莺 → 消息模板 → 复制一份 Tencent SMS,把 content 字段改成你想填进 {1} 的内容。
    • 审核通过后拿到 TemplateId(数字 ID)。
  5. CAM 创建子账号,授予策略 QcloudSMSFullAccess(或自定义最小权限),记下 SecretId / SecretKey

第二步:在夜莺新建腾讯云短信通知媒介

  1. 登录夜莺 → 左侧菜单 通知 → 通知媒介

  2. 在左侧类型面板点击 腾讯云短信,进入新建页面(URL /notification-channels/add?ident=tx-sms)。

  3. 填写基础配置: 腾讯云短信基础配置

    字段 说明
    名称 例如 腾讯云短信
    联系方式 保持默认 Phone
    URL 保持默认 https://sms.tencentcloudapi.com
    请求方法 POST
  4. 请求头部分,除了常规的 Content-Type / Host,腾讯云还要求填鉴权相关字段:

    腾讯云短信请求头

    参数名 是否需要改
    Content-Type application/json 保持默认
    Host sms.tencentcloudapi.com 保持默认
    Secret_ID 你的 SecretId 需要改
    Secret_Key 你的 SecretKey 需要改
    Service sms 保持默认
    X-TC-Action SendSms 保持默认
    X-TC-Region 你的地域 需要改,例如 ap-guangzhou / ap-beijing,按短信应用所在地域填
    X-TC-Version 2021-01-11 保持默认

    Secret_ID / Secret_Key 不会明文发送:夜莺在发出请求前会用它们计算 TC3-HMAC-SHA256 签名,并从请求头中移除。

  5. 最后改"请求体",把占位符换成你的值:

    {
      "PhoneNumberSet": ["{{ $sendto }}"],
      "SignName": "需要改为实际的签名",
      "SmsSdkAppId": "需要改为实际的appid",
      "TemplateId": "需要改为实际的模板id",
      "TemplateParamSet": ["{{$tpl.content}}"]
    }
    
    字段 说明
    PhoneNumberSet ["{{ $sendto }}"] 保持默认——发送时会替换成接收人的手机号;国内号码要求 E.164 格式,即 +86138XXXXXXXX(见 Q4 说明)
    SignName 你的短信签名 第一步审核通过的签名名称,一字不差
    SmsSdkAppId 你的应用 ID 第一步创建的数字 ID
    TemplateId 你的模板 ID 第一步审核通过的数字 ID
    TemplateParamSet ["{{$tpl.content}}"] 按模板变量顺序对应一个数组——夜莺默认只传一个值,因此你的腾讯云短信模板只能有一个 {1}{{$tpl.content}} 来自系统自带的 Tencent SMS 消息模板,默认渲染为 级别状态: S<级别> {Triggered/Recovered}规则名称: <规则名>
  6. 点击 保存

第三步:用户配置手机号 & 通知规则

  1. 进入 人员组织 → 用户管理,给目标用户填写 手机号

    国内号码两种填法都可以:

    • 直接 11 位 138XXXXXXXX(推荐),并在请求体 PhoneNumberSet 里把 {{ $sendto }} 改成 "+86{{ $sendto }}"
    • 或者直接存完整的 +86138XXXXXXXX,请求体保持默认。
  2. 进入 通知 → 通知规则 → 新增

    • 通知媒介:选腾讯云短信;
    • 消息模板:选系统自带的 Tencent SMS——它的 content 字段默认渲染为 级别状态: S<级别> {Triggered/Recovered}规则名称: <规则名>,例如 级别状态: S1 Triggered规则名称: CPU使用率超阈值。配合默认请求体 TemplateParamSet = ["{{$tpl.content}}"],这串文本会作为 {1} 的值发给腾讯云;
    • 注意短信整体长度按 70 字符/条计费,告警规则名 + 级别状态过长时可以复制一份 Tencent SMS 模板改短;
    • 接收人 / 接收团队:选目标用户;
    • 适用级别 / 适用时段:按需过滤;
    • 保存。
  3. 点击"通知测试",手机应在数秒内收到一条 【签名】您有一条告警 xxx 的短信。

计费与合规

  • 按成功发送条数计费,每 70 字/条。详见 腾讯云 SMS 定价
  • 每个手机号有频控(默认 1 分钟 1 条,同签名+模板 1 天 10 条),通知类模板可工单申请调高。
  • 实际发送内容必须和模板审核内容完全一致,否则会被拦截(FailedOperation.InsertAuthFail / FailedOperation.TemplateIncorrectOrUnapproved)。

常见问题

Q1:AuthFailure.SignatureFailure

A:Secret_Key 错了或本机时间漂移过大。确保服务器时间和 NTP 同步。

Q2:FailedOperation.TemplateIncorrectOrUnapproved / 模板未审核?

A:

  • TemplateId 填错;
  • 模板没审核通过;
  • TemplateParamSet 数组长度与模板变量数不一致。

Q3:FailedOperation.SignatureIncorrectOrUnapproved / 签名错误?

A:SignName 与审核通过的签名不完全一致(注意空格、括号、中英文字符)。

Q4:InvalidParameterValue.InvalidPhoneNumber

A:腾讯云要求手机号为 E.164 格式(+86...)。两种做法:

  • 用户的"手机号"字段本身存成 +86138XXXXXXXX
  • 或在请求体里把 {{ $sendto }} 改成 +86{{ $sendto }} 自动拼接。

Q5:FailedOperation.InsufficientBalance

A:账户余额不足,充值并在控制台设置余额告警。

Q6:LimitExceeded.PhoneNumberCountLimit 单次号码数超限?

A:SendSms 单次最多 200 个号码。夜莺默认是按接收人循环调用,一人一次——如果要一次请求打包多个号码,可以把请求体改成:

{
  "PhoneNumberSet": {{batchContactsJsonMarshal $sendtos}},
  "SignName": "...",
  "SmsSdkAppId": "...",
  "TemplateId": "...",
  "TemplateParamSet": ["{{$tpl.content}}"]
}

注意:这种模式下所有号码收到的短信内容完全一致。

Q7:国际短信?

A:国际号码直接以国家码拼接即可(如 +6587654321);但需要在腾讯云控制台单独开通国际短信,并使用国际短信模板。

参考资料

更新时间 2026-04-25

快猫星云 联系方式 快猫星云 联系方式
快猫星云 联系方式
快猫星云 联系方式
快猫星云 联系方式
快猫星云