Elastic:创建一个 Elastic Log 及 Index alert - 7.7 发布版

167 篇文章 31 订阅

我们很高兴宣布一个新的警报框架,该框架可作为 Kibana 7.7 版本的一部分,在 SIEM,Uptime,APM 和 Metrics 应用程序中提供一流的警报体验。

警报是整个 Elastic Stack 的基本用例,这就是为什么我们将其纳入 Kibana 的核心体验。 无论你是监视应用程序事务还是跟踪暴力登录尝试,我们的目标都是提供量身定制的体验,使您能够在正常的任务流程中构建强大的警报。 新的警报框架是从头开始构建的,旨在提供不只是便捷的界面。 我们知道,不仅需要通知人,这就是为什么我们还合并了触发预定义动作的功能的原因,该动作可以执行任何操作,从发送电子邮件到在 Slack 和 PagerDuty 等平台上使用全新的第三方集成。

在今天的文章中,我们将介绍如何使用 Elastic 7.7 发布所提供的新的警报界面来创建一个警报。

谈到 Alerts,很多开发者可能会联想到 Watchers。这两种方式都是为满足一定的条件的事件发送通知,但是两种有不同之处。首先,Watchers 是在 Elasticsearch 中运行的,而 Alerts 是在 Kibana 中运行的。目前 Watcher 在某种程度上提供了更为强大的功能,比如如它的 query 可以是任何形式的 DSL 查询,而 Alerts 则会有一些限制。根据目前的趋势来说,未来 Alerts 将全面代替 Watchers。在实现上:

  • 一个 Watcher 的创建有五个过程:trigger,input,condition,transfor 及 actions
  • 一个 Alert 是由三个部分组成的: schedule,trigger 及 action
    • actions 依赖于 Connectors

安装

首先,我们必须需要安装最新的 Elastic Stack 7.7 发布版的软件来进行安装。

Elasticsearch 安装

请参阅我之前的文章 “如何在 Linux,MacOS 及 Windows 上进行安装 Elasticsearch” 在自己的电脑上安装最新的 Elasticsearch 7.7 发布版。为了能够使得发送警报,我们必须在 config/elasticsearch.yml 中添加如下的配置:

xpack.security.authc.api_key.enabled: true

Kibana 安装

请参阅我之前的文章 “如何在 Linux,MacOS 及 Windows 上安装Elastic栈中的 Kibana” 在自己的电脑上进行安装最新的 Kibana 7.7 发布版。

Mertricbeat 安装

我们启动安装好的 Kibana,并进入页面:

点击 Add metric data

点击 System metrics:

根据我们的不同的平台分别进行安装 Metricbeat。

等我们安装好 Metricbeat 后,我们可以在 Kibana 的 Discover 看到导入的 Metricbeat 的数据:

设置阈值警报

警报使您可以根据数据更改采取措施。 它是基于以下原则设计的:如果您可以在 Elasticsearch 中查询某些内容,则可以对其发出警报。 只需定义查询,条件,时间表,要采取的措施,然后警报将完成其余工作。定制触发器将自动化工作流程付诸实践。

在今天的练习中,我们将利用 Metricbeat 的数据来进行侦测。如果我们电脑的内存使用超过80%,那么我们将发送一个警报。在 Metricbeat 中,有一个叫做 system.memory.used.pct 的字段。它表示已用内存的百分比。

我们可以有两种途径来创建警报,针对我们的 Metricbeat:

方法一:直接在 Metrics 应用中创建:

当我们第一次创建 alert 时,我们会看到如下的画面:

它显示我们需要为 xpack.encryptedSavedObjects.encryptionKey 设置一个值。点击上面的 Learn how:上面显示我们需要在 kibana.yml 中设置xpack.encryptedSavedObjects.encryptionKey。点击 Learn how 链接,我们可以了解更多关于这个 encryptionKey 的用法。我们参照链接中的介绍,把这个值设为 ‘fhjskloppd678ehkdfdlliverpoolfcr’,并重新启动 Kibana:


xpack.encryptedSavedObjects.encryptionKey: 'fhjskloppd678ehkdfdlliverpoolfcr'

我们也可以使用另外一种方法来生这个字符串:

./bin/kibana-encryption-keys generate

上面的命令将会生产类似如下的值:

xpack.encryptedSavedObjects.encryptionKey: e5f830cbcd95ba22ea66208ab4762b07
xpack.reporting.encryptionKey: 1cda1e5de20caa940612f5d8e64adf27
xpack.security.encryptionKey: b2646de0c08932077387511b9f0500a5

方法二:是直接从 Alerts and Actions 中来创建:

无论从那种方法来创建,它们的界面都是一样的。在7.7 的发布版中,我们可以在 Metrics, SIEM, Uptime 及 APM 中创建警报。

创建一个 Log 类型的警报

我们点击上面的 Create alert 按钮 或菜单:

 在上面,我们选择每分钟检查一次,并且每一分钟通知一次。我们选择 Metric threshold:

从上面可以看出来,目前免费的警报通知只有两个选择:Index 及 Server log。我们选择 Server log

点击上面的 Create a connector:

我们提供任何一个喜欢的 Connector 名字。在上面我选择了 Log。这个 Log connector 可以为以后其它的 Server log 所使用。 点击 Save 按钮:

在上面,我们可以点击在 message 右边的那个小图标查看我们可以在 message 输入框中可以使用的一些变量。点击 Save 按钮:

这样我们警报就设置好了。我们可以点击 Edit 进行编辑,或点击右边的三个点来进行删除。或 mute 的动作。

这个时候,我们可以查看一下 Kibana 运行的 console,不出意外,我们可以看到如下的输出:

它说明,我们的警报设置是成功的。

创建一个 Index 类型的警报

我们接着创建一个 Index 类型的警报。这次,我们不是在 Metricbeat 应用中创建的,我们可以在 Management 中开始。

和上面的大部分步骤是一样的,只是我们在 Action 中需要选择 Index:

数据将写入到 my_index 索引。 点击 Save 按钮

请注意上面的数据结构是一个 JSON 的对象。这个一定要注意。我们输入一下的内容:

{
    "actual": "{{context.valueOf.condition0}}",
    "threshold": 0.8
}

关于 context.metricOf.condition0,我们可以参阅之前的 Server Log 里介绍的那样。点击 Save 按钮:

我们可以查看 my_index :

GET my_index/_search

我们可以看到事件都被写入到 my_index 索引中了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值