文档文档

SNMP 陷阱事件处理程序

SNMP 陷阱事件处理程序将告警消息作为 SNMP 陷阱发送。

配置

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

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

已启用

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

addr

SNMP 陷阱服务器的 host:port 地址。

community

用于陷阱的 community。

retries

发送陷阱时的重试次数。

选项

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

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

SNMP 陷阱数据类型

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

缩写数据类型
c计数器
i整数
nNull
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 陷阱事件处理程序

SNMP 陷阱事件处理程序可以在 TICKscript 和处理程序文件中使用,以将告警作为 SNMP 陷阱发送。

从 TICKscript 发送 SNMP 陷阱

以下 TICKscript 使用 .snmptrap() 事件处理程序在空闲 CPU 使用率降至 10% 以下时发送 SNMP 陷阱告警。

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 陷阱处理程序,该处理程序订阅 cpu 主题并将新告警作为 SNMP 陷阱发送。

创建一个 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 陷阱事件处理程序将告警作为 SNMP 陷阱发送。

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 Core 和 Enterprise

快速启动。更快扩展。

获取更新

InfluxDB 3 Core 是一个开源、高速、近实时数据引擎,可实时收集和处理数据,并将其持久化到本地磁盘或对象存储。InfluxDB 3 Enterprise 构建在 Core 的基础上,增加了高可用性、读取副本、增强的安全性以及数据压缩,从而实现更快的查询和优化的存储。InfluxDB 3 Enterprise 的免费层可供非商业家庭或业余爱好者使用。

有关更多信息,请查看