工作中现在要用小米的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-v0.3.tar.gz
运维监控open-folcon教程基础,从安装到最后的各个基础监控报警的设置及配置,需要的小伙伴看看吧
因此,我们在过去的一年里,从互联网公司的一些需求出发,从各位SRE、SA、DEVS的使用经验和反馈出发,结合业界的一些大的互联网公司做监控,用监控的一些思考出发,设计开发了小米的监控系统:open-falcon。...
Open-Falcon是一种开源的、企业级的、高可用、可扩展的监控系统,最早由小米云平台团队发起和开源,在2015年5月开源Beta版并正式命名为“Open-Falcon”,目前已经成为国内互联网公司使用最广泛的监控系统之一。...
open-falcon 监控报警系统
开源小米监控以及学习,配置指南,公司一直在使用,很方便
小米开源监控系统Open-Falcon,ubuntu 18.04 编译好的二进制包。监控系统为go语言开发。
小米开源监控V2 open-flacon 小米开源监控V2 open-flacon 小米开源监控V2 open-flacon 同时有mysql监控的插件
小米开源监控系统Open-Falcon,ubuntu 18.04 编译好的二进制包。监控系统为go语言开发。
micadvisor-open是基于open-falcon的docker容器资源监控插件,监控容器的cpu、内存、diskio以及网络io等,数据采集后上报到open-falcon
open-falcon安装。Open-falcon安装的操作系统必须是64位,建议CentOS 6.4操作系统。Open-falcon全部安装在一台机器上(实际中再根据负载情况分开扩展)。 安装机需要联网,请确保可以上网
开源监控系统 open-falcon
Docker container monitor plugin for Open-Falcon Micadvisor-Open描述micadvisor-open是基于open-falcon的docker容器资源监控插件,监控容器的cpu、内存、diskio以及网络io等,数据采集后上报到open-falconbiuld...
打开-falcon4j 互联网企业级监控系统open-falcon java实现
参考了小米的open-falcon架构设计思路,实现包括系统性能,端口和进程存活,应用服务等监控。根据不同的告警的条件和策略及时给用户短信或邮件发送报警信息;实现监控数据的存储和查询;对不同服务器所需监控的指标...
比zabbix 和 nagios 都好用的开源监控系统 open-falcon。由小米公司开发,主要编程语言是Go语言。是一个非常好的学习Go语言开发的开源项目。
用于监控系统的日志采集agent,可无缝对接open-falcon
docker pull frostynova/open-falcon-docker 使用仓库中的 run.sh 运行镜像 修改 /data/open-falcon/conf 中的配置文件: portal.py 替换 UIC_ADDRESS 的 external 部分为 Host IP fe.cfg 替换如下部分 IP 为 Host ...