检查进程是否在 Bosun 上 运行

Check if a process is running on Bosun

我正在测试 Bosun(Stack Exchange 的开源监控和警报系统),我对如何监控 "boolean" 指标感到很困惑。

如果某些进程不是 运行,我想得到提醒。

为了收集指标,我尝试了两种方法:

为了获得提醒,我创建了以下规则:

alert test {
  template = test
  crit = avg(q("avg:myprocess.running{host=*}", "10m", "")) < 1
}

这是正确的做法还是有更好的方法?

选项

  1. 如果您有警报并且正在使用 OpenTSDB,当标记集 "disappears"(检查持续时间的 2 倍没有数据)时,警报将变为未知。然后你可以将这个未知数视为 "Down".
  2. 如果指标被发送,无论它是上升还是下降(即总是会有 0 或 1,您可以对此发出警报。这里唯一的问题是 avg 并没有真正产生很多感觉(除非你在做模糊逻辑)。所以你可能想使用 lastmaxmin.

会议

scollector conf 在每台主机上运行。配置行应与您指定的文档 link 中指定的一样。另请记住,您的示例警报没有 warnNotification 或 critNotification,因此它只会出现在仪表板上(不会设置电子邮件或 http 帖子)。

标签集和 OpenTSDB 查询

理解 "avg:myprocess.running{host=*}" 中的第一个参数很重要。所以 avg 的意思是取所有你没有指定的标签然后取它们的平均值。因此,例如,如果您也有像我们的 scollector 那样的 ID 标签,您可能希望在查询字符串中使用 sum 而不是 avg,并在进程少于一个时发出警报。