创建AMP-Elastic-Webhook-钉钉

在今天文章中,我们讲述如何使用API的方法利用Elasticsearch来生成Webhook报警,发送钉钉通知。

我们今天的配置如下:

在上面我们使用Ubuntu来安装我们的 Elastic,KIban和apm-server。在下面的配置我们讲述如何进行安装。

安装

ElasticSearch

1. Download the Elasticsearch archive for your OS:

curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.8.0-linux-x86_64.tar.gz

2.Extract the archive:

linux:

tar -xvf elasticsearch-7.8.0-linux-x86_64.tar.gz

3.打开config/elasticsearch.yml文件,简单配置一下:

在这里我们配置一个节点的Elasticsearch,同时我们配置network.host: 192.168.0.93,如果你还不知道自己的IP地址,你可以打入如下的命令来找到自己的IP地址:

ifconfig

4.Start Elasticsearch from the bin directory:

Linux and macOS:

cd elasticsearch-7.8.0/bin

./elasticsearch

5.我们在浏览器中输入地址 192.168.0.93:9200,查看Elasticsearch启动情况。

如果我们能够看到上面的输出,那么则表明我们的Elasticsearch安装是成功的。

Kibana

1.Download and install the Linux 64-bit packageedit

The Linux archive for Kibana v7.8.0 can be downloaded and installed as follows:

curl -O https://artifacts.elastic.co/downloads/kibana/kibana-7.8.0-linux-x86_64.tar.gz

curl https://artifacts.elastic.co/downloads/kibana/kibana-7.8.0-linux-x86_64.tar.gz.sha512 | shasum -a 512 -c -

tar -xzf kibana-7.8.0-linux-x86_64.tar.gz

cd kibana-7.8.0-linux-x86_64/

2.修改config/kibana.yml的相应的配置:

elasticsearch.hosts: ["http://192.168.0.93:9200"]

server.host: "192.168.0.93"

3.run kibana

./bin/kibana

我们在自己的浏览器中打入如下地址:

如果你能发现上面的界面,则表明你的Kibana的安装是成功的。

apm 安装

点击 Add APM:

根据自己本身系统进行安装,除了修改以上configuration外还需修改amp-server.yml 文件:

然后run start:

./apm-server -e

启动成功后,进行验证:

提示以上信息,说明amp-server 安装成功。

APM agent 安装

根据自己project语言进行选择,根据以上信息,启动自己的项目。

项目启动成功后进行验证:

以上提示说明项目配置成功。

然后把数据load 到kibana 中。

如果我们安装正确的话,我们可以在Kibana中看到数据进来:

Watcher API

在今天的练习中,我们将使用Watcher API来进行监控。请大家参考Elastic的官方文档https://www.elastic.co/guide/en/elasticsearch/reference/current/watcher-api.html。简单地说,为了配置一个Watcher,我们必须配置如下的几个:

我们下面来分别进行描述:

trigger

这个定义多次实践watcher运行一次。比如我们可以定义如下:

上面表明,我们希望每三分钟运行一次。

Input

这个是定义alert想搜索的index,及针对多长时间的index来进行的搜索的:

在上面,我们想针对apm-*的索引来进行搜索。如果processor.name含有error,则表明有一个匹配。同时我们针对在过去5分钟内发生的事件来进行查询。

condition

我们定义如下:

上面显示如果在查询结果中,有至少一个的结果,那么就会发送出alert。

actions

这个是定义当上面的condition被满足时,需要采取的一些行动。

目前Watcher支持的action为:

在今天的练习中,我们使用Webhook的方法来发送通知。我们参照 Elastic 的官方文档https://www.elastic.co/guide/en/elasticsearch/reference/current/actions-webhook.html。我们定义actions如下:

大家也许想知道我们是如何得到上的那个 url 的值的。我们打开我们的钉钉。参照钉钉官方文档(https://ding-doc.dingtalk.com/doc#/serverapi2/qf2nxq)

我们把上面的 URL 拷入到我们的 actions 的配置当中。可能根据每个人的情况不同而不同。

经过上面的配置后,我们alert配置如下:

执行上面的命令。显示结果:

我们可以在 Management 的 Watcher 里看到最新创建的 Watcher:

测试Watcher

针对我们的情况,我们可以调用我们的接口,传个null值,让项目直接报错。在kibana中看到一下信息。

钉钉效果

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200713A0VLKE00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券