文档文档

基于层次结构抑制 Kapacitor 警报

Kapacitor 允许您构建具有多个“级别”或“层级”警报的强大监控和警报解决方案。但是,当事件同时触发高级警报和低级警报时,会出现问题,最终您会从不同的上下文中收到多个警报。AlertNode 的 .inhibit() 方法允许您在触发警报时抑制其他警报。

例如,假设您正在监控一个服务器集群。作为警报架构的一部分,您具有主机级别警报,例如 CPU 使用率警报、RAM 使用率警报、磁盘 I/O 等。您还具有集群级别警报,用于监控网络健康状况、主机正常运行时间等。

如果集群中主机上的 CPU 峰值导致机器脱机,您将收到节点脱机的单个警报,而不是收到 CPU 峰值的主机级别警报以及脱机节点的集群级别警报。集群级别警报将抑制主机级别警报。

使用 .inhibit() 方法抑制警报

.inhibit() 方法使用警报类别和标签来抑制或阻止其他警报。

// ...
  |alert()
    .inhibit('<category>', '<tags>')

category
此警报抑制或阻止警报的类别。

tags
为了抑制或阻止警报而必须匹配的逗号分隔的标签列表。

分层警报抑制示例

以下 TICKscripts 代表分层警报架构中的两个警报。第一个是特定于主机的 CPU 警报,每当空闲 CPU 使用率低于 10% 时,它会触发发送到 system_alerts 类别的警报。流式数据点按 host 标签分组,该标签标识数据点来自的主机。

cpu_alert.tick

stream
  |from()
    .measurement('cpu')
    .groupBy('host')
  |alert()
    .category('system_alerts')
    .crit(lambda: "usage_idle" < 10.0)

以下 TICKscript 是集群级别警报,用于监控集群中主机的正常运行时间。它使用 deadman() 函数在主机无响应或脱机时创建警报。deadman 警报中的 .inhibit() 方法抑制发送到 system_alerts 类别的所有警报,这些警报包括匹配的 host 标签,这意味着它们来自同一主机。

host_alert.tick

stream
  |from()
    .measurement('uptime')
    .groupBy('host')
  |deadman(0.0, 1m)
    .inhibit('system_alerts', 'host')

使用此警报架构,主机可能由于 CPU 瓶颈而无响应,但由于 deadman 警报抑制来自同一主机的系统警报,因此您不会收到 deadman 警报和高 CPU 使用率的警报通知;仅针对该特定主机的 deadman 警报。


此页面是否对您有帮助?

感谢您的反馈!


Flux 的未来

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

阅读更多

现已全面上市

InfluxDB 3 Core 和 Enterprise

快速启动。更快扩展。

获取更新

InfluxDB 3 Core 是一个开源、高速、最近数据引擎,可实时收集和处理数据,并将其持久保存到本地磁盘或对象存储。InfluxDB 3 Enterprise 构建在 Core 的基础上,增加了高可用性、读取副本、增强的安全性和数据压缩,从而实现更快的查询和优化的存储。InfluxDB 3 Enterprise 的免费层可供非商业家庭或业余爱好者使用。

有关更多信息,请查看