文档文档

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

当收到具有相同 resourceevent 在相关事件的 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 来源。如果为空,则使用配置文件中的来源。
correlatelist of strings相关事件列表,例如 event1event2
servicelist of strings受影响的服务列表。
timeoutduration stringAlerta 超时。默认值为 24 小时。
attributesmap of key value pairsAlerta 警报属性。

注意: 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 事件处理程序

启用 Alerta 事件处理程序并在 kapacitor.conf 中配置后,在 TICKscripts 中使用 .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 设置,将消息“Hey,请检查您的 CPU”发送到 Alerta。

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,请检查您的 CPU”。添加了一个 Alerta 处理程序,该处理程序订阅 cpu 主题,并使用 kapacitor.conf 中定义的默认设置将所有警报消息发布到 Alerta。

创建将警报消息发布到主题的 TICKscript。当空闲 CPU 使用率低于 10% 时,下面的 TICKscript 将警报消息发送到 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

此页面是否有帮助?

感谢您的反馈!


InfluxDB 3.8 新特性

InfluxDB 3.8 和 InfluxDB 3 Explorer 1.6 的主要增强功能。

查看博客文章

InfluxDB 3.8 现已适用于 Core 和 Enterprise 版本,同时发布了 InfluxDB 3 Explorer UI 的 1.6 版本。本次发布着重于操作成熟度,以及如何更轻松地部署、管理和可靠地运行 InfluxDB。

更多信息,请查看

InfluxDB Docker 的 latest 标签将指向 InfluxDB 3 Core

在 **2026 年 2 月 3 日**,InfluxDB Docker 镜像的 latest 标签将指向 InfluxDB 3 Core。为避免意外升级,请在您的 Docker 部署中使用特定的版本标签。

如果使用 Docker 来安装和运行 InfluxDB,latest 标签将指向 InfluxDB 3 Core。为避免意外升级,请在您的 Docker 部署中使用特定的版本标签。例如,如果使用 Docker 运行 InfluxDB v2,请将 latest 版本标签替换为 Docker pull 命令中的特定版本标签 — 例如

docker pull influxdb:2