因为电话、短信的发送是需要采购通道的,而市面上的通道五花八门,规范不一,所以夜莺没法把这个能力内置到Go代码里。那如何扩展支持呢?有两个方式,一个是通过自定义脚本,一个是通过Webhook。
自定义脚本
夜莺支持在告警的时候自动调用脚本,把告警事件的内容encode成json传给脚本的stdin,剩下的事情,就由脚本搞定了,具体逻辑可以参考 这里。社区里也有小伙伴分享了自己的经验,给出了样例脚本:
不过这个方式虽然可以跑通,就是比较麻烦,更简单的是Webhook的方式。
Webhook方式
基本上所有的监控系统,都支持把自己的告警事件Webhook推走,利用第三方系统来处理,这些第三方系统不只可以支持各类通知媒介,还支持告警的聚合降噪、排班、认领、升级、协同等等的逻辑。夜莺研发团队也做了一个这样的平台,叫 FlashDuty,欢迎 👉 点此了解 欢迎夜莺的小伙伴支持试用,合作共赢 :)