文档文档

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() 时设置。

* 必需

名称类型描述
tokenstringAlerta 身份验证令牌。如果为空,则使用配置中的令牌。
token-prefixstringAlerta 身份验证令牌前缀。如果为空,则使用 “Bearer”。
resource*stringAlerta 资源。可以是模板,并且可以访问与 AlertNode.Details 属性相同的数据。默认值:{{ .Name }}
event*stringAlerta 事件。可以是模板,并且可以访问与 idInfo 属性相同的数据。默认值:{{ .ID }}。
environmentstringAlerta 环境。可以是模板,并且可以访问与 AlertNode.Details 属性相同的数据。默认值从配置中设置。
groupstringAlerta 组。可以是模板,并且可以访问与 AlertNode.Details 属性相同的数据。默认值:{{ .Group }}。
valuestringAlerta 值。可以是模板,并且可以访问与 AlertNode.Details 属性相同的数据。默认值为空字符串。
originstringAlerta 来源。如果为空,则使用配置中的来源。
correlate字符串列表相关事件列表,例如,event1event2
service字符串列表受影响的服务列表。
timeout持续时间字符串Alerta 超时。默认值为 24 小时。
attributes键值对映射Alerta 警报属性。

注意: resourceevent 属性是必需的。由于这些必需属性,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

此页是否对您有帮助?

感谢您的反馈!


Flux 的未来

Flux 即将进入维护模式。您可以继续像目前一样使用它,而无需对代码进行任何更改。

阅读更多

InfluxDB 3 开源版本现已发布公开 Alpha 版

InfluxDB 3 开源版本现已可用于 alpha 测试,根据 MIT 或 Apache 2 许可获得许可。

我们正在发布两个产品作为 alpha 版本的一部分。

InfluxDB 3 Core 是我们新的开源产品。它是一个用于时间序列和事件数据的最新数据引擎。InfluxDB 3 Enterprise 是一个商业版本,它建立在 Core 的基础上,增加了历史查询功能、读取副本、高可用性、可扩展性和细粒度的安全性。

有关如何开始使用的更多信息,请查看