美文网首页
open-falcon之短信报警

open-falcon之短信报警

作者: 海水味儿 | 来源:发表于2019-01-07 15:52 被阅读0次

作中现在要用小米的open-falcon,准备都OK了,现在想通过短信来进行报警,但是找了官网,只提供了关于邮件的报警mail-provider,并没有短信SMS的。研究了一段时间。终于搞定了。 

首先我的运行环境是CentOS6.5。前期搭建open-falcon的顺序是按照官方文档来的,不再提了。 

短信发送重要的模块之一就是sender模块。 

官网链接:http://book.open-falcon.org/zh/install_from_src/sender.html 

sender模块的配置文件cfg.json 

"debug": true, 

"http": { 

"enabled": true, 

"listen": "0.0.0.0:6066" 

}, 

"redis": { 

"addr": "127.0.0.1:6379", # 此处配置的redis地址要和后面的judge、alarm配置成相同的 

"maxIdle": 5 

}, 

"queue": { 

"sms": "/sms", # 短信队列名称,维持默认即可,alarm中也会有一个相同的配置 

"mail": "/mail" # 邮件队列名称,维持默认即可,alarm中也会有一个相同的配置 

}, 

"worker": { 

"sms": 10, # 调用短信接口的最大并发量 

"mail": 50 # 调用邮件接口的最大并发量 

}, 

"api": { 

"sms": "http://192.168.1.101:8080/sms/sms/send", # 短信地址是自己的HTTP短信服务接口 

"mail": "http://11.11.11.11:9000/mail" # 邮件地址随你写 

何为短信接口?说白了,就是自己拿tomcat开一个http协议的接口服务呗。 

我随便拿我的一个MVC工程搞了一份: 

package com.sms.controller;  

import org.springframework.stereotype.Controller;  

import org.springframework.web.bind.annotation.RequestMapping;  

import org.springframework.web.bind.annotation.ResponseBody;  

import com.taobao.api.ApiException;  

import com.taobao.api.DefaultTaobaoClient;  

import com.taobao.api.TaobaoClient;  

import com.taobao.api.request.AlibabaAliqinFcSmsNumSendRequest;  

import com.taobao.api.response.AlibabaAliqinFcSmsNumSendResponse;  

/**

 * Handles requests for the application home page.

 */  

@Controller  

@RequestMapping("/sms")  

public class HomeController {  

/**

     * Simply selects the home view to render by returning its name.

     */  

@ResponseBody  

@RequestMapping("/send")  

public String sendStr(String content,String tos) {  

StringBuffer sb =new StringBuffer();  

sb.append(content.split("]")[2].replace("[", ""));  

sb.append(content.split("]")[4].split(" ")[0].replace("[", ""));  

sb.append(content.split("]")[5].split(" ")[2].split(":")[0]);  

sb.append(":");  

sb.append(content.split("]")[5].split(" ")[2].split(":")[1]);  

String url ="阿里的短信接口api";  

String appkey ="阿里的appkey请自行注册";  

String secret ="阿里的secret请自行注册";  

TaobaoClient client =new DefaultTaobaoClient(url, appkey, secret);  

AlibabaAliqinFcSmsNumSendRequest req =new AlibabaAliqinFcSmsNumSendRequest();  

req.setExtend("123456");  

req.setSmsType("normal");  

req.setSmsFreeSignName("测试签名");  

req.setSmsParamString("{\"name\":\"XXXX\",\"message\":\""+sb.toString()+"\"}");  

        req.setRecNum(tos);  

req.setSmsTemplateCode("阿里的SMS短信模块编号");  

        AlibabaAliqinFcSmsNumSendResponse rsp;  

try {  

            rsp = client.execute(req);  

            System.out.println(rsp.getBody());  

return rsp.getBody();  

}catch (ApiException e) {  

// TODO Auto-generated catch block  

            e.printStackTrace();  

        }  

return "";  

    }  

}  

我用的阿里的短信api写的。没什么好说的。具体流程就是Agent收集信息传给Transfer,Transfer一式两份,分别传给graph做图形后续处理, 

,又传给Judge做告警判断,我们短信主要走的是Judge的告警这条线,Judge接下来将告警任务下发到redis队列中去,由Alarm模块从redis队列中取得,然后根据报警event来处理具体是发短信还是发邮件,发短信就是调用sender模块中cfg.json配置的sms的api了。 

重点来了:但是你看sender模块中cfg.json的api的时候会发现,官网demo中写的api服务仅仅是一个URL但是没有写参数对吧?你可能会问,他的参数怎么传过来呢?其实自己在调用cfg.json的api的时候,把参数默认给带上了,上面我的java代码方法中的两个参数是必须要写的,他会在调用api的时候不知不觉就赋值了! 

比如说: 

content参数(警告内容):“[P0][PROBLEM][g-09][][ all(#1) mem.memfree.percent  64.28836<=100][O1 2016-11-27 09:31:00]”这个和web中Alarm模块的警告信息是一个!。 

tos参数(短信发送的电话号码):这个其实是你在配Portal策略时,绑定的group用户组中用户的电话号码传过来的。 

哈哈,知道了吧?其实你只要有个http接口,sender配置好了,Portal策略绑定的用户手机号码填写好,就OK了,不用管其他的!当然其他模块的配置文件也要配置好,每个模块都要看./control tail!OK,结束! 

相关文章

  • open-falcon之短信报警

    作中现在要用小米的open-falcon,准备都OK了,现在想通过短信来进行报警,但是找了官网,只提供了关于邮件的...

  • 运维监控系统之Open-Falcon

    运维监控系统之Open-Falcon 一、Open-Falcon介绍 open-falcon是一款用golang和...

  • 报警记(短信报警记录)

    警察同志,您好!本人✘✘,在支付宝兼职猫上面挂了简历,本周一(2022.10.17)有人加我微信,让我去公司面试试...

  • zabbix监控

    监控服务概述 1、实时查看服务状态2、可以发送报警信息(邮件报警、短信报警、电话报警、微信报警、值班(大屏幕)报警...

  • open-falcon之发送微信报警消息

    参考原文:https://www.cactifans.org/open-falcon/1788.html官方参考:...

  • 正能量

    110短信报警是针对聋哑人和不方便报警的情况下一种新型的报警方式,那么小编就给大家带来110短信报警指南和需要注意...

  • 金笛短信应用于仪器、仪表监控报警

    厂区监控报警系统是把仪器、仪表等需要监控的场合的状态信息通过开关量或者模拟量的形式传送给短信报警装置。短信报警系统...

  • open-falcon配置邮件服务器

    前言 在公司的阿里云服务器上部署的open-falcon来监控公司设备信息。按照说明文档添加报警发送邮件的邮件服务...

  • open-falcon 微信报警45009 优化

    组件:falcon-wechat 现象:告警消息发送失败,错误状态码45009 原因:每发一次告警都去获取 acc...

  • 让微信短信报警

    报警功能暂时只针对园区玻璃温室温度传感器,后期可按需扩展功能。

网友评论

      本文标题:open-falcon之短信报警

      本文链接:https://www.haomeiwen.com/subject/hnburqtx.html