告警功能| 学习笔记

简介: 快速学习告警功能

开发者学堂课程【分布式链路追踪 Skywalking告警功能】学习笔记,与课程紧密连接,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/743/detail/13164


告警功能


内容介绍:

一、告警功能简介

二、Skywalking 默认的告警规则


一、告警功能简介

1.告警功能是相比比较灵活的,Skywalking每隔一段时间根据收集到的链路追踪的数据和配置的告警规则(如服务响应时间、服务响应时间百分比)等,判断如果达到阀值则发送相应的告警信息。发送告警信息是通过调用webhook接口完成,具体的webhook接口可以使用者自行定义,从而开发者可以在指定的webhook接口中编写各种告警方式,比如邮件、短信等。告警的信息也可以在RocketBot中查看到。告警功能是相比比较灵活的。

2.RocketBot

如图:image.png

打开告警功能后,会发现什么数据都没有,这是因为目前并没有触发告警,所以需要模拟告警信息的产生。


二、Skywalking 默认的告警规则

默认的告警规则一般在 skywalking 安装目录下的config文件夹下 alarm-settings.yml 文件中。打开后如下图所示:

image.png

首先这是一个 y mail,最外层的是 rules,可以定义多个规则。如图:

image.png

每一条都代表一个规则,规则中就定义了规则生效的条件。要看懂规则,则需要学习规则的语法。规则名称、注释及图片如下:

image.png

1、metrics-name:对应某数据进行监控;oal脚本中的度量名称。目前用到的是service_resp_time也就是服务的返回时间。

2、service_resp_time_rule:对于服务的响应时间制定了一个规则。

3、Op:代表比较符,threshold代表预值(服务响应时间大于一秒钟的时候去触发告警。)

4、period:多久检查一次当前的指标数据是否触发预值(图中意为每十分钟去检测当前数据是否触发预值,默认单位是min)。

5、count指的是达到多少次后发送告警消息(图中指的是返回的数据必须大于三次)。

6、silence-period:指的是在多久之内,忽略相同的告警消息(图中指的是当告警产生的时候,五分钟之内不会重复发送告警信息)。

image.png

7、webhooks:指的是告警产生后的回调地址(通过调用接口的方法把告警信息传递到此接口中之后就可以对此接口进行扩展。例如发送短信)如图:

image.png

  1. 流程

1、打开 skywalking alarm 代码

打开后查看源码controller。如图:

image.png

此代码中只有一个接口timeout。模拟了一个超时的告警。

当我们大量的调用timeout接口时,就会产生告警,之后会通过webhook调用接口,把告警的数据传递过来。

2、编制 webHooks 编码

如图:

image.png

此代码提供了一个WebHooks的接口,让其能够接收到skywalking上报的告警消息,此告警消息需要自己封装,因为是通过post请求携带在请求体中传递过来的。本质上是一个多个对象,所以用list进行封装。List中的数据中的格式如下图所示:

image.png

其中scopeid、name、id0、id1、alarmMessage、startTime。这些字段会通过post请求传递给我们。

startTime:指的是开始时间也可以理解为产生的时间。

alarmMessage:指的是告警的消息

webhooks中还有一个方法show。如图:

image.png

因为webhook收到消息后需要有地方去展示,所以在内存内生成一个lastlist的对象。如图:

image.png

当收到 webhook 的消息后会把传递过来参数复制到这个对象中然后通过 show 接口能够把 AlarmMessage 也就是告警消息打印到浏览器上方便展示。

大体流程就是多次调用 timeout 让其产生一个告警,之后会触发 webhook 调用其中的 webhook 的接口,把告警信息传递进来,之后通过 show 接口把告警信息打印、核对。

3.模拟请求

查看发布的端口,如图:

image.png

首先修改告警配置,需要将webhook改为当前自己的接口。如图:

image.png

image.png

之后需要把此接口也调整为webhook接口,也就是/webhook。如图:

image.png

并进行保存。

重启skywalking的oap。如图:

image.png

之后找到ID 1835。如图:

image.png

再拉倒最底端编制代码ki11-9 1835。如图:

image.png

通过执行./oapservice.sh来重新启动。如图:

image.png

这样告警配置即可生效,现在可以准备告警的应用上传到服务器,之后切换到/usr/local/skywalking/目录下并启动alarm应用。如图:

image.png

启动命令为:java-javaagent:/usr/local/skywalking/apache-skywalking-apm-

bin/agent/skywalking-agent.jar -Dskywalking.agent.service_name=skywalking_alarm

-jar skywalking_alarm.jar

将此命令拷贝到代码中(将多余的空格去掉)。如图:

image.png

执行后如图所示:

image.png

启动后通过8089端口访问timeout接口(注意:通过一次timeout接口是不行的因为告警规则中也判断了需要连续多次才能触发这次告警,所以需要不停的调用直到出现告警。告警可以在Rocketbot中查看)。如图:

image.png

在两分钟之内出现了多次1毫秒的请求所以进行了告警,告警力度是service instance也就是服务实例,服务实例超过一秒就会告警。

之后在查看webhook有没有收到此请求,用show接口来查看是否接收到告警信息。如图:

image.png

image.png

名称就是代表服务实例在62.141中,2162为进程号。同时此告警信息就代表service instance 也就是服务的实例超时了1秒钟,开始时间就是一个毫秒数需要去转换当前的时间才能看到具体时间。

当前案例就可以证明,当我们的skywalking产生告警的时候,它就会通过webhook接口传递到系统内部,系统就可以根据里面的告警信息来进行特别的处理(例如发送短信、发送邮件等)。

相关文章
|
消息中间件 监控 关系型数据库
134 日志监控告警系统案例(功能架构分析)
134 日志监控告警系统案例(功能架构分析)
225 0
|
机器人 Linux 网络安全
利用GrayLog告警功能实现钉钉群机器人定时工作提醒
利用GrayLog告警功能实现钉钉群机器人定时工作提醒
449 0
利用GrayLog告警功能实现钉钉群机器人定时工作提醒
|
监控 负载均衡 网络协议
云监控-主机监控功能介绍|学习笔记
快速学习云监控-主机监控功能介绍
308 0
云监控-主机监控功能介绍|学习笔记
|
机器学习/深度学习 监控 安全
【X-Pack解读】阿里云Elasticsearch X-Pack 告警组件功能详解
阿里云Elasticsearch集成了Elastic Stack商业版的X-Pack组件包,包括安全、告警、监控、报表生成、图分析、机器学习等组件,用户可以开箱即用。本文将对X-Pack 的告警组件功能进行详细解读。
6984 0
|
监控 测试技术 Python
|
监控 Java 开发工具
云监控发布事件监控功能,助力开发者快速提升业务稳定性
服务在运行过程中,难免出现异常情况,严重异常甚至会中断您的业务。传统方法是通过开源的ELK(ElasticSearch, Logstash, Kibana)等收集和查询异常,并对接消息网关发送报警。但这些开源系统往往是由多个复杂的分布式系统组成,自行搭建和维护面临着技术门槛高、时间和人力成本高的问题。
1903 0

热门文章

最新文章