自動化監控系統(一)需求分析、架構設計


  大家好,我叫大倪,出來工作快兩年了,現在從事運維工作。我接觸python已經有一年多了(邊上班邊學習),python是門很不錯的語言(我也只接觸過這一門),可以做很多事情,而我接觸它,是因為想往自動化運維方向發展,學了這么久,總得有拿的出手的作品才行,那就寫個自動化監控系統吧,不過我沒從事過開發,自己肯定搞不定的,這里我就借鑒(抄)Alex老師的需求分析、架構設計、表結構設計等等,別的自己實現。

  下面這個鏈接是我買的視頻,用的是Django web框架,

http://edu.51cto.com/course/course_id-6208.html

 

 

 

一、監控的項目
網絡層面:
網絡流量、延遲、基本存活狀態
系統層面:
cpu\disk\ram\load\...
應用層:
mysql、tomcat、nginx、redis、django、ha-proxy、squid。。。cdn。。
業務層面:
pv、uv、訂單總量。。。。。。
硬件層面監控:
磁盤、溫度。。。。。。


二、優劣點:
從服務器的角度來講
主動監控:是監控服務器 器主動向客戶端索取數據
好處:
1、不需要裝客戶端。
2、簡單
壞處:
1、當客戶端過多的時候,就出現了瓶頸(解決方法:通過分布式,用代理服務器)
2、不易靈活的定制各種監控插件

被動監控:是客戶端主動向服務 器匯報數據
好處:對服務器端的壓力小,
靈活的定制各種監控插件
延遲小
壞處:
1、需要裝客戶端。



三、監控系統需求討論
1、可監控常用系統服務、應用、網絡設備等。
2、一台主機上可監控多個不同服務、不同服務的監控間隔可不同
3、同一個服務在不同主機上的監控間隔、報警閥值可不同。
4、可以批量的給一批主機添加、刪除、修改要監控的服務。
5、告警級別:
不同的服務 因為業務重要程度不同,如果出了問題可以設置不同的報警
可以指定特定的服務或告警級別的事件通知給特定的用戶
告警級別的升級設定
6.歷史數據 的存儲和優化
● 實現用最少的空間占用量存儲最多的有效數據

● 如何做到1s中之內取出一台主機上所有服務的5年的監控數據?

7. 數據可視化,如何做出簡潔美觀的用戶界面?

8.如何實現單機支持5000+機器監控需求?

9.采取何種通信方式?主動、被動?

10.如何實現監控服務器的水平擴展?



四、采用什么架構?
•Mysql
•主動通信? Snmp,wget…
•被動通信?Agent ---how to communicate with the monitor server
•Socket server –> Sockect client
•能否用現成的c/s架構? Rabbit mq, redis 訂閱發布, http ?

采用HTTP好處
1.接口設計簡單
2.容易水平擴展做分布式
3.Socket穩定成熟,省去較多的通信維護精力

五、設計架構圖:

 







免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM