Supervisor 是由 Python 語言編寫、基于 linux 操作系統(tǒng)的一款服務(wù)器管理工具呵扛,用于監(jiān)控服務(wù)器的運行每庆,發(fā)現(xiàn)問題能立即自動預(yù)警及自動重啟等。
Cloud Insight 是一款次世代監(jiān)控工具兼數(shù)據(jù)管理平臺今穿。使用 StatsD 采集性能指標缤灵,在 HBase 存儲之上,使用 OpenTSDB 來對性能指標進行聚合、分組腮出、過濾帖鸦。
使用 Supervisor 的原因
- 如果你有很多進程在跑,不時還需要 start/stop/restart 一下進程
- 如果哪天由于某種原因胚嘲,進程掛了作儿,你需要重啟進程或定時執(zhí)行腳本
- 如果有多個進程,有些是同一項目馋劈,盡量可以同時啟動/停止等
如果你有以上任意一種情況攻锰,那用 Supervisor 管理進程無疑再合適不過了,把你所有 *nix 進程都配置進 ini 文件中妓雾,這樣所有的進程就變成了 Supervisor 的子進程娶吞。對于子進程,Supervisor 可以做到準確管理(有 web 界面)械姻,可以進行分組妒蛇,一組組的 或者授權(quán)非 root 用戶。
Supervisor 管理進程楷拳, Cloud Insight 監(jiān)控進程
Supervisor 只能管理進程绣夺,對進程進行操作,但不能監(jiān)控進程欢揖,雖然有 web 界面可以顯示/管理的進程乐导,但不具備一般意義上的監(jiān)控。例如實時展示進程數(shù)據(jù)浸颓,出現(xiàn)問題有相應(yīng)報警郵件物臂。
Cloud Insight 可以監(jiān)控 Supervisor 管理的進程數(shù)量和運行情況,也可以單獨監(jiān)控進程产上,也就是說進程無論是否被 Supervisor 管理棵磷,Cloud Insight 都可以監(jiān)控。
像上面圖片這樣谢鹊,監(jiān)控所有進程的 IO 讀寫算吩,內(nèi)存,CPU佃扼,打開文件等等偎巢,也可以配置單個某一個進程的上述指標,查看正常情況下進程的資源消耗兼耀,如果出現(xiàn)異常郵件報警压昼。例如假死等情況發(fā)生的時候求冷,進程也沒掛,但資源消耗會有異常窍霞,這些通過告警通通提前知道匠题。
Cloud Insight 支持監(jiān)控 Supervisor
Cloud Insight 不僅可以監(jiān)控進程相關(guān)的數(shù)據(jù),同樣支持監(jiān)控 Supervisor但金。Supervisor 管理進程的啟動/停止/重啟韭山,如果 Supervisor 本身出問題了,那前面那些進程操作也就執(zhí)行不了冷溃,雖然 Supervisor 本身不會出現(xiàn)什么問題掠哥,但這也不是萬無一失的,所以監(jiān)控上還是好的秃诵。
監(jiān)控進程,設(shè)置告警
如果有一個進程掛了塞琼,或者假死菠净,怎么能夠及時知道?
配置上圖這樣的報警策略:
- 選擇性能指標:指標任意選一個
process
的指標派近,over
選定特定進程攀唯,例如process:python
就是監(jiān)控 Python 進程數(shù)據(jù)的。 - 設(shè)置報警條件:設(shè)置一個閾值渴丸,達到閾值時會觸發(fā)報警侯嘀;此外還可以配置設(shè)置數(shù)據(jù)丟失(進程掛了自然也就不會再發(fā)送數(shù)據(jù))時,直接發(fā)送報警郵件谱轨。
- 再下面戒幔,就是命名報警和設(shè)置通知用戶。
總之土童,如果你關(guān)心你的應(yīng)用進程情況诗茎,或者在使用 Supervisor,不妨試試 Cloud Insight献汗,永久免費版等你來用敢订!
OneAPM Cloud Insight 集監(jiān)控、管理罢吃、計算楚午、協(xié)作、可視化于一身尿招,幫助所有 IT 公司醒叁,減少在系統(tǒng)監(jiān)控上的人力和時間成本投入司浪,讓運維工作更加高效、簡單把沼。想閱讀更多技術(shù)文章啊易,請訪問 OneAPM 官方技術(shù)博客
本文轉(zhuǎn)自 OneAPM 官方博客
參考文檔: