如何在12个小时,搞定http监控?
Posted 架构师之路
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在12个小时,搞定http监控?相关的知识,希望对你有一定的参考价值。
[http.monitor.item]
cluster.name : daojia_main
url : http://daojia.com/
result : 家政
[http.monitor.item]
cluster.name : daojia_user
url : http://daojia.com/userinfo/get/
get.data : uid=123
post.data : NULL
cookie.data : NULL
result : shenjian
Bool Service::trySendAlarm(
String clusterName,
String yuangongName,
String ip,
String url,
…
)
-
集群收敛策略,可以通过clusterName去重 -
接口收敛策略,可以通过url去重 -
定时定频策略,可以通过yuangongName去重 -
白天黑夜策略,可以通过告警发送时间实施 -
…
[http.monitor.item]
cluster.name : daojia_main
url : http://daojia.com/
result : 家政
[http.monitor.item]
cluster.name : daojia_user
url : http://daojia.com/userinfo/get/
get.data : uid=123
post.data : NULL
cookie.data : NULL
result : shenjian
[daojia_main]
ip.list : ip1, ip2, ip3
port : 80
owner.list: shenjian, zhangsan, lisi
[daojia_user]
ip.list : ip11, ip22, ip33
port : 8080
owner.list: shenjian
[shenjian]
email : XX@XX.com
phone :15912345678
[zhangsan]
email : YY@YY.com
phone :18611220099
// 解析配置文件,取出监控项、集群、员工等信息
Array[monitor-item] A1=Parse(monitor-item.config);
Array[cluster-info] A2= Parse(cluster-info.config);
Array[owner-info] A3=Parse(owner-info.config);
// 遍历所有监控项
for(each item in A1){
// 取出监控项的集群名,URL,http数据,结果等信息
clusterName= item.clusterName;
url= item.url;
getData= item.getData;
postData= item.postData;
cookieData= item.cookieData;
result= item.result
// 由集群名,获取集群信息
clusterInfo= A2[clusterName];
// 由集群信息,获取集群ip列表,集群负责人列表
List<String>ips = clusterInfo.ip;
List<String>owners = clusterinfo.owner;
// 集群内的每一个ip实例web-server,都需要监控
for(each ip in ips){
// 根据ip,url,http数据构造请求
httpClient client = new httpClient(ip, url, getData, postData, cookieData);
// 获取http请求执行结果
httpResponse resp = client.execute();
// 如果返回为200,并且包含监控项里的业务特性结果
if(resp.code==200&& resp.contain(result)){
//正常,继续监控
continue;
}
// 否则,对所有集群负责人发送告警
for(each owner in owners){
// 取出负责人邮箱和手机号
email =A3[owner].email;
phone =A3[owner].phone;
// 发送邮件与短信告警
snedSM(phone, ip, url,owner);
}
}
}
思路比结论更重要,希望大家有收获。
以上是关于如何在12个小时,搞定http监控?的主要内容,如果未能解决你的问题,请参考以下文章