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