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-oid | string | trap 的 OID。 |
data-list | object | 每个数据对象都有 oid 、type 和 value 字段。每个字段都是字符串。 |
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
此页面是否对您有帮助?
感谢您的反馈!