簡體   English   中英

使用Monit而不是基本的Upstart設置有什么好處?

[英]Is there benefit to using Monit instead of a basic Upstart setup?

我正在配置我的服務器以運行node.js作為守護進程。 我已經設置了Upstart來處理節點的啟動和關閉,這非常有效。 下一步是確保node.js在它死亡時重新啟動。 一些指南建議使用Monit (或Fugue )來監控進程(在Monit的情況下,通過向服務器發出HTTP請求並等待響應)。

我很高興使用像Monit或Fugue這樣的東西,但我不確定為什么不會(或不能)只使用Upstart的重生功能 我假設Upstart將監視啟動過程的PID,如果它死了就再次啟動它。 Monit或Fugue給你的Upstart不是什么?

我強烈建議同時使用Monit和暴發戶 Upstart可以很容易地對node.js進行deamon化,Monit包含大量有用的應用程序檢查,包括內存使用,http請求,cpu使用,...

這是您可以獲得的最基本設置的示例。 您還可以輕松添加另一個monit配置(具有相同的啟動和停止腳本),但使用PID文件和監視進程統計信息。

對於以下配置,在您的應用程序中創建一個簡單的僅本地請求處理程序,如果一切正常,則只響應狀態200。

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

Upstart腳本(/ etc / init / app_name):

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

鑒於Upstart只是檢查PID,像Monit這樣的工具可以提供實際請求,可以更真實地為您提供應用程序理智的答案。 一個進程可能會愉快地運行但是以某種方式停留,以至於它不提供請求。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM