Alerta 事件处理器
Alerta 是一个监控工具,用于整合和去重来自多个来源的警报,以便快速“一览”可视化。Kapacitor 可以配置为将警报消息发送到 Alerta。
配置
Alerta 事件处理器的配置以及默认 选项 值在您的 kapacitor.conf
中设置。以下是一个配置示例
[alerta]
enabled = true
url = "http://127.0.0.1"
token = "mysupersecretauthtoken"
environment = "production"
origin = "kapacitor"
enabled
设置为 true
以启用 Alerta 事件处理器。
url
Alerta URL。
token
默认 Alerta 身份验证令牌。
token-prefix
默认令牌前缀。如果您收到无效令牌错误,您可能需要将其更改为 “Key”。
environment
默认 Alerta 环境。
origin
警报的默认来源。
correlate
当收到具有相同 resource
的警报,且 event
在相关事件的 correlate
列表中时,该警报将被关联。有关更多信息,请参阅 Alerta 文档。
选项
以下 Alerta 事件处理器选项可以在 处理程序文件 中设置,或者在使用 TICKscript 中的 .alerta()
时设置。
* 必需
名称 | 类型 | 描述 |
---|---|---|
token | string | Alerta 身份验证令牌。如果为空,则使用配置中的令牌。 |
token-prefix | string | Alerta 身份验证令牌前缀。如果为空,则使用 “Bearer”。 |
resource* | string | Alerta 资源。可以是模板,并且可以访问与 AlertNode.Details 属性相同的数据。默认值:{{ .Name }} |
event* | string | Alerta 事件。可以是模板,并且可以访问与 idInfo 属性相同的数据。默认值:{{ .ID }}。 |
environment | string | Alerta 环境。可以是模板,并且可以访问与 AlertNode.Details 属性相同的数据。默认值从配置中设置。 |
group | string | Alerta 组。可以是模板,并且可以访问与 AlertNode.Details 属性相同的数据。默认值:{{ .Group }}。 |
value | string | Alerta 值。可以是模板,并且可以访问与 AlertNode.Details 属性相同的数据。默认值为空字符串。 |
origin | string | Alerta 来源。如果为空,则使用配置中的来源。 |
correlate | 字符串列表 | 相关事件列表,例如,event1 、event2 。 |
service | 字符串列表 | 受影响的服务列表。 |
timeout | 持续时间字符串 | Alerta 超时。默认值为 24 小时。 |
attributes | 键值对映射 | Alerta 警报属性。 |
注意:
resource
和event
属性是必需的。由于这些必需属性,Alerta 无法全局配置。
示例:处理程序文件
topic: topic-name
id: handler-id
kind: alerta
options:
token: 'mysupersecretauthtoken'
token-prefix: 'Bearer'
resource: '{{ .Name }}'
event: '{{ .ID }}'
environment: 'Production'
group: '{{ .Group }}'
value: 'some-value'
origin: 'kapacitor'
correlate: 'event1', 'event2'
service: ['service1', 'service2']
correlate: ['service1', 'service2']
timeout: 24h
attributes:
key1: value1
key2: 8
booleanAttribute: TRUE
示例:TICKscript
|alert()
// ...
.stateChangesOnly()
.alerta()
.token('mysupersecretauthtoken')
.tokenPrefix('Bearer')
.resource('{{ .Name }}')
.event('{{ .ID }}')
.environment('Production')
.group('{{ .Group }}')
.value('some-value')
.origin('kapacitor')
.correlate('event1', 'event2')
.service('service1', 'service2')
.correlated('service1', 'service2')
.timeout(24h)
.attribute('booleanAttribute', TRUE)
.attribute('key1', 'value1')
使用 Alerta 事件处理器
在您的 kapacitor.conf
中启用和配置 Alerta 事件处理器后,在您的 TICKscript 中使用 .alerta()
属性将警报发送到 Alerta,或者定义一个订阅主题并将发布的警报发送到 Alerta 的 Alerta 处理程序。
为避免在每个警报间隔都发布消息,请使用 AlertNode.StateChangesOnly,以便只有警报状态更改的事件才发送到 Alerta。
以下示例使用在 kapacitor.conf
中定义的以下 Alerta 配置
kapacitor.conf 中的 Alerta 设置
[alerta]
enabled = true
url = "http://127.0.0.1"
token = "mysupersecretauthtoken"
environment = "production"
origin = "kapacitor"
从 TICKscript 向 Alerta 房间发送警报
以下 TICKscript 在空闲 CPU 使用率降至 10% 以下时,使用 .alerta()
事件处理器和 kapacitor.conf
中定义的默认 Alerta 设置,向 Alerta 发送消息 “Hey, check your CPU”。
alerta-cpu-alert.tick
stream
|from()
.measurement('cpu')
|alert()
.crit(lambda: "usage_idle" < 10)
.stateChangesOnly()
.message('Hey, check your CPU')
.alerta()
.resource('{{ .Name }}')
.event('{{ .ID }}')
.correlated('{{ .Name }}')
从定义的处理程序向 Alerta 房间发送警报
以下设置向 cpu
主题发送一条消息为 “Hey, check your CPU” 的警报。添加了一个 Alerta 处理程序,该处理程序订阅 cpu
主题,并将所有警报消息发布到 Alerta,使用 kapacitor.conf
中定义的默认设置。
创建一个将警报消息发布到主题的 TICKscript。以下 TICKscript 在任何时候空闲 CPU 使用率降至 10% 以下时,都会向 cpu
主题发送警报消息。
cpu_alert.tick
stream
|from()
.measurement('cpu')
|alert()
.crit(lambda: "usage_idle" < 10)
.stateChangesOnly()
.message('Hey, check your CPU')
.topic('cpu')
添加并启用 TICKscript
kapacitor define cpu_alert -tick cpu_alert.tick
kapacitor enable cpu_alert
创建一个处理程序文件,该文件订阅 cpu
主题,并使用 Alerta 事件处理器将警报发送到 Alerta 中的 alerts
频道。
alerta_cpu_handler.yaml
id: alerta-cpu-alert
topic: cpu
kind: alerta
options:
resource: '{{ .Name }}'
event: '{{ .ID }}'
origin: 'kapacitor'
correlate: ['service1', 'service2']
添加处理程序
kapacitor define-topic-handler alerta_cpu_handler.yaml
此页是否对您有帮助?
感谢您的反馈!