前言
之前搭建了uptime kuma进行服务故障监控,我之前是使用邮箱服务来进行故障通知的,但是我邮箱收信不是实时的,经常会有很长时间的延迟,所以干脆直接使用阿里云SMS的短信服务来向我发送短信进行服务故障的通知
申请服务
首先我们准备好必要的东西:已经跑起来的uptime-kuma,一个阿里云账号(需要有账号余额)。
我们首先先申请一下短信服务(不然根本发送不了)
首先我们先登陆阿里云的官网,找到短信服务(直接右上角搜索短信服务即可)。
然后点击短信控制台(当然也可以直接点这个链接)(注意!假如没有开通这个短信服务的话需要在阿里开通一下)
对于没有备案的域名的话我们需要额外做以下的操作
假如没有备案了的域名,我们无法通过阿里的短信服务将短信发送给测试手机号列表之外的人,当然我们一般使用uptime kuma也只是通知自己服务的状态而已。
我们点击api发送测试的绑定测试的手机号,绑定完之后我们就能够向这个绑定过的手机发送短信了
接下来我们就要来申请一个模板,模板便是短信开头的【】括号内的内容
然后我们点击左侧的国内消息,然后再点击签名管理,点击添加签名
填写需求的信息(2024年之后好像还增加了资质管理,按照阿里云的说明进行填写并上传相关的信息通过审核)(一般好像是一两个小时就可以了)
按照需求填写相应的签名信息,如果只跟自己发送短信,选择测试或者学习,填写应用场景以及其说明,等待一到两个小时即可。
接下来申请完签名之后我们需要申请模板,按照uptime kuma得要求,我们需要签名中包含以下的变量:${name} -通知的服务的名称 ${time} -通知的时间 ${status}-服务的状态 -${msg} -服务报错的信息,我把我的模板复制在下方供大家参考
监测到您的服务${name} 在时间${time}状态变为 ${status},监测的结果为${msg}
注意一下,创建模板的时候勾选通知类别短信,签名选择刚刚通过的签名,应用场景建议填写你的uptime kuma的地址,下面要注意,一定要注意!在场景说明的地方建议填写好能访问你uptime kuma管理面板的账号密码(方便人家进行核实,你可以临时将密码改简单点然后人家检查完再改回去),不然非常容易审核失败(我被连打回来5次)。
申请完之后就可以发送信息了,注意一下费用问题,一般是5分钱一条,但是超过一定字数一条会被算作两条。
配置AK与SK
接下来就是让uptime -kuma进行调用,我们先需要配置阿里云子账户(为了安全,避免一个ak与sk泄露导致整个账号的资源被盗用)
我们在阿里云的控制台,鼠标移动到账号头像,然后点击AccessKey管理(AK)
弹出一个窗口,选择开始使用子用户AccessKey,
然后创建用户,勾选OpenAPI访问,登陆名称与显示名称自己填写即可
创建完成之后一定要复制显示出来的AccessKey ID与AccessKey Secret这两个对应的密码吗,这个只显示一遍!
添加完用户回到用户列表,然后点击添加权限
授权的范围选择整个云账号(SMS服务并未接入资源组服务器,无法指定资源组)
然后权限策列名称搜索sms,然后赋予AliyunDysmsFullAccess权限,然后点确定配置完成
uptime kuma接入服务
前往 uptime kuma的设置界面,选中通知》设置通知,选择aliyunSMS服务,然后填写如下信息
显示名称:只是个名字而已
ACCESSkey ID:即刚刚创建子账号相应的代码
AccessKey 密码:即刚刚创建的子账号的AccessKey Secret
PhoneNumbers:要发送短信的目标手机号
TemplateCode:模板的编号,可以在阿里云的短信控制台获取
SignName:填写你的申请的签名即可。
接下来保存并测试查看短信是否可以正常发送
额外的提示:短信发送的时间好像是UTC时间,可能跟我们的时间有8个小时的偏差。