Zenoss 事件处理程序
Zenoss 是一个混合 IT 监控服务,用于监控虚拟和物理 IT 环境。配置 Kapacitor 以将事件发送到 Zenoss。
配置
Zenoss 事件处理程序的配置以及默认的 选项 值在您的 kapacitor.conf 文件中设置。下面是一个配置示例。
[zenoss]
enabled = true
url = "https://tenant.zenoss.io:8080/zport/dmd/evconsole_router"
username = ""
password = ""
action = "EventsRouter"
method = "add_event"
type = "rpc"
tid = 1
collector = "Kapacitor"
severity-map = {OK = "Clear", Info = "Info", Warning = "Warning", Critical = "Critical"}
global = false
state-changes-only = falseenabled
设置为 true 以启用 Zenoss 事件处理程序。
url
Zenoss 路由器端点 URL。例如:https://tenant.zenoss.io:8080/zport/dmd/evconsole_router。
username
用于 HTTP BASIC 身份验证的 Zenoss 用户名。若要禁用身份验证,请将其设置为空字符串 ("")。
password
用于 HTTP BASIC 身份验证的 Zenoss 密码。若要禁用身份验证,请将其设置为空字符串 ("")。
action
Zenoss 路由器名称。例如:"EventsRouter"。
method
EventsRouter 方法。例如:"add_event"。
type
事件类型。例如:"rpc"。
tid
临时请求事务 ID。例如:1。
collector
Zenoss 收集器名称。例如:"Kapacitor"。
severity-map
将 Kapacitor 告警级别映射到 Zenoss 事件严重级别。
{ OK = "Clear", Info = "Info", Warning = "Warning", Critical = "Critical" }global
如果设置为 true,则所有告警都会发送到 Zenoss,而无需在 TICKscript 中显式指定 Zenoss。
state-changes-only
将所有告警设置为仅状态更改模式,这意味着仅在告警状态发生变化时才会发送告警。仅当 global 设置为 true 时适用。
选项
以下 Zenoss 事件处理程序选项可以在 处理程序文件中设置,或者在使用 TICKscript 中的 .zenoss() 方法时设置。
| 名称 | 类型 | 描述 |
|---|---|---|
| action | string | Zenoss 路由器名称 |
| method | string | Zenoss 路由器方法 |
| type | string | Zenoss 事件类型 |
| tid | integer | 临时请求事务 ID |
| summary | string | 事件摘要 |
| device | string | 与事件相关的设备 |
| component | string | 与事件相关的组件 |
| evclasskey | string | Zenoss 事件类键 |
| evclass | string | Zenoss 事件类 |
| collector | string | Zenoss 收集器 |
| message | string | 事件消息 |
| customField | map | 要附加到事件的自定义字段 |
示例:处理程序文件
id: handler-id
topic: topic-name
kind: zenoss
options:
action: EventsRouter
method: add_event
type: rpc
tid: 1
summary: Example event summary.
device: example-device
component: example-component
evclasskey: example-event-class-key
evclass: example-event-class
collector: Kapacitor
message: Example event message.
customField:
customField1: customValue1
customField2: customValue2示例:TICKscript
|alert()
// ...
.zenoss()
.action('EventsRouter')
.method('add_event')
.type('rpc')
.tid(1)
.summary('Example event summary.')
.device('example-device')
.component('example-component')
.evclasskey('example-event-class-key')
.evclass('example-event-class')
.collector('Kapacitor')
.message('Example event message.')
.customField('customField1', 'customValue1')
.customField('customField2', 'customValue2')为避免在每个告警间隔发送消息,请使用 AlertNode.StateChangesOnly,这样只有告警状态发生变化的事件才会被发送到 Zenoss。
以下示例使用了 kapacitor.conf 中定义的 Zenoss 配置
kapacitor.conf 中的 Zenoss 设置
[zenoss]
enabled = true
url = "https://tenant.zenoss.io:8080/zport/dmd/evconsole_router"
username = ""
password = ""
action = "EventsRouter"
method = "add_event"
type = "rpc"
tid = 1
collector = "Kapacitor"
severity-map = {OK = "Clear", Info = "Info", Warning = "Warning", Critical = "Critical"}
global = false
state-changes-only = false从 TICKscript 发送告警到 Zenoss
以下 TICKscript 使用 .zenoss() 事件处理程序将消息“Hey, check your CPU”发送到 Zenoss 的 #alerts 通道,只要 CPU 空闲使用率低于 20%。
zenoss-cpu-alert.tick
stream
|from()
.measurement('cpu')
|alert()
.warn(lambda: "usage_idle" < 20)
.stateChangesOnly()
.message('Hey, check your CPU')
.zenoss()从已定义的处理程序发送告警到 Zenoss
以下设置将告警发送到 cpu 主题,消息为“Hey, check your CPU”。添加了一个 Zenoss 处理程序,该处理程序订阅 cpu 主题并将所有告警消息发布到 Zenoss。
创建发布警报消息到主题的 TICKscript。下面的 TICKscript 在空闲 CPU 使用率下降到 5% 以下时,将一条严重警报消息发送到 cpu 主题。
cpu_alert.tick
stream
|from()
.measurement('cpu')
|alert()
.crit(lambda: "usage_idle" < 5)
.stateChangesOnly()
.message('Hey, check your CPU')
.topic('cpu')添加并启用 TICKscript
kapacitor define cpu_alert -tick cpu_alert.tick
kapacitor enable cpu_alert创建一个处理程序文件,该文件订阅 cpu 主题并使用 Zenoss 事件处理程序将告警发送到 Zenoss。
zenoss_cpu_handler.yaml
id: zenoss-cpu-alert
topic: cpu
kind: zenoss
options:
summary: High CPU usage
device: example-device
component: example-component
evclasskey: example-event-class-key
evclass: example-event-class添加处理器
kapacitor define-topic-handler zenoss_cpu_handler.yaml此页面是否有帮助?
感谢您的反馈!
支持和反馈
感谢您成为我们社区的一员!我们欢迎并鼓励您对 Kapacitor 和本文档提供反馈和错误报告。要获取支持,请使用以下资源: