文档文档

SNMP trap 事件处理程序

SNMP trap 事件处理程序将警报消息作为 SNMP trap 发送。

配置

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

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

enabled

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

addr

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

community

用于 trap 的 community。

retries

发送 trap 时的重试次数。

选项

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

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

SNMP Trap 数据类型

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

缩写数据类型
c计数器
i整数
n空值
s字符串
t时间滴答

示例:处理程序文件

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 事件处理程序可以在 TICKscript 和处理程序文件中使用,以将警报作为 SNMP trap 发送。

从 TICKscript 发送 SNMP trap

以下 TICKscript 使用 .snmptrap() 事件处理程序,以便在空闲 CPU 使用率降至 10% 以下时将警报作为 SNMP trap 发送。

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" }}')

从已定义的处理程序发布到多个主题

以下设置将警报发送到 cpu 主题,消息为“Hey, check your CPU”。添加了一个 SNMP trap 处理程序,该处理程序订阅 cpu 主题并将新警报作为 SNMP trap 发送。

创建一个 TICKscript,将警报消息发布到主题。以下 TICKscript 在空闲 CPU 使用率降至 10% 以下时,向 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 主题并使用 SNMP trap 事件处理程序将警报作为 SNMP trap 发送。

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

此页面是否对您有帮助?

感谢您的反馈!


Flux 的未来

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

阅读更多

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

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

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

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

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