2015年6月18日 星期四

利用cacti量測網路流量 CentOS6.6

最近又要玩網路流量的東西,之前是使用MRTG的套件,跟今天玩得cacti來比,功能與便利性差太多了,如果需要量測網路流量,建議使用這個cacti套件

[系統需求]:基本的MySQL、apache ,假設都已經安裝完畢
[安裝rrdtool與smnp套件]:  yum install rrdtool net-snmp php-snmp net-snmp-utils
[安裝cacti]:
 可以先在網頁目錄下建立資料夾cacti,
[root@cacti ~]#mkdir /var/www/html/cacti/
[root@cacti ~]#cd /var/www/html/cacti/
[root@cacti cacti]#wget http://www.cacti.net/downloads/cacti-0.8.8d.tar.gz
順利下載後,解壓縮
[root@cacti cacti]#tar -zxvf cacti-0.8.8d.tar.gz
接著將解壓縮的資料移到 /var/www/html/cacti/
[root@cacti cacti]#mv cacti-0.8.8d/* .

可以看一下裡面資料的擁有者為1000,
先把這些資料owner指定給linux系統內一個成員內一個成員(假設是fyshung)
[root@cacti cacti]#chown -R fyshung  /var/www/html/cacti/

[資料庫]:
資料庫剛剛安裝完畢,尚未設定資料庫root 密碼等等,可以利用 mysql_secure_installation 這個指令來簡單設定。
假設已經設定好資料庫,我們先建立cacti這個資料庫
[root@cacti cacti]#mysql -u root -p
mysql>CREATE DATABASE cacti;
指定可存取資料庫cacti的使用者cacti並設定密碼是PassWorD,
mysql>GRANT ALL ON cacti.* TO cacti@localhost IDENTIFIED BY 'PassWorD';

設定完畢後,將資料格式匯入資料庫中,在剛剛下載的cacti檔案裡有cacti.sql這個檔案,
將這個檔案匯入即可
[root@cacti ~]# cd /var/www/html/cacti
[root@cacti cacti]# mysql -u  root -p cacti < cacti.sql
匯入成功後,修改cacti設定檔
[root@cacti cacti]# vi include/config.php
找到
$database_type = "mysql";
$database_default = "cacti";
$database_hostname = "localhost";
$database_username = "cacti";
$database_password = "PassWorD";
$database_port = "3306";
$database_ssl = false;
紅字部分改為剛剛設定資料庫的使用者與密碼。

[開始設定]
開啟瀏覽器,輸入網址後,會跳出設定畫面,
因為我們是新安裝,所以選擇New Install ,
如果沒問題的話,最後會到輸入帳號密碼的畫面
預設帳號密碼 admin / admin
成功登入後會要求變更密碼

說明一下,輪詢機制是透過poller.php這隻程式去執行的,
接者,要修改一下poller.php的權限,
假設未來執行的帳號為cacti這個user
[root@cacti cacti]# adduser cacti
[root@cacti cacti]# passwd cacti
[root@cacti cacti]# chown cacti poller.php
接著rra這資料夾也需要修改擁有者
[root@cacti cacti]# chown cacti rra
log 下的 cacti.log也需要變更擁有者
[root@cacti cacti]# chown cacti log/cacti.log

[設定排程]
以 cacti這個user的角色來設定crontab,我設定每5分鐘撈一次資料。
[root@cacti cacti]# crontab -u cacti -e
/5 * * * * /usr/bin/php /var/www/html/cacti/poller.php > /dev/null 2>&1
你也可以直接下指令撈資料
[root@cacti cacti]# php poller.php

[新增網路設備]
安裝完畢後,
新增要繪製的圖表
Console -> Graph Trees-->Add













填寫要顯示圖表的名稱,假設這個圖表示綜合大樓的流量表,填寫完畢後按[Create]送出








接下來新增要量測的設備
Console -> Devices  ->Add












其中填寫幾項
Description:此設備的名稱(如綜合大樓L3交換器)
Hostname:設備IP
Host Template:可選擇cacti預設的樣板來量測設備,
一般都是選擇Cisco Router
或是Generic SMNP-enabled Host(一般具SNMP功能的主機),
看需求而定












接下來要填的是要用SNMP 第幾版的功能,部分設備SNMP V1量測會有問題,建議V1以上
SNMP Community 如果設備沒改就用預設的public(我們基於安全都改掉了),
設定都沒問題的話就按下[create]














如果成功的話,接下來會看到該設備的相關訊息,
沒問題的話,就按下 [Create Graphs for this Host]




















接下來是選擇要針對那些Port來量測數據,勾選之後,選擇[In/Out Bytes With Total Bandwidth],記得按下[Create],如果設備有很多Port,可按next到下一頁
(記得先Create再到下一頁)


完成後,把設備的加入剛剛的圖表Graph Trees裡的項目中
點選[Devices],選擇剛剛設定的Device,將他加入要顯示的圖表中




















完成後再到Graphs -> Tree Mode去看看是否有產生資料



























你可以直接跑一遍 poller.php產生資料,或是等crontab設定的時間執行後再去看看