天天看點

《Cacti實戰》——1.3 Cacti的架構與原理

本節書摘來自華章計算機《cacti實戰》一書中的第1章,第1.3節,作者:劉钊,張躍著, 更多章節内容可以通路雲栖社群“華章計算機”公衆号檢視。

本節分為兩大部分,第一部分介紹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.3.2 cacti系統的資料流向

cacti系統的資料流向主要分為三個階段:資料的檢索、資料的存儲和資料的可視化(資料展示),如圖1-8所示。

第3章将詳細介紹這3個階段的技術細節,這裡,讀者隻需要有個大緻的印象即可。

通過前文的介紹,結合這3個主環節,可以總結出一個完整的cacti系統的工作流程。

cacti系統的管理、使用、配置均通過浏覽器視窗來完成。可以通過浏覽器建立一個監控圖表、監控模闆等。所有的管理資料都存儲在mysql資料庫中。同時,在一台cacti伺服器中,還可以發現poller程式,它的任務主要是在被監控裝置中輪詢采集監控資料,它就好像一個路由器或者網關,将系統環境中的伺服器裝置、儲存設備、網絡裝置、安全裝置等一系列的it裝置的運作資料接駁進cacti系統。這些輪詢采集到的資料被儲存在rrd檔案中,cacti系統運用rrd資料檔案來建立監控圖形。