SNMP trap 事件处理器
SNMP trap 事件处理器将告警消息作为 SNMP traps 发送。
配置
SNMP trap 事件处理器的配置以及默认的 选项 值在您的 kapacitor.conf 中设置。下面是一个配置示例
[snmptrap]
enabled = true
addr = "localhost:162"
community = "kapacitor"
retries = 1enabled
设置为 true 以启用 SNMP trap 事件处理器。
addr
SNMP trap 服务器的 host:port 地址。
community
用于 traps 的 community。
retries
发送 traps 时的重试次数。
选项
以下 SNMP trap 事件处理器选项可以在 handler 文件 中设置,或者在使用 TICKscript 中的 .snmpTrap() 时设置。
| 名称 | 类型 | 描述 |
|---|---|---|
| trap-oid | string | trap 的 OID。 |
| data-list | object | 每个数据对象都有 oid、type 和 value 字段。每个字段都是字符串。 |
SNMP Trap 数据类型
SNMP trap 事件处理器支持以下数据类型
| 缩写 | 数据类型 |
|---|---|
| c | Counter |
| i | 整数 |
| n | Null |
| s | 字符串 |
| t | Time 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此页面是否有帮助?
感谢您的反馈!
支持和反馈
感谢您成为我们社区的一员!我们欢迎并鼓励您对 Kapacitor 和本文档提供反馈和错误报告。要获取支持,请使用以下资源: