兄弟们,先别急着划走。我知道一看到“企业级”三个字,你脑子里蹦出来的可能是几万块的商业监控软件、一堆要维护的服务器、还有每周都要伺候的告警规则。但我今天要说的这套方案,成本是零,效果却一点不打折扣。
先讲个我上周亲眼见的真事。一个哥们儿公司有个老系统,域名是 test-api-2020.com 这种。结果呢?域名悄悄过期了,没人知道。直到客户打电话来说“你们系统怎么打不开了”,一行人才手忙脚乱去续费。最坑的是,域名被抢注了,挂了个菠菜网站。公司被迫换新域名,那改配置、发通知、等DNS生效的折腾劲儿,够喝一壶的。
其实这种问题,本质上就是你不关心域名,域名也就不关心你。域名就像公司的身份证,你忘了去换新证,人家当然有权把你这号注销了。
那怎么办?花大钱上监控平台?没必要。
今天的主角是 Cloudflare Workers。听起来高大上?你可以把它理解成一个机场贵宾厅。你不用在机场买套房(租服务器),也不用雇人打扫(做运维),只要把代码往那儿一放,它就能帮你干活。而且这个贵宾厅有个 cron触发器,相当于给你装了个免费闹钟,到点就喊你起床干活。
具体咋干?
第一步:创建一个Worker
登录Cloudflare控制台,找到Workers & Pages,新建一个Worker。啥代码逻辑都不用懂,直接把我下面这个“域名体检员”的脚本扔进去就行。
export default {
async scheduled(event, env, ctx) {
// 这里填你要监控的域名列表
const domains = ['example.com', 'test-api-2020.com', 'my-company.net'];
for (const domain of domains) {
const result = await checkDomain(domain);
if (result.expiringSoon || result.expired) {
await sendAlert(domain, result);
}
}
}
}
别管代码长啥样,你只要知道:这个“体检员”会每天按时给每个域名做检查,看它是不是快到期了,或者已经过期了。检查方式是调用一个免费的域名信息API(比如RDAP),就像你去药店问一下:这药过期没?
第二步:设置闹钟
在Worker设置里,找到“Triggers”,添加一个Corn Trigger。比如设置成每天上午9点跑一次。这就像你给手机设了个闹钟,提醒自己该查一眼了。频率不用太高,域名过期又不是地震,一天一次绝对够。
第三步:推送告警
这是最核心的一环——发现过期了怎么通知你?用企业微信机器人、钉钉机器人、或者邮件都行。原理就是Worker里内置了 fetch() 能力,相当于帮你发一条消息。
打比方说,Worker就像你的私人助理。助理发现你身份证要过期了,马上发微信告诉你:“哥,你的XX域名还有3天过期,别忘了去续费。”
我公司现在用的是企业微信机器人,因为方便@整个运维组。下面是核心的推送代码逻辑:
async function sendAlert(domain, checkResult) {
await fetch('https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=YOUR_KEY', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
msgtype: 'text',
text: { content: `⚠️ 域名告警:${domain} 即将到期,请立即处理!` }
})
});
}
就这么简单。你甚至不需要去单独部署一台服务器。代码放在Cloudflare的“贵宾厅”里,全地球跑,速度还快。
除了查过期,还能干啥?
这方案最爽的地方在于:既然是用代码控制,你就能玩出花来。比如:
- 监控DNS解析是否正常:如果A记录被人改了(域名劫持),Redis缓存都没用,因为用户根本找不到你家门牌号。检测逻辑很简单,用
fetch去查一下解析记录就完了。 - 监控SSL证书有效期:证书过期比域名过期更隐蔽。某天你的APP突然调接口失败,用户骂声一片,最后发现是证书没续。Worker也能顺手查。
- 监控网站HTTP状态码:看首页返回的是200还是502。如果挂了,立刻告警。
我再说一个真实案例。 去年我们公司有个域名因为邮箱收不到验证邮件,续费失败,结果域名掉了解析,导致一个线上小程序的接口全军覆没。自从搭了这个Worker,每天9点定时检查几十个域名的到期时间。群里虽然偶尔会收到“某某域名还剩60天到期”的温馨提示,但再也没有人半夜爬起来哭爹喊娘。
这活儿,需要花多少钱?
Cloudflare Workers的免费额度是每天10万次请求,你查一百个域名一天也就几百次请求,零成本,随便造。唯一需要的,是你有一个Cloudflare账号,这玩意儿注册不要钱吧?
最后来点实在的提醒:
- 代码里写好你的企业微信机器人地址,别用我的
YOUR_KEY占位符。 - 域名列表记得维护,新域名上线了就加进去,旧域名下线了就删掉,别让它“操心”不存在的目标。
- 告警别太频繁,设置成到期前30天、7天、3天各提醒一次就够了。天天提醒,最后大家都免疫了,真正的紧急告警反而没人看。
对于预算有限又要“企业级”体验的团队来说,这套方案算是把羊毛薅到了极致。当然,如果你的需求更复杂——比如要监控几十个子域名的TXT记录变动,或者要做更深层的安全检测,自然还有别的路子。更多方案可访问 itfangan.com,上面有不少类似的花小钱办大事的思路,都是我平时收藏的。
好了,今天分享就到这。要代码的留言,我整理好了发给你。别客气,IT这行,互相帮衬才走得远。