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 = false
enabled
设置为 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()
事件处理程序,每当空闲 CPU 使用率降至 20% 以下时,向 #alerts
Zenoss 频道发送消息“Hey, check your CPU”。
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
此页是否对您有帮助?
感谢您的反馈!