每120秒使用SIGTERM重新启动一次Opsworks NodeJs应用

时间:2018-06-20 17:00:26

标签: node.js aws-opsworks

我们有一个NodeJS应用,该应用每N秒重新启动一次,没有任何明显的原因。

来自应用程序的日志正在Elastic Load Balancer(ELB)上配置的运行状况检查URL中正确显示。

尝试从命令行启动应用程序而不是依靠Opsworks进行操作后,我们发现SIGTERM正在发送monit信号。

/var/messages上的日志显示,当ELB尝试/时,monit试图使用/health作为TCP健康检查的URL。由于根路径在我们的应用程序中没有任何内容,因此每120秒就会重新启动

1 个答案:

答案 0 :(得分:1)

OpsWorks为NodeJs应用程序配置监视,并将检查的硬编码硬编码到路径/。我们找不到与此有关的文档,但在实际代码中很明显:

我们的解决方案涉及:

  • 将空内容放入状态为/的根路径200中,以使监视程序知道进程已启动。 (浅层健康检查)
  • 我们的旧健康路径,其中包含更详细的报告和状态200500,以了解是否需要按流程获取所需的资源。 (深度健康检查)

这可能并非在每种情况下都可行,因为我们在场景中使用特定的终结点,并且没有/的原始用途。