文档文档

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

将所有警报设置为仅状态更改模式,这意味着仅当警报状态更改时才会发送警报。仅当 globaltrue 时适用。

选项

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

名称类型描述
actionstringZenoss 路由器名称
methodstringZenoss 路由器方法
typestringZenoss 事件类型
tidinteger临时请求事务 ID
summarystring事件摘要
devicestring与事件相关的设备
componentstring与事件相关的组件
evclasskeystringZenoss 事件类键
evclassstringZenoss 事件类
collectorstringZenoss 收集器
messagestring事件消息
customFieldmap要附加到事件的自定义字段

示例:处理程序文件

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

此页是否对您有帮助?

感谢您的反馈!


Flux 的未来

Flux 即将进入维护模式。您可以继续像当前一样使用它,而无需对您的代码进行任何更改。

阅读更多

InfluxDB 3 开源现已公开发布 Alpha 版

InfluxDB 3 开源现在可用于 Alpha 测试,根据 MIT 或 Apache 2 许可获得许可。

我们正在发布两个产品作为 Alpha 版的一部分。

InfluxDB 3 Core 是我们新的开源产品。它是用于时间序列和事件数据的最新数据引擎。InfluxDB 3 Enterprise 是一个商业版本,它建立在 Core 的基础上,增加了历史查询功能、读取副本、高可用性、可伸缩性和细粒度的安全性。

有关如何入门的更多信息,请查看