我正在测试 Bosun (Stack Exchange 的开源监控和警报系统)我对如何监控“ bool ”指标感到很困惑。
如果某些进程未运行,我希望得到提醒。
为了收集指标,我尝试了两种方法:
在documentation of scollector我看到可以配置某些进程 我没有收到任何相关指标。我是否需要任何特殊配置来启用这些进程检查?
我创建了一个自定义收集器来计算这些进程。
为了获得提醒,我创建了以下规则:
alert test {
template = test
crit = avg(q("avg:myprocess.running{host=*}", "10m", "")) < 1
}
这是正确的做法还是有更好的方法?
最佳答案
选项
- 如果您有警报并且正在使用 OpenTSDB,当标记集“消失”(检查持续时间的 2 倍没有数据)时,警报将变为未知。然后你可以将这个未知数视为“向下”的意思。
- 如果指标被发送,无论它是上升还是下降(即总是会有 0 或 1,您可以对此发出警报。这里唯一的问题是 avg 并没有真正意义(除非你在做模糊逻辑)。所以你可能想使用
last
、max
或min
。
session
scollector conf 在每台主机上运行。配置行应与您指定的文档链接中指定的一样。另请记住,您的示例警报没有 warnNotification 或 critNotification,因此它只会出现在仪表板上(不会设置电子邮件或 http 帖子)。
标签集和 OpenTSDB 查询
了解“avg:myprocess.running{host=*}”中的第一个参数很重要。所以 avg 的意思是取所有你没有指定的标签并取它们的平均值。因此,例如,如果您也有像我们的 scollector 那样的 ID 标签,您可能希望在查询字符串中执行 sum
而不是 avg
,并在少于一个时发出警报过程。
关于monitoring - 检查进程是否在 Bosun 上运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29213850/