夜莺v5、v6社区版如何实现短信和电话告警?

Viewed 377

1、希望了解夜莺v5版本的短信和电话告警的实现原理。
2、实现短信、电话告警的前提条件,如网络条件,硬件设备条件(硬件短信网关或者推送服务供应商)
3、纯内网环境如何安全的实现短信电话告警?
4、夜莺测试过的硬件短信网关厂家或者推送服务供应商有哪些?哪家更推荐?
5、能否提供一份短信和电话告警的模板?

期待问题得到大佬解答!

5 Answers

感谢,里面的介绍很详细。

1、自行修改告警通知py脚本/或者改源码增加短信和电话通知渠道
2、建议直接用云厂商推送服务
3、把云厂商的URL加入外网访问白名单即可
4、不知,我司用的腾讯云的语音消息,很便宜
5、image.png

感谢回复!学习了。

如果只是夜莺自身的短信、电话通知,就像楼上给位回答的,可以通过notify脚本,接入通知渠道。因为通知渠道各异,所以没有在夜莺里内置支持,像飞书、钉钉、企微,这些接口是固定的,夜莺里就做了内置支持。

一般公司可能不止一套监控系统,可能同时有 zabbix prometheus nightingale elastalert 云监控 grafana 等多套监控系统。此时,希望有统一的告警事件聚合降噪、排班、认领、升级、协同、IM打通处理、移动告警处理等能力,就需要一套统一的事件 OnCall 中心了,推荐 FlashDuty。每个月 179,以上功能全部具备,短信、电话更是不在话下。FlashDuty按照活跃账号收费,如果只是接收告警,不在平台上做操作,都不算活跃账号,不收取使用费,只收取短信、电话通知渠道的费用,非常划算。

👍感谢

我这是傻瓜教程 跟着配就可以出来了。楼上提供思路很好 我就是不会写代码。。。

非常清晰明了,感谢感谢

#!/usr/bin/env python
# -*- coding: UTF-8 -*-

import json
import sys
import requests
import logging

reload(sys)
sys.setdefaultencoding('utf8')
logging.basicConfig(level=logging.DEBUG, filename='../log/send_sms.log')
...

    @classmethod
    def send_sms(cls, payload):
        users = payload.get('event').get('notify_users_obj')
        phone_num_list = []
        sms_server_ip = '192.18.1.111'
        sms_server_password = '1'
        sms_text = payload.get('tpls').get('sms.tpl')
        sms_text_encoded = requests.utils.quote(sms_text.encode('utf-8'))
        for u in users:
            if u.get('phone'):
                phone_num_list.append(u.get('phone'))
            else:
                logging.error('手机号码为空,退出执行')
                sys.exit()

        phone_num = ','.join(phone_num_list)
        url = 'http://{}:8060/send?password={}&text={}&recipient={}&encoding=U&gateway=*'.format(sms_server_ip,sms_server_password,sms_text_encoded,phone_num)
        logging.debug(sms_text)
        logging.debug("URL请求:{}".format(url))
...

金迪的短信猫,python脚本拿到告警信息,拼一个url请求,发给金迪。

这就直接丢自定义脚本么?可是我丢进去 日志都打印不出来sms这个媒介,没啥反应