开发者学堂课程【Elasticsearch实战进阶营:课时3: 实操讲解:微服务运行异常告警(一)】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/899/detail/14320
课时3: 实操讲解:微服务运行异常告警(一)
课程内容:
一、 对异常进行处理
1、 对服务进行的一个介绍
2、 对于微服务异常进行创建
3、 APM 异常
二、 总结
三、 课程总结
前情回顾:
本次课程主要是讲微服务的运行异常实时告警,前面三次监听了微服务的在线状态、微服务的日志、微服务的运行状况、APM 的这块信息。
一、对异常进行处理
1.对服务进行的一个介绍
先关闭一个,Service02 相应不通(相当于挂掉了),如果我们要做很多告警的话,我们 Service02 这个服务部署有十二台,当我们的服务小于等于六台的时候,服务就会告诉我们我们这个服务有异常,在传统的服务器中是没有办法告诉我们的,它的反应比较慢,在对于微服的监控它用到的是缓存还是什么的,不建议使用微服务的这一套监控,主要是用来做服务注册什么的,但是要是用来做高强度、海量的系统服务、反应十分灵敏的时候是非常不适合的)
2、对于微服务异常进行创建
Service03 这边检测到了 Service02,做一个简单的统计,检查服务的时候会有一个状态,例如:我们的 servers02 这台服务,在检查前我们加一个服务,这个是为了让大家熟悉(图三),先在 Uptitme 中写一个条件(图四),
步骤:last=>Last 15 minuts=>service02 服务
在这里会显示出一个状态 som down。我们在基于这个字段进行一个统计,打开 idea,当出现 down 的时候告知我,这个服务挂掉了。因为我们的 service02 只部署了一个十零,如果部署很多个十零的话会在 service02 中会显示出来两个一个是 up,另一个是 down(右键显示),它们的上限多少个都可以拿到。如果 up>down 是没有问题的,但是如果 up
在到 spring Eureka 去查看结果,先回到我们的创建界面里面,比如:我们现在要创建的是一个 servicedown/up(服务状态),查询索引是 herbit,在里面有很多种,一种是别名的方式,然后选择一个时间字段,因为它默认按照一个时间对其进行排序,比如:每个一分钟间隔去运行。
索引这一块我们写好了,现在去写一个查询,去统计文档数量到底有多少个,使用 count 来统计,提取 sum 的字段 summary down 的字段提取其中符合多少条,然后来满足我们的一个数据信息。(图形五)
代码:
GET apm-7.7.1-metric/_ search
GET apm-7.7.1-profile/_ search
GET heartbeat-7.7.1-2020.10.23-000001/_ search
{{
“query”:{
“term”:{
“monitor.name”:{
“value”:”service02”
}
}
},
“sort”:[{
“@timestamp”:{
“order”:”desc”
}
}]
在这个图中我们已经看到,会帮我们统计属于0的多少,属于1的多少。有1的出现就说明了我们这个出现了异常(down =1时)。
生成的 body 是什么样子的
代码:
"id" :”auto-http-0x1897D2CBC8B1FE8",
"name" :" S ervicee2" ,
"check_ group" : "d95a8f2a-1728-11eb-92cc -98eecbc67938" ,
"1p" : "127.0.0.1",
"status" :“down" ,
"duration" : {
"us" : 2002806
},
"type" : "http"
},
"ummary" : {
"up." : 0,
"dojn" : 1
},
'ecs" : {
"version" : "1.5. 0"
},
(1)tegger 间隔一分钟(可以去修改的),可以去引导区创建,在把代码粘贴进去
(2)查询的范围我们基于 runj 时间,过去一分钟就会对代码进行检查,利用数学表达式的方式来计算,如果统计过去十分钟异常的数量,就可以把它抓出来。
(3)它并不是全能的,它只是给程序一个入口,不是全部软件都适合使用 yes。主要讲的是 yes 的聚合语法,比如:统计 summer,统计里面的数值值
代码:
{“message”:"Wath [{{ctx.metadata.name}}] has exceeded the threshold"}
它会慢慢的从2变成0,它不会大于这个法制,所以它就不会触发这个告警,
语法可以从官方或者老师哪里领取资料。
后面就不创建了,因为这个 houke 服务没有启动,这个地址是不存在的。
关于微服务异常我们都全部讲完了,就讲到这里了。
"id"”: "auto-http-0X1897D2ceceB1FE8",
"name" : “servicee2",
"check_group" : "d95a8f2a-1728-11eb-92cc-98eecbc67938","ip”:127.e.e.1",
“status" : “down"","duration" :
{“us" : 2002806},
“type" : "http"
lumamary" : {“up”: 0,"doIn” : 1},
“ecs" : {
]“version” : "1.5.0""},
步骤:
点击 Watcher=>在点 create=> 在点第一个就会出现下面这个!