服务器电话告警配置:用脚本实现拨号通知

服务器电话告警配置的核心思路是:在服务器上运行一个检测脚本,当发现异常指标时,调用第三方语音接口拨打电话。
本文以 Linux 系统为例,用 Shell 脚本和 crontab 实现这一流程,零基础也能照着做。

先确定告警渠道和触发条件

电话告警本身不复杂,但需要先明确两件事:

  • 通过什么接口打电话:常见做法是使用支持 HTTP 请求的语音通知服务,脚本里用 curl 调用该接口的 URL,传入手机号和告警内容。具体接口地址和参数格式以你选择的服务商文档为准。
  • 什么情况触发:例如 CPU 负载超过阈值、磁盘使用率超过 90%、关键进程消失等。建议先用简单指标跑通流程,再逐步增加检测项。

注意:本文不推荐具体服务商,你需要自行准备一个可用的语音通知接口,并拿到调用所需的 URL 和参数。

服务器端准备工作

登录服务器后,先确认以下条件满足:

  • 系统已安装 curl,可用 curl --version 检查。
  • 有一个可写的脚本存放目录,例如 /opt/scripts/。
  • 服务器能访问外网,因为要调用外部 HTTP 接口。

创建目录并进入:

mkdir -p /opt/scripts
cd /opt/scripts

编写电话告警脚本

新建脚本文件 phone_alert.sh,内容示例如下:

#!/bin/bash

# 告警手机号,多个号码用逗号分隔
PHONE="13800000000"

# 语音接口地址,替换为你实际的服务商 URL
API_URL="https://example.com/voice/api"

# 检测磁盘使用率,超过 90% 则触发
THRESHOLD=90
USAGE=$(df / | awk 'NR==2 {print $5}' | sed 's/%//')

if [ "$USAGE" -gt "$THRESHOLD" ]; then
    MESSAGE="服务器磁盘使用率已达 ${USAGE}%,请及时处理"
    curl -s -X POST "$API_URL" \
        -d "phone=$PHONE" \
        -d "content=$MESSAGE"
    echo "$(date) 已触发电话告警:$MESSAGE" >> /var/log/phone_alert.log
fi

关键点说明:

  • df / 取根分区使用率,awk 和 sed 负责提取数字。
  • curl 的请求方式和参数名必须与服务商文档一致,上面只是示例格式。
  • 日志写入 /var/log/phone_alert.log,方便后续排查。

保存后赋予执行权限:

chmod +x /opt/scripts/phone_alert.sh

用 crontab 定时执行

编辑当前用户的定时任务:

crontab -e

加入一行,表示每 5 分钟检查一次:

*/5 * * * * /bin/bash /opt/scripts/phone_alert.sh >/dev/null 2>&1

保存退出。
查看任务是否生效:

crontab -l

避坑提醒:

  • crontab 环境变量少,脚本里尽量用绝对路径,例如 /bin/bash 而不是 bash。
  • 如果脚本依赖某些环境变量,在脚本开头手动 export。
  • 测试阶段可以把频率改为 * * * * * 每分钟执行,验证通过后再调回。

手动运行验证与排错

先手动执行脚本,观察输出和日志:

/bin/bash /opt/scripts/phone_alert.sh
cat /var/log/phone_alert.log

如果电话没有拨出,按以下顺序检查:

  1. 接口是否可达:用 curl -v 加上你的接口地址,看能否建立连接。
  2. 参数是否正确:对照服务商文档,检查手机号格式、参数名、请求方法。
  3. 权限与路径:确认脚本有执行权限,日志文件可写。
  4. crontab 是否执行:临时在脚本里加一行 echo test >> /tmp/cron_test.log,看定时任务有没有跑起来。

常见疑问

电话告警和短信告警能同时配置吗?
可以,在脚本里调用两个不同的接口即可,但要注意接口调用频率限制,避免触发服务商的流控。

脚本会不会重复拨打电话?
如果每 5 分钟检测一次且条件持续满足,可能会重复触发。可以在脚本里加入状态判断,例如记录上次告警时间,间隔一段时间内不重复发送。

没有外网访问权限怎么办?
电话告警依赖外部接口,服务器必须能访问外网。如果网络受限,需要先联系网络管理员开通对应域名的出站访问。

最后提醒

服务器电话告警配置的关键在于接口调通和定时任务稳定运行。
建议先用一个测试号码跑通全流程,确认无误后再换成真实接收人。
日常维护时定期查看日志,避免脚本因接口变更或权限问题静默失效。

分享到:
上一篇
服务器飞书告警配置:零基础对接自定义机器人
下一篇
服务器告警分级配置:从定义到落地的完整操作流程
1
系统公告

泽御云中秋国庆双节活动上线:新购8折,拼团3.99元起

尊敬的用户:
泽御云“月满中秋·礼贺国庆”双节活动现已开启,活动时间为2026年9月23日至10月10日。 活动期间可享以下福利:
1. 常规云服务器新购使用优惠码“泽御中秋国庆同乐”,符合条件的订单享8折优惠。
2. 香港精品云服务器5人拼团低至3.99元,部分4核4G套餐3人拼团年付388元,续费同价。
3. 新用户购买年付云服务器,符合活动规则可赠送2个月使用时长。
4. 老用户续费季度赠15天,续费年度赠2个月;活动期间升级配置免收配置迁移手续费。
5. 推荐好友成功下单,符合条件的推荐人可获赠7天服务器使用时长。
6. 活动期间享宕机补偿标准翻倍、简单网站迁移协助及技术工单优先处理权益。
温馨提示:优惠码不适用于拼团套餐、活动轻量产品、年付订单及续费订单;拼团套餐为独立特价活动,不与赠时类福利叠加。赠送时长不可折现、退款或跨账户转移,具体规则以活动页面说明为准。
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意