cacti——仙人掌
nagios——難搞死
zabbix——斬魄刀
php
cacti 什麼是Cacti? Cacti 在英文中的意思是仙人掌的意思,Cacti是一套基於PHP,MySQL,SNMP及RRDTool開發的網絡流量監測圖形分析工具。它經過snmpget來獲取數據,使用 RRDtool繪畫圖形,並且你徹底能夠不須要了解RRDtool複雜的參數。它提供了很是強大的數據和用戶管理功能,能夠指定每個用戶能查看樹狀結構、host以及任何一張圖,還能夠與LDAP結合進行用戶驗證,同時也能本身增長模板,功能很是強大完善。Cacti 的發展是基於讓 RRDTool 使用者更方便使用該軟件,除了基本的 Snmp 流量跟系統資訊監控外,Cacti 也可外掛 Scripts 及加上 Templates 來做出各式各樣的監控圖。 cacti是用php語言實現的一個軟件,它的主要功能是用snmp服務獲取數據,而後用rrdtool儲存和更新數據,當用戶須要查看數據的時候用rrdtool生成圖表呈現給用戶。所以,snmp和rrdtool是cacti的關鍵。Snmp關係着數據的收集,rrdtool關係着數據存儲和圖表的生成。 Mysql配合PHP程序存儲一些變量數據並對變量數據進行調用,如:主機名、主機ip、snmp團體名、端口號、模板信息等變量。 snmp抓到數據不是存儲在mysql中,而是存在rrdtool生成的rrd文件中(在cacti根目錄的rra文件夾下)。rrdtool對數據的更新和存儲就是對rrd文件的處理,rrd文件是大小固定的檔案文件(Round Robin Archive),它可以存儲的數據筆數在建立時就已經定義。關於RRDTool的知識請參閱RRDTool教學。 什麼是SNMP? snmp(Simple Network Management Protocal, 簡單網絡管理協議)在架構體系的監控子系統中將扮演重要角色。大致上,其基本原理是,在每個被監控的主機或節點上 (如交換機)都運行了一個 agent,用來收集這個節點的全部相關的信息,同時監聽 snmp 的 port,也就是 UDP 161,並從這個端口接收來自監控主機的指令(查詢和設置)。 若是安裝 net-snmp,被監控主機須要安裝 net-snmp(包含了 snmpd 這個 agent),而監控端須要安裝 net-snmp-utils,若接受被監控端經過trap-communicate發來的信息的話,則須要安裝net-snmp,並啓用trap服務。若是自行編譯,須要 beecrypt(libbeecrypt)和 elf(libraryelf)的庫。 什麼是RRDtools? RRDtool是指Round Robin Database 工具(環狀數據庫)。Round robin是一種處理定量數據、以及當前元素指針的技術。想象一個周邊標有點的圓環--這些點就是時間存儲的位置。從圓心畫一條到圓周的某個點的箭頭--這就是指針。就像咱們在一個圓環上同樣,沒有起點和終點,你能夠一直往下走下去。過來一段時間,全部可用的位置都會被用過,該循環過程會自動重用原來的位置。這樣,數據集不會增大,而且不須要維護。RRDtool處理RRD數據庫。它用向RRD數據庫存儲數據、從RRD數據庫中提取數據。 工做原理: snmp關係着數據的收集,rrdtool關係數據存儲和圖表的生成,snmp抓取的數據不是存儲在數據庫中,而是存儲在rrdtool生成的rrd文件中 簡單原理圖: