磁盘的 Elastalert 规则 space

Elastalert rule for disk space

我正在使用 metricbeat 监控磁盘 space 使用情况。

现在我想根据磁盘大小通过 Elastalert 发出警报。

当磁盘 space 使用超过 50% 时发出警报

当磁盘 space 使用超过 70% 时发出警报

当磁盘 space 使用超过 80% 时发出警报

当磁盘 space 使用超过 95% 时发出警报

磁盘 space 使用率超过 100% 时发出警报

现在要注意的是,当它超过特定阈值(50、70、80、95、100)时,应该只发出一次警报

因此,如果已经发送超过 50% 标记的警报,则不应发送 50.1% / 50.2% / ... / 69.9% 的警报

只有在超过 70% 时才会发出下一个警报。

初始方法:

If (dir size==50 || dir size==70 || dir size ==80 || dir size==95 || dir size ==100)
alert

我计划使用 "any rule" 将磁盘 space 字段匹配到不同的值和警报。但这也可能会产生错误警报,原因是如果存储在过去 1 小时内饱和到 50.0%(考虑没有新数据写入数据库)并且如果我们每 10 分钟评估一次规则,它将在该小时内发出 6 次警报.我也不想使用 realert,因为我不知道要等多久。

方法 v1:

创建 n 个规则配置,其中 n 是不同条件的数量 使用一个很长的 realert 设置,它实际上是 "never"

realert: 
weeeks: 9999

这种方法并不理想,因为我们需要重复提醒。 示例 - 当使用率下降到 50% 以下然后再次超过 50% 时,需要警报。

方法 v2: 可以使用两个规则的组合。 (只考虑50%)

规则 1:检查磁盘 space >= 50,发送邮件,启用规则 2 并使用命令禁用自身

规则 2:检查磁盘 space <50,启用规则 1,使用命令禁用自身。

有更好的方法吗?

创建了自定义规则。有关详细信息,请查看此 post: Using Elastalert to monitor disk growth