如果你有很多程序在跑,不時還需要 start/stop/restart 一下程序
如果哪天由于某種原因,程序挂了,你需要重新開機程序或定時執行腳本
如果有多個程序,有些是同一項目,盡量可以同時啟動/停止等
如果你有以上任意一種情況,那用 supervisor 管理程序無疑再合适不過了,把你所有 *nix 程序都配置進 ini 檔案中,這樣所有的程序就變成了 supervisor 的子程序。對于子程序,supervisor 可以做到準确管理(有 web 界面),可以進行分組,一組組的 或者授權非 root 使用者。
supervisor 隻能管理程序,對程序進行操作,但不能監控程序,雖然有 web 界面可以顯示/管理的程序,但不具備一般意義上的監控。例如實時展示程序資料,出現問題有相應報警郵件。
cloud insight 可以監控 supervisor 管理的程序數量和運作情況,也可以單獨監控程序,也就是說程序無論是否被 supervisor 管理,cloud insight 都可以監控。
像上面圖檔這樣,監控所有程序的 io 讀寫,記憶體,cpu,打開檔案等等,也可以配置單個某一個程序的上述名額,檢視正常情況下程序的資源消耗,如果出現異常郵件報警。例如假死等情況發生的時候,程序也沒挂,但資源消耗會有異常,這些通過告警通通提前知道。
cloud insight 不僅可以監控程序相關的資料,同樣支援監控 supervisor。supervisor 管理程序的啟動/停止/重新開機,如果 supervisor 本身出問題了,那前面那些程序操作也就執行不了,雖然 supervisor 本身不會出現什麼問題,但這也不是萬無一失的,是以監控上還是好的。
如果有一個程序挂了,或者假死,怎麼能夠及時知道?
配置上圖這樣的報警政策:
選擇性能名額:名額任意選一個 <code>process</code> 的名額,<code>over</code> 標明特定程序,例如 <code>process:python</code> 就是監控 python 程序資料的。
設定報警條件:設定一個門檻值,達到門檻值時會觸發報警;此外還可以配置設定資料丢失(程序挂了自然也就不會再發送資料)時,直接發送報警郵件。
再下面,就是命名報警和設定通知使用者。
參考文檔:
<a href="http://www.wftgb.com/shanyou/p/5075744.html">程序監控工具supervisor 啟動mongodb</a>