【问题标题】:Spec for http health checks?http 健康检查的规范?
【发布时间】:2017-10-26 08:17:36
【问题描述】:

我想实现一个简单的健康检查并通过 http 提供。

到目前为止,我只有编写 nagios 插件的经验。 Nagios 有这个API spec

是否已经有一种通用的方法来编写供应商中立的健康检查?

如果不是,健全的健康检查应该返回什么以使其可移植到许多不同的监控服务器实现?

【问题讨论】:

  • HTTP 作为协议怎么可能不是供应商中立的?你想从哪些方面检查谁的健康? HTTP 健康检查的目的通常只是验证正在检查其健康状况的 Web 服务器是否正常运行。一个空的响应就足够了。只要服务器能够响应,测试就通过了。
  • @marekful HTTP 是传输层。我也可以通过 Avian Carriers 使用 IP。我对健康检查输出的语法和语义感兴趣。这个问题是关于数据格式的,而不是关于如何传输数据的。 HTTP 确实已经提供了一个很好的特性:状态码。但我认为这还不够。
  • 您没有指定详细信息,并且问题中的唯一链接与问题无关。您的系统中有哪些组件?您要检查哪些组件的运行状况?
  • @marekful 您能否详细说明为什么提供的指向 nagios API 的链接不相关?对我来说,这就是它的全部意义:健康检查返回的数据结构规范。
  • 这些方面的某些方面可能会被 SNMP 等标准解决。所以,看看那些。

标签: monitoring specifications nagios health-monitoring


【解决方案1】:

尽管健康检查的格式没有标准,但您应该考虑主要的监控工具以及它们对您的协议的期望。 在大多数情况下,它们会对特定的 HTTP 应答代码做出反应。 例如Amazon Route 53:

等待 200 或更大且小于 400 的 HTTP 状态代码

另一个工具,Consul,有more specific definition:

服务的状态取决于 HTTP 响应代码:任何 2xx 代码都被认为是通过,429 Too Many Requests 是一个警告,其他任何事情都是失败。

因此,您可能需要检查一些稍后可能集成的顶级工具,然后选择适合所有这些工具的方法。

【讨论】:

  • 我很惊讶到现在还没有标准。但也许“http 状态 200 还可以,其他都不行”就足够了。
猜你喜欢
  • 2017-02-02
  • 1970-01-01
  • 2016-10-16
  • 2021-03-08
  • 2014-10-02
  • 2021-09-13
  • 2019-11-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多