1.3 Cacti的架構與原理
本節分為兩大部分,第一部分介紹Cacti的組織架構,通常新產品部分的介紹都比較晦澀難懂,所以我們通過一個形象生動的例子來介紹,大家看了不會感覺頭暈腦脹。第二部分闡述Cacti系統的數據流向,這里不用花太多時間,了解即可,因為后面章節會有詳細說明。
1.3.1 Cacti系統的組織架構
Cacti系統的各個模組之間的工作界面比較清晰,各個模組分工明確,耦合松散。如果把系統比作同福客棧(Cacti系統),那么會有以下幾個角色(系統模組)。
1.同福客棧的門臉——瀏覽器窗口
同福客棧,最初叫尚儒客棧,坐落在關中七俠鎮,作為當地的一個知名高端會所,迎接遠至十八里鋪,西涼河地帶的商業巨子,貴至六扇門的警界精英,連知縣(大嘴他姑父)都要高看一眼。所謂來的都是客,同福客棧以最佳的用戶體驗,最完美的用戶服務成為當地對外交流的形象窗口。
Cacti系統的對外窗口,即瀏覽器窗口,就好像同福客棧的門臉,所有的用戶需求、用戶操作、用戶指令均通過瀏覽器窗口來進行交互(當然也支持命令行交互),這么做的目的只有一個——提升服務質量,完善用戶體驗。
2.衡山派掌門人莫小寶遺孀、同福客棧掌柜佟湘玉——Cacti主體程序
掌柜負責客棧的整體協調,老白、大嘴、秀才一干人等均在她的調度下各司其職。誰不老實工作,她都能及時發現,開始發飆。
“額錯咧,額一開始就錯咧,額如果不嫁過來,額的夫君就不會死,額夫君不死,額就不會淪落到這個傷心的地方……”
Cacti主體程序是各個模組之間相互協同工作的基礎和核心,它按照內置的工作流程引擎來順序調度模組執行各自的工作。當模組工作不正常,或者數據偏離很大時,它可以及時發現其中的問題,并且第一時間報警,通知系統管理員進行系統維護。
3.盜圣、八大派左護法、同福客棧大跑堂白展堂——Poller程序
白展堂跟掌柜的關系最好,倆人配合最緊密,掌柜要他干啥,他絕沒二話,不過老白最核心的任務只有一個——跑堂,即把客人都迎進來,聽聽客人要吃點啥、喝點啥,都記下來。告訴李大嘴掌勺做飯。客人點完了菜,他還要隔三岔五地問問人家菜好不好吃,還需要點啥,最重要的就是得配合掌柜盯著客人,防止邢捕頭、燕小六這樣的二貨一拔刀,客人不結賬就跑了。
Poller程序主要是輪詢被監控設備的數據采集工具。它在被監控設備第一次接入時通知系統建立相應的數據保存區域(招呼客人),然后定期輪詢數據(回訪客人),將數據保存在rrd文件中(通知大嘴做飯),并且配合主體程序(佟湘玉),實時探測被監控設備的狀態,如果監控設備失去連接,就開始報警(防止客人不結賬就跑路)。
4.原七俠鎮第三十六任緇衣鋪頭,現同福客棧廚子李大嘴——RRDTool
李大嘴重情重義,不隨便拋頭露面,兢兢業業把飯菜做好。他的任務是按照老白從客戶那里得到的菜單,加工原料,形成菜品。即使面對錢老板的百般刁難,也能自成一家,獨創必勝閣、麥得勞等多種新式月餅。他的存在,為同福客棧滿足用戶需求奠定了基礎。雖不出彩,但足夠穩定的菜品質量,保證了為同福客棧的客源。
RRDTool的主要工作是將Poller程序輪詢采集到的數據進行妥善管理、保存和組織(從老白那里拿到采集的需求)。它是Cacti系統能夠畫出精美圖表的基礎。雖然RRDTool的軟件體積很小,結構也相對簡單,但是它工作穩定,資源開銷相對較小,即使面對大量數據的處理,也能得心應手,是Cacti系統穩定工作的保障。
5.前尚儒客棧老板、同福客棧賬房呂輕侯——MySQL
呂秀才本出身名門,三歲識千字,五歲背唐詩,七歲熟讀四書五經,八歲精通詩詞歌賦,無奈遭遇變故,將尚儒客棧變賣給佟湘玉,成為了同福客棧賬房。他飽讀詩書,識文斷字,是七俠鎮不可多得的技術型人才,曾經刀不見血地了結姬無命而成為關中大俠,任青州知府,之后升至戶部侍郎。呂秀才平時在同福客棧的主要工作是記賬,把同福客棧的固定資產、人事信息等記錄得井井有條。他是同福客棧長期穩定、繁榮發展的重要原因。
MySQL是一個關系型數據庫管理系統,它由瑞典MySQL AB公司開發,目前屬于Oracle公司(出身名門),由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,一般中小型網站的開發都選擇MySQL作為網站數據庫。由于其社區版的性能卓越,搭配PHP和Apache可組成良好的開發環境。MySQL在Cacti系統中負責記錄系統的基礎數據(固定資產)和用戶權限管理資料(人事信息)。
綜上所述,一個完整的Cacti系統各個模塊之間的關系應該如圖1-7所示。

圖1-7 Cacti各個模塊之間的邏輯關系
1.3.2 Cacti系統的數據流向
Cacti系統的數據流向主要分為三個階段:數據的檢索、數據的存儲和數據的可視化(數據展示),如圖1-8所示。

圖1-8 Cacti的數據流向
第3章將詳細介紹這3個階段的技術細節,這里,讀者只需要有個大致的印象即可。
通過前文的介紹,結合這3個主環節,可以總結出一個完整的Cacti系統的工作流程。
Cacti系統的管理、使用、配置均通過瀏覽器窗口來完成。可以通過瀏覽器新建一個監控圖表、監控模板等。所有的管理數據都存儲在MySQL數據庫中。同時,在一臺Cacti服務器中,還可以發現Poller程序,它的任務主要是在被監控設備中輪詢采集監控數據,它就好像一個路由器或者網關,將系統環境中的服務器設備、存儲設備、網絡設備、安全設備等一系列的IT設備的運行數據接駁進Cacti系統。這些輪詢采集到的數據被保存在rrd文件中,Cacti系統運用rrd數據文件來創建監控圖形。
- Learning Scala Programming
- 程序員面試筆試寶典(第3版)
- The DevOps 2.3 Toolkit
- 深入理解Django:框架內幕與實現原理
- Unity 2020 Mobile Game Development
- Learning Bayesian Models with R
- MATLAB實用教程
- ASP.NET 3.5程序設計與項目實踐
- Instant Ext.NET Application Development
- 計算機應用基礎實踐教程
- 輕松上手2D游戲開發:Unity入門
- Django 3.0入門與實踐
- OpenStack Networking Essentials
- RubyMotion iOS Develoment Essentials
- TypeScript 2.x By Example