夜莺监控 Nightingale | 夜莺监控,一款先进的开源云原生监控分析系统,采用 All-In-One 的设计,集数据采集、可视化、监控告警、数据分析于一体,与云原生生态紧密集成,提供开箱即用的企业级监控分析和告警能力 于 2022 年 5 月 11 日,捐赠予中国计算机学会开源发展委员会(CCF ODC),为 CCF ODC 成立后接受捐赠的首个开源项目 官方地址:https://n9e.github.io/ 夜莺配置电话短信报警 夜莺监控社区版是使用人数最多的版本,但社区版本的夜莺监控不支持电话短信报警,对于运维来说电话报警是很重要的报警渠道,最近就有很多用户跟我们建议,让Spug推送助手来支持一下夜莺监控电话短信报警,下面就以夜莺监控社区版本如何支持电话短信报警来描述一下配置过程 使用夜莺监控模版 打开推送助手官网(https://push.spug.cc) / 模版市场 / 夜莺监控 / 使用模版 图片 配置要推送报警的电话/短信报警手机号 图片 配置完成推送对象后,拷贝模板 URL 图片 夜莺通知配置 编辑告警规则的通知配置,回调地址栏填写上一步拷贝的URL 图片 验证电话、短信、机器人报警 可以手动触发一下报警,测试一下报警发送。
一、分析 需求 Grafana支持短信渠道报警 要求 使用开发提供的短信API接口 请求url: http://192.168.1.1:8088/alerting/sendSms? 在Grafana添加短信报警方式 2. 在相关图表中应用短信报警 二、实际操作 添加报警方式 点击Alerting-->Notification channels 选择新建 输入报警方式的名字,比如: devops-sms 类型选择 webhook 由于是短信报警,发送的是文字,所以图片即使发过去,也没啥卵用。如果是邮件报警,则可以看到图表信息! 在webhook settings选项中,还有2个参数,username和password。 测试报警 点击上面的Send Test,确保能够收到短信!
前言 Zabbix 是一个高效的开源监控解决方案 邮件提醒的方式比较适合办公环境,电脑不在身边时,报警容易被忽视(大家习惯刷微博,刷微信,但不太习惯刷手机邮箱),这种情况下短信报警对于重要紧急的内容是一种很好的提醒方式 下面分享一下 Zabbix 监控系统短信报警的设定方法,详细可以参阅 官方文档 Tip: 当前的最新版本为 Zabbix 2.4.7 ---- 概要 ---- 前期准备 首先得有一个发短信的云平台 短信云平台的选择可以参考各类营销短信提供商 ,为什么选择营销短信提供商,而不是其它的,有以下几点原因 1.短信猫要使用电话卡,短信费用不便宜,还要购买和维护相应的硬件设备,性价比不高 2.验证短信云平台有模板审查机制,定制的报警模板不能马上生效, 要等审查通过,比较局限 3.营销短信云平台最为灵活,可以随便自定义,余额管理也比较方便 市面上主要就是这三种方式,相较而言第三种最方便 当然这并非绝对,只是我的一家之言,具体还得看应用场景,比如对安全性有额外要求或局域网络没有外网访问能力的 ,就可能要调整相应取向的权重 总而言之,我最后选择的是使用营销短信云平台,因为最省事儿
[ ] zabbix-短信报警(参考 http://hanyun.blog.51cto.com/1060170/1604918 ) [ ] zabbix-电话报警(参考 http://dl528888 /usr/bin/env python # coding: utf-8 import requests; import json; import sys; “”” 使用八优短信平台进行短信报警 接收参数输入 参数一:接收手机号(zabbix传来的第1个参数,报警接收手机号) 参数二:短信主题(zabbix传来的第2个参数,报警主题) 参数三:短信内容(zabbix传来的第3个参数,报警内容 ) 手动调试方法 python sendsms.py *********** “报警测试” “”” def sendsms(phone,subject,message): “”” 1] subject = sys.argv[2] message = sys.argv[3] sendsms(phone,subject,message) 在动作中配置短信模板
发送短信API 选择好短信云平台后,就要使用云平台提供的API开发出一个发送短信的工具(脚本) 不同商家提供的API不一样,不能一概而论,所以这里得有一定功底看懂API文档或Demo,然后进行改造使用或干脆自已写一个 下面以正奥通信提供的API为例进行演示 (此刻为 2016.01.18 21:11,之后API可能会有改动,但方法不变) 下面为API相关文档 接口文档 正奥通信短信接口规范V1.0.doc 客户端页面地址 http://139.129.128.71:8080/hsms 短信发送地址 http://139.129.128.71:8086/msgHttp/json/mt 余额查询地址 http://139.129.128.71 balance PHP Demo 二次开发PHP接口 JAVA Demo 二次开发JAVA接口 C# Demo 二次开发C#接口 根据API文档和参考Demo我写了一个简单的bash实现 ---- 短信余额脚本 这个是获取短信余额的脚本 [root@redis-b sms_script]# cat sms_get_balance.bash #!
运维在日常工作中,会写很多脚本,但是脚本想支持电话短信报警却比较麻烦,要想让脚本支持电话、短信报警,一般要在电话短信运营商平台提交资料审核才可以,有些运营商平台还需要提交企业资质才可以,这就给运维带来了很多门槛 key1=测试报警&key2=服务器IPxxxx"{"code": 200, "msg": "请求成功"}4、编写脚本监控Mysql和主从同步,发生异常推送电话短信报警[root@manage]# vim # 主从同步异常推送电话短信报警 curl "https://push.spug.cc/send/byPj9N3xxxYQ? ${email_addr} # mysql进程异常电话短信报警 curl "https://push.spug.cc/send/byPj9N3xxxYQ? key1=Mysql进程&key2=192.168.100.1"fi5、验证电话短信报警6、支持更多渠道报警发送如果想让脚本支持邮件、钉钉、飞书、企业微信报警,只需要在推送助手平台上编辑模板,把邮件、钉钉
Tip: 这里有一个命令 qtools 不必太计较是怎么来的,只用知道它是用来进行urlencode转换的就可以了 也可以使用shell来代替,比如 echo '报警' | tr -d '\n' | xxd -plain | sed 's/\(..\)/%\1/g' echo '报警' |tr -d '\n' |od -An -tx1|tr ' ' % 只是上面的脚本在处理带有换行的内容时会产生问题, 目标为本机 自定义脚本 使用Zabbix server执行 命令内容 /tmp/sms_script/sms_sent_message.bash '1801601xxxx' 'zabbix测试系统报警
trigger,然后修改一下 Severity 的级别 Tip: 简便方法是 Link 一下模板,然后 Unlik 一下 ,不要选择 Unlink and clear 否则又没了 通过防火墙丢弃icmp包触发报警 0.0.0.0/0 reject-with icmp-host-prohibited [root@h101 ~]# 过一小会儿(根据检查频度和触发规则而定),报警被触发了 image.png 几乎同时也收到了短信 image.png Events 里也留下了记录 查看方法是 : [Monitoring]->[Events] ---- 命令汇总 cat sms_get_balance.bash /sms_sent_message.bash '15016017077' '高级报警测试 vim /etc/sysconfig/iptables grep icmp /etc/sysconfig/iptables
发送短信脚本 这个是发送短信的脚本 [root@redis-b sms_script]# cat sms_sent_message.bash #! /sms_sent_message.bash '15016017077' '高级报警测试 > abcdefghijklmnopqrstuvwxyz > hello!
君子耻其言而过其行 论语 首次开通短信套餐包的腾讯云每月会赠送100条的免费短信数量,我们可以拿这100条短信进行测试 开通之后需要添加一个应用 ? 将脚本放到/usr/lib/zabbix/alertscripts/目录下,并授予脚本操作权限,然后在zabbix页面进行配置 定义报警媒介类型 ? 进行zabbix报警测试 停止zabbix-agent,使其产生报警 systemctl stop zabbix-agent 可以看到报警短信已经收到 ? 如果要查看短信的报错信息,可以在腾讯云短信服务的统计分析中查看 ? 踩过的坑 尽量使用python3,python2在Linux环境下匹配数据可能会存在问题 短信模板中变量的分隔符尽量不要出现在触发器中,否则会造成转义 腾讯云同一手机号的发送短信频率为30秒内发送短信条数不超过
今天有个网友联系到,说能不能做一个域名拦截实时短信报警的功能,当他问这个问题的时候我就已经想好了思路,只需要在原来《腾讯检测域名报毒的API接口》的基础上增加一个拦截域名返回301状态码的代码即可 url=six8.cf 2、之后设置阿里云监控(当然别的监控也行,只要有邮件或者短信提示的云监控都是可以的) ? 5、不出三分钟,小杰就收到邮件和短信提示了,效果很不错 ?
短信 (SMS) 推送报警消息 方法1:通过串口短信猫 (以西门子MD720-3为例,以AT指令方式发送中英文短信) A. 将要发送的报警消息赋值给控件的 Output 属性。注意,发送前先判断串口是否为打开状态(PortOpen 属性) D. 发送英文短信: 1) MSComm控件发送“AT+CMGF=1<CR>”。 5) 向串口发送短信的内容(报警文本), MD720-3将短信发送给设定的手机号码。 6) 返回“OK”,说明短信发送成功。 发送中文短信: 1) 首先需要设置短信发送方式为 PDU 模式。使用“AT+CMGF=0<CR>”命令。 2) 其次要向被叫号码发送 PDU 的长度。 3) 当 MSComm 控件接收到“>”命令后,向串口发送短信的 PDU 编码字符串。
夜莺的核心研发团队,也是 Open-Falcon 项目原核心研发人员。 这种中心架构还有一种就是:将 Prometheus、Thanos、VictoriaMetrics、M3DB、Mimir 等某个时序库作为夜莺的数据源,即只使用夜莺的告警管理功能。 夜莺也可以同时将此时的时序库用作 n9e 的数据源。 但如果我们 Prometheus、VictoriaMetrics、Thanos 等时序数据库已经存储有相关的监控指标数据,那也可以将他们作为夜莺的数据源使用,此时夜莺就相当于 Grafana 一样。 比如原本有一套 Prometheus + 各类 Exporter 的体系,复用即可,不需要非得用 categraf 替换采集逻辑,把这套 Prometheus 作为数据源接入夜莺,用夜莺告警就可以了。
调度算法使用加权轮询; II、所有web服务使用共享存储nfs,保证所有web都对其有读写权限,保证数据一致性; 2.编写监控脚本,监控集群内所有服务存活状态,内存、磁盘剩余率检测,异常则发送报警邮件 server = "nfs" ] then install_nfs_server else exit fi done 3、编写监控脚本,监控集群内所有服务存活状态,内存、磁盘剩余率检测,异常则发送报警邮件
方法2:通过以太网口短信猫 (以西门子路由器M874-3为例,其支持联通的3G 卡,以及移动和联通的2G 卡。据悉此硬件不支持中文短信,所以若需中文,那就考虑第三方硬件,方法类似。) A. 在Socket控件的connect事件中发送报警消息 代码如下: 邮件推送报警消息 通过VBS代码控制outlook 发送邮件 (个人推荐此方式,省钱; 另外,很多邮箱都可以绑定手机,邮件到达有实时短信提醒 '收件人地址 OutlookNewMail.cc = Cc_Addr '抄送人地址 OutlookNewMail.Body = BodyText '邮件内容:报警消息文本
前面已分别介绍了zabbix的邮件、微信报警设置,这些都是手机在有网络时才能收到报警信息,那如果手机没有网的情况下怎么办,这就需要考虑使用短信接口报警了。 ,zabbix短信报警脚本如下: [root@zabbix alertscripts]# cat zabbixsend_sms.sh #! [root@zabbix alertscripts]# chmod 755 zabbixsend_sms.sh 可以先手动执行脚本进行发信测试: $1是发信的手机号码 $2是发信的主题,这个一般短信报警信息里不显示 上面的报警主题如下,这个其实在短信报警信息中没有体现,随便定义即可。 故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障! TRIGGER.KEY1}, 问题详情:{ITEM.NAME}:{ITEM.VALUE}, 当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}, 事件ID:{EVENT.ID} 手机短信报警截图如下
01 进入正文 今天跟大家分享的主题是利用python库twilio来免费发送短信。 先放一张成品图: ? 正文 眼尖的小伙伴已经发现了上面的短信的前缀显示这个短信来自于一个叫Twilio的免费的账户,今天我们用到的库就是twilio,既然是免费的账户,那么肯定是有一些限制的,这个会在后面提到 而这个就是我一开始提到的免费账号的限制,在这个限制下面如果你想发送信息给一个接收者,这个接收者的号码必须通过验证,语音验证或者短信验证都可以。如果你是想大批量的发那种垃圾信息,那么你不用往下面看了。 总结 好了,到这里我们就可以免费的发送短信了。 通过这个库,我们可以: (1)对线上或者线下后台跑的程序进行监控,并及时发送短信报警 (2)结合树莓派玩一下,可以实现对超多场景的监测 代码被放在了这里:https://github.com/xiaosimao
因为 nightingale 官方没有提供 Helm Charts,这里根据团队实现的方式,提供了一个比较简单,容易理解的 Helm 包,nightingale-helm 可以参考下面的部署命令进行部署,细节主要参考 values.yaml 文件,很多配置,包括告警脚本都是通过 ConfigMap 来挂载到容器的,注意一下逻辑。
夜莺(Nightingale)是滴滴基础平台联合滴滴云研发和开源的企业级监控解决方案。旨在满足云原生时代企业级的监控需求。 我们简单快捷,直接使用all-in-one来安装部署夜莺的这套监控系统~ 步骤 下载n9e-1.3.0-438ec4a.el7.x86_64.rpm-bundle.tar.gz并进行解压和安装 wget
夜莺是新一代国产智能监控系统。 xiaoyu123');" 安装 redis 并启动 dnf -y install redis systemctl start redis systemctl enable redis 安装夜莺组件 5.3.1.tar.gz tar zxvf n9e-5.3.1.tar.gz 导入数据库文件 mysql -uroot -pxiaoyu123 < docker/initsql/a-n9e.sql 修改夜莺相关配置