文档文档

SNMP trap 事件处理器

SNMP trap 事件处理器将告警消息作为 SNMP traps 发送。

配置

SNMP trap 事件处理器的配置以及默认的 选项 值在您的 kapacitor.conf 中设置。下面是一个配置示例

[snmptrap]
  enabled = true
  addr = "localhost:162"
  community = "kapacitor"
  retries = 1

enabled

设置为 true 以启用 SNMP trap 事件处理器。

addr

SNMP trap 服务器的 host:port 地址。

community

用于 traps 的 community。

retries

发送 traps 时的重试次数。

选项

以下 SNMP trap 事件处理器选项可以在 handler 文件 中设置,或者在使用 TICKscript 中的 .snmpTrap() 时设置。

名称类型描述
trap-oidstringtrap 的 OID。
data-listobject每个数据对象都有 oidtypevalue 字段。每个字段都是字符串。

SNMP Trap 数据类型

SNMP trap 事件处理器支持以下数据类型

缩写数据类型
cCounter
i整数
nNull
s字符串
tTime ticks

示例:处理程序文件

id: handler-id
topic: topic-name
kind: snmptrap
options:
  trap-oid: 1.3.6.1.4.1.1
  data-list:
    - oid: 1.3.6.1.4.1.1.5
      type: s
      value: '{{ .Level }}'
    - oid: 1.3.6.1.4.1.1.6
      type: i
      value: 50
    - oid: 1.3.6.1.4.1.1.7
      type: c
      value: '{{ index .Fields "num_requests" }}'
    - oid: 1.3.6.1.4.1.1.8
      type: s
      value: '{{ .Message }}'

示例:TICKscript

|alert()
  // ...
  .snmpTrap('1.3.6.1.4.1.1')
    .data('1.3.6.1.4.1.1.5', 's', '{{ .Level }}')
    .data('1.3.6.1.4.1.1.6', 'i', '50')
    .data('1.3.6.1.4.1.1.7', 'c', '{{ index .Fields "num_requests" }}')
    .data('1.3.6.1.4.1.1.8', 's', '{{ .Message }}')

使用 SNMP trap 事件处理器

SNMP trap 事件处理器可在 TICKscripts 和 handler 文件中使用,以将告警作为 SNMP traps 发送。

从 TICKscript 发送 SNMP traps

以下 TICKscript 使用 .snmptrap() 事件处理器,在空闲 CPU 使用率低于 10% 时将告警作为 SNMP traps 发送。

snmptrap-cpu-alert.tick

stream
  |from()
    .measurement('cpu')
  |alert()
    .crit(lambda: "usage_idle" < 10)
    .message('Hey, check your CPU')
    .snmpTrap('1.3.6.1.2.1.1')
      .data('1.3.6.1.2.1.1.7', 'i', '{{ index .Field "value" }}')

从定义的 handler 发布到多个 topic

以下设置将告警发送到 cpu topic,消息为“Hey, check your CPU”。添加了一个 SNMP trap handler,它订阅 cpu topic 并将新告警作为 SNMP traps 发送。

创建将警报消息发布到主题的 TICKscript。当空闲 CPU 使用率低于 10% 时,下面的 TICKscript 将警报消息发送到 cpu 主题。

cpu_alert.tick

stream
  |from()
    .measurement('cpu')
  |alert()
    .crit(lambda: "usage_idle" < 10)
    .message('Hey, check your CPU')
    .topic('cpu')

添加并启用 TICKscript

kapacitor define cpu_alert -tick cpu_alert.tick
kapacitor enable cpu_alert

创建一个订阅 cpu topic 的 handler 文件,并使用 SNMP trap 事件处理器将告警作为 SNMP traps 发送。

snmptrap_cpu_handler.yaml

id: snmptrap-cpu-alert
topic: cpu
kind: snmptrap
options:
  trap-oid: '1.3.6.1.2.1.1'
  data-list:
    - oid: '1.3.6.1.2.1.1.7'
      type: i
      value: '{{ index .Field "value" }}'

添加处理器

kapacitor define-topic-handler snmptrap_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