Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Deployment 使用Monit而不是基本的Upstart设置是否有好处?_Deployment_Node.js_Monit_Upstart - Fatal编程技术网

Deployment 使用Monit而不是基本的Upstart设置是否有好处?

Deployment 使用Monit而不是基本的Upstart设置是否有好处?,deployment,node.js,monit,upstart,Deployment,Node.js,Monit,Upstart,我正在将服务器配置为作为守护进程运行node.js。我已经设置了Upstart来处理节点的启动和关闭,这非常有效。下一步是确保node.js在死亡时重新启动。一些人建议使用(或)来监视流程(在Monit的情况下,通过向服务器发出HTTP请求并等待响应) 我很乐意使用莫尼特或赋格之类的东西,但我不确定为什么人们不会(或不能)只使用Upstart的。我假设Upstart将监视已启动进程的PID,如果它死掉,就重新启动它。Monit或Fugue给了你什么,而Upstart没有给你什么?鉴于Upstar

我正在将服务器配置为作为守护进程运行node.js。我已经设置了Upstart来处理节点的启动和关闭,这非常有效。下一步是确保node.js在死亡时重新启动。一些人建议使用(或)来监视流程(在Monit的情况下,通过向服务器发出HTTP请求并等待响应)


我很乐意使用莫尼特或赋格之类的东西,但我不确定为什么人们不会(或不能)只使用Upstart的。我假设Upstart将监视已启动进程的PID,如果它死掉,就重新启动它。Monit或Fugue给了你什么,而Upstart没有给你什么?

鉴于Upstart只是检查PID,像Monit这样的工具会发出实际请求,它会更忠实地为你提供应用程序健全性的答案。一个进程可能正在愉快地运行,但在某种程度上被卡住了,因此它不能为请求提供服务。

我强烈建议同时使用Monit和upstart。Upstart使node.js的去监控变得很容易,Monit附带了大量有用的应用程序检查,包括内存使用情况、http请求、cpu使用情况等等

这是您可以获得的最基本设置的示例。您还可以轻松地添加另一个monit配置(使用相同的启动和停止脚本),但使用PID文件和监视进程stats

对于下面的配置,在应用程序中创建一个简单的仅本地请求处理程序,如果一切正常,它只响应状态200

监视器配置: Upstart脚本(/etc/init/app_name):
这是一个非常好的观点。对于一个工作的Web服务器来说,不仅仅是活着,它还必须能够为请求提供服务!我认为这基本上解决了问题。Upstart respawn是可以接受的,只要您的应用程序不可能处于活动状态但无法使用。Monit更适合于web服务器这样的环境,在这种环境中,服务器可能处于活动状态,但没有响应。谢谢你的回答,现在很清楚了。除了测试本地进程外,我还使用Monit测试远程服务器的几个端口和本地文件权限,这非常有用。你也应该永远签出
check host app_name with address 127.0.0.1
    start "/sbin/start app_name"
    stop "/sbin/stop app_name"
    if failed port 80 protocol HTTP
        request /ok
        with timeout 5 seconds
        then restart
description "app_name"

start on startup
stop on shutdown

script
    # Node needs HOME to be set
    export HOME="path/to/node/app"

    exec sudo -u nodejs /usr/local/bin/node path/to/node/app/server.js production 2>>/var/log/app_name.error.log >>/var/log/app_name.log
end script