天天看點

《Cacti實戰》——3.1 檢索流程

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

cacti系統的首要任務是對網絡内的監控裝置進行資料檢索,即監控資料的擷取過程。cacti使用輪詢器,也就是poller程式來完成這個工作。還記得麼?就是“同福客棧的大跑堂白展堂”。poller程式通過作業系統自身的計劃任務功能被定期觸發執行。windows平台的計劃任務功能就是自身的維護計劃程式,linux平台的計劃任務功能就是cron程式,通過編寫crontab腳本來實作。

在it資料中心的環境中有各種各樣的裝置,如伺服器、網絡裝置,甚至家用電器等。不用擔心,大部分裝置都支援簡單網絡管理協定(simple network management protocol,snmp)的标準,為了後續能夠更好地調試和運維,先介紹snmp的基本原理和架構。

snmp由一組網絡管理的标準組成,包含一個應用層協定(application layer protocol,alp)、資料庫模型(database schema)和一組資料物件。該協定支援網絡管理系統,用以監測連接配接到網絡上的裝置是否有任何引起管理上關注的情況。該協定是網際網路工程工作小組(internet engineering task force,ietf)定義的internet協定簇的一部分。

cacti進行資料檢索的主要流程如圖3-2所示。

《Cacti實戰》——3.1 檢索流程

還記得我們在主機上安裝了snmp的相關元件麼?整個監控網絡中snmp的裝置主要包含snmp server和snmp agent兩個角色。

可以将snmp agent程式了解為一種用戶端程式,它的主要作用就是将被監控裝置上的資料采集回來,按照mib庫的規則存放。通常情況下,linux的常用代理程式是net-snmp,windows的程式通過添加/删除程式可以安裝,而類似于cisco路由器、emc存儲之類的裝置是自帶snmp的。agent程式把從裝置讀到的各種資料(如cpu的負載資料)以smi(structure of management information)規定的格式寫到mib庫中。

這裡解釋一下mib。mib(management information library)可以簡單地了解為一張地圖或者一組抽屜,它是一個結構化的描述樹,如圖3-3所示。

agent程式從裝置中抽取出來的資料如果沒有mib的比對,就是一組毫無意義的資料,mib會按照事先制定好的規則,把這些資料按照它們各自的去處分别“入庫儲存”。

舉個例子:我們希望檢視伺服器收到了多少個icmp的請求,通過上面的樹狀圖一步一步向下尋找,那麼變量1.3.6.1.2.5.1中就儲存了icmp請求的數量。

《Cacti實戰》——3.1 檢索流程

下面該輪到snmp server工作了,使用者給cacti系統送出請求,需要檢視某一裝置的工作狀态,cacti将請求解析,然後控制snmp server程式,讓它去找指定的snmp agent的程式。

下面是伺服器與用戶端之間的一組對話。

“hp dl380伺服器上的agent你好!我是cacti server上運作的snmp管理控制程式,我現在是通過poller程式在跟你講話,我需要你這台機器上的cpu負載資料,你傳遞給我一下!”

“hi!snmp管理端你好!資料都在mib庫中,你可以直接擷取到。還記得我們約定好的mib變量規則吧?”

“hi!當然不會忘記啦,這不是國際通用的标準麼,自然記得,哦!對了,使用者還希望mib中的資料可以每5分鐘更新一下,辛苦啦!”

“願意效勞,我會每5分鐘到cpu中取資料,poller程式可以每5分鐘觸發你一下過來到mib中讀取。”

“deal!”

通過這麼一個流程,snmp server取到的資料通過cacti的加工組織和rrdtool的精美包裝,就可以呈現在使用者面前了。

繼續閱讀