Kapacitor 事件处理程序
Kapacitor 可以通过向支持的事件处理程序发送 警报消息集成到监控系统中。目前,Kapacitor 可以将警报消息发送到特定的日志文件和 特定的 URL,以及许多第三方应用程序。
这些文档概述了配置选项、设置说明, handler file 和 TICKscript 语法,用于官方支持的Kapacitor事件处理程序。
配置事件处理程序
大多数事件处理程序所需的和默认的配置选项在您的 Kapacitor 配置文件中进行配置,kapacitor.conf。默认位置是 /etc/kapacitor/kapacitor.conf,但根据您的 Kapacitor 设置可能会有所不同。
许多事件处理程序提供可以在 TICKscript 或处理程序文件中定义的选项,而有些只能在处理程序文件中配置。这些可配置的选项在每个处理程序的文档中进行了概述。
添加和使用事件处理程序
如果适用,请在您的 kapacitor.conf 中启用事件处理程序。一旦启用,执行以下操作之一:
创建一个主题处理器和处理器文件,然后 添加处理器。
注意:并不是所有事件处理程序都可以在 TICKscripts 中使用。
使用处理程序文件创建主题处理程序
事件处理程序文件是一个简单的 YAML 或 JSON 文件,包含有关处理程序的信息。 尽管可以在 TICKscript 中添加多个处理程序,但在 TICKscript 中管理多个处理程序可能会很麻烦。 处理程序文件使您能够在 TICKscript 之外添加和使用处理程序。 对于某些处理程序类型,使用处理程序文件是唯一的选择。
处理程序文件包含以下内容:
* Required- * ID: 处理程序的唯一ID。
- * 主题: 处理程序订阅的主题。
- 匹配: 一个用于过滤匹配警报的 lambda 表达式。默认情况下,所有警报都会匹配。了解更多关于 匹配表达式 的信息。
- * 种类: 处理程序的种类。
- 选项: 由处理程序类型决定的可配置选项。如果没有提供,则使用在
kapacitor.conf中为处理程序定义的默认值。
id: handler-id
topic: topic-name
match: changed()
kind: slack
options:
channel: '#oh-nos'
添加处理程序
使用Kapacitor CLI定义一个新的处理程序和一个处理程序文件:
# Syntax
kapacitor define-topic-handler <handler-file-name>
# Example
kapacitor define-topic-handler slack_cpu_handler.yaml
在 TICKscript 中使用处理程序
许多事件处理程序可以直接在 TICKscripts 中用于发送事件。通常,这通过将消息发送到第三方的处理程序来实现。下面是一个示例 TICKscript,使用 .slack() 事件处理程序将 CPU 警报发布到 Slack:
stream
|from()
.measurement('cpu')
|alert()
.crit(lambda: "idle_usage" < 10)
.message('You better check your CPU usage.')
.slack()
如果警报处于除‘OK’以外的状态,或者警报刚刚从非‘OK’状态更改为‘OK’状态(警报恢复),则事件将发送到处理程序。使用 AlertNode.StateChangesOnly 属性仅在警报状态发生变化时将事件发送到处理程序。