文档文档

基于层级结构抑制 Kapacitor 警报

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

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

如果集群中一台主机上的 CPU 峰值导致机器离线,那么您将收到一个警报,而不是收到 CPU 峰值的**主机级别**警报 ** 离线节点的**集群级别**警报 – 即节点离线的警报。集群级别警报将抑制主机级别警报。

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

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

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

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

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

分层警报抑制示例

以下 TICKscript 代表分层警报架构中的两个警报。第一个是特定于主机的 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 开源版本现已公开发布 Alpha 版

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

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

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

有关如何开始使用的更多信息,请查看