Cacti是一款網絡流量監測圖形分析工具,把LAMP的功能都結合起來,用於網絡流量監控,操做起來很是方便!讓咱們認識下Cacti簡介及工做流程。
1、Cacti簡介php
1. cacti是用php語言實現的一個軟件,它的主要功能是用snmp服務獲取數據,而後用rrdtool儲存和更新數據,當用戶須要查看數據的時候用rrdtool生成圖表呈現給用戶。所以,snmp和rrdtool是cacti的關鍵。Snmp關係着數據的收集,rrdtool關係着數據存儲和圖表的生成。
html
2. Mysql配合PHP程序存儲一些變量數據並對變量數據進行調用,如:主機名、主機ip、snmp團體名、端口號、模板信息等變量
mysql
3. snmp抓到數據不是存儲在mysql中,而是存在rrdtool生成的rrd文件中(在cacti根目錄的rra文件夾下)。rrdtool對數據的更新和存儲就是對rrd文件的處理,rrd文件是大小固定的檔案文件(RoundRobinArchive),它可以存儲的數據筆數在建立時就已經定義。ios
• 是一套基於php、mysql、SNMP、RRDTool開發的網絡流量監測圖形分析工具。Cacti經過snmpget獲取數據,使用RRDTool繪畫圖形。最後經過web方式呈現出來c++
• Cacti三層架構:web
– 數據採集層:經過SNMP或自定義腳本進行數據採集sql
– 數據存儲層:經過cacti模板等數據存放至MYSQL中數據庫
– 數據展示層:經過WEB方式呈現出來apache
也能夠把他理解爲一個php網站vim
Cacti各組件的功能如圖1.1所示:
二、Cacti工做原理
Cacti操做能夠分爲如下三部分,如圖2.1所示:
2.1 Data Retrieval
Cacti首先要作的工做就是收集數據,cacti使用Poller(輪詢器)收集數據。Poller是操做系統scheduler的擴展,如在類Unix系統中的crontab。如今的IT設施中會有許多不一樣的設備,如服務器、網絡設備等,cacti主要使用SNMP協議來從遠端的設備上收集數據,全部能夠使用SNMP協議的設備均可以被cacti監控。
2.2 Data Storage
存儲收集到的數據有許多方法,能夠使用數據庫、平面文件等,cacti使用的是RDDTool。RRD是RoundRobin Database(環形數據庫)的縮寫,RRD用來存儲和顯示時間序列數據,如網絡帶寬、機房溫度、服務器負載等,RRD使用很是緊湊的方式存儲數據,數據不會隨着時間的推移而增大,RRD還能夠生成美觀的圖形。這些特性使得cacti沒有存儲需求。RRD也作一席位其餘的工做,如RRD會將原始數據與已整合的數據進行合併,以使得歷史數據的存儲節省空間,RRD支持的整合功能包括:AVERAGE,MAXIMUM, MINIMUM和LAST。
2.3 Data Presentation
Cacti最大的一個特色是內置了RRDTool畫圖功能,將其與通用的web服務器相結合,能夠實如今任意平臺上使用瀏覽器就能夠查看監控畫面。
1、安裝
一、安裝必須的軟件包
yum -y install httpd php php-mysql php-ldap php-xml net-snmp-utils mysql mysql-server net-snmp lm_sensors gcc gcc-c++ libart_lgpl-devel zlib-devel libpng-devel freetype-devel
二、安裝rrdtool。
Rrdtool是一個繪圖工具,系統光盤中沒有提供,因此須要手工安裝
(1)安裝rrdtool編譯時所需軟件
(2)解壓rrdtool並進行配置安裝
tar xvf rrdtool-1.2.27.tar.gz
cd rrdtool-1.2.27
./configure --prefix=/usr/local/
Make && Make install
三、啓動mysql數據庫和httpd服務
/etc/init.d/mysqld start
chkconfig mysqld on
/etc/init.d/httpd start
chkconfig httpd on
四、安裝cacti
(1)cacti本質上是一個PHP網站,只須要把它解壓並拷貝到/var/www/html/目錄下便可
Tar xvf cacti-0.8.7g.tar.gz
mv cacti-0.8.7g /var/www/html/cacti
cd /var/www/html/cacti/
(2)建立cactiuser用戶,並設置相關目錄的屬主、屬組
useradd cactiuser
chown -R cactiuser.cactiuser rra/ log/
其中rra目錄是收集到的監控數據目錄,log目錄是日誌目錄
(3)建立數據庫。由於cacti並無把建立數據庫的腳本寫到網頁中,因此須要管理員手工建立相關數據庫。
進入Mysql數據庫
Mysql
建立數據庫
create database cactidb default character set utf8;
爲數據庫進行受權:
grant all on cactidb.* to 'cactiuser'@'localhost' identified by 'cacti';
(4)以cactiuser的身份把sql腳本導入到數據庫
mysql -ucactiuser -pcacti cactidb < cacti.sql
(5)修改相關的php文件,以便於apache經過php鏈接mysql數據庫時,能夠提供正確的用戶名、密碼等。
vim include/config.php
26行$database_type = "mysql";
$database_default = "cactidb";
$database_hostname = "localhost";
$database_username = "cactiuser";
$database_password = "cacti";
$database_port = "3306";
總結:
一、 先安裝cacti須要的系統包
二、 解壓安裝
三、 設置數據庫,導入cacti.sql
四、 修改config.php
(6)打開網頁按照嚮導完成安裝
在瀏覽器輸入http://192.168.10.64/cacti/install/
用戶名和密碼都是admin,首次登錄後,要求修改admin的密碼 123456
修改完後便可進入界面
2、監控自身
CACTI監控的時候,是經過SNMP實現的。
SNMP:簡單網絡管理協議 UDP16一、162
查詢方法:
輪詢:監控端週期性地查詢被監控端161
陷阱:被監控端主動向監控端彙報事件162
SNMP消息類型:
get-request:監控端查詢被監控端
get-next-request:監控端查詢被監控端某一項更詳細內容
set-request:監控端設置被監控端的某些參數
get-response:被監控端迴應監控端
trap:陷阱,被監控端主動向監控端彙報事件
一、配置snmp
vim /etc/snmp/snmpd.conf
二、啓動服務
/etc/init.d/snmpd start;chkconfig snmpd on
三、經過WEB頁面添加被監控主機
(1)刪除存在的主機
(2)添加要監控的主機
(3)添加監控項
上一步點擊Create後,把頁面拉到底部,後面顯示沒有數據,那麼它是無用的,點擊後面的X號,將其刪除。
添加上SNMP可以監控的項目
使用相同的辦法,把處理器信息也添加上。最後保存
(4)爲監控項繪製圖形
在WEB頁的最上端,點擊建立圖形
選項要監控的項目,而後點擊Create
(5)把建立的圖形加入到圖形樹
(6)爲圖形生成數據
在監控服務器上,以cactiuser的身份執行php命令
過幾分鐘顯示下圖爲正常
參考連接:
https://mp.weixin.qq.com/s/_3Ocv80v8dTMQIGxhiW4Ew
連接:
cacti論壇 :http://www.cnyunwei.com/forum-59-1.html
Cacti 0.8 Network Monitoring : http://club.topsage.com/thread-379998-1-1.html |
Centos6.8安裝cacti教程 : https://www.jb51.net/os/RedHat/512819.html
cacti監控工具之自定數據收集方法 : http://blog.51cto.com/zhaochj/1672199
cacti監控工具之數據收集方法、模板介紹及使用 薦 : http://blog.51cto.com/zhaochj/1669081
cacti監控工具之安裝篇 : http://blog.51cto.com/zhaochj/1666191
如何在 Cacti 中合併兩幅圖片 :https://mp.weixin.qq.com/s/nu_tPCTu_6HrpR79LEKTVQ