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