3

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

如果某些进程未运行,我想收到警报。

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

  • scollector 的文档中,我看到可以配置某些进程,但我没有收到任何相关的指标。我是否需要任何特殊配置来启用这些进程检查?

  • 我创建了一个自定义收集器来计算这些进程。

为了获得警报,我创建了以下规则:

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

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

4

1 回答 1

2

选项

  1. 如果您有警报并且正在使用 OpenTSDB,那么当标记集“消失”(2x 检查持续时间没有数据)时,警报将变为未知状态。然后你可以将这个未知数视为“向下”。
  2. 如果指标被发送而不管它是向上还是向下(即总是会有一个 0 或 1,你可以对此发出警报。这里唯一的事情是 avg 并没有真正意义(除非你是做模糊逻辑)。所以你可能想使用last,maxmin.

会议

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

标签集和 OpenTSDB 查询

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

于 2015-03-23T16:08:35.080 回答