Cacti介紹

Cacti是一套基於PHP,MySQL,SNMP及RRDTool開發的網絡流量監測圖形分析工具。它通過snmpget來獲取數據,使用RRDtool繪畫圖形。它提供了非常強大的數據和用戶管理功能,可以指定每一個用戶能查看的樹狀結構、host以及任何一張圖,同時也能自己增加模板,功能非常強大完善,界面友好。其官方網站:http://www.cacti.net/

關於CactiEZ

CactiEZ是一個專門用作運行cacti的linux發行版,該版本由Jimmy Conner 製作發行,基於CentOS。安裝後只會在系統中安裝cacti和webmin所必須的軟件,整個系統非常小(安裝光盤只有310M),並且已經安裝好了一些cacti的插件,如BackUp,Discovery,Flowview,Haloe,MacTrack,Monitor, NTop,RRDClean,Reports,Thold,Tools,Update等,其中有些需要用戶自己啟用才可使用。整個操作系統一旦安裝完成,配置好IP後即可使用Cacti,為大家節省了安裝配置時間,只不過需要佔用一台服務器。

Qno QVF8025 雙WAN高速路由器

  • 2個WAN端口,支援50M大頻寬
  • 整合頻寬管理、流量負載均衡及防火牆
  • 支援PPPoE伺服器,多達30個用戶同時連線
Qno QVF8025 雙WAN高速路由器

 

該發行版的主頁地址為:http://cactiusers.org/

從CactiEZ安裝Cacti流量監控系統

http://cactiusers.org/下載最新的CactiEZ穩定版ISO鏡像文件(截至本文撰稿時是0.4版),刻錄成啟動光盤。然後設置服務器從光盤啟動,放入刻錄好的光盤,重啟服務器即可。服務器會自動進入安裝界面,然後回車,會自動完成Cacti的安裝。

clip_image002

clip_image004

clip_image006

整個安裝過程大概耗時20分鐘左右。安裝結束後,取出光盤,重啟服務器。重起後進入登陸界面,默認系統root用戶的密碼為:CactiEZ。

Qno SVM8641 All Gigabit 大頻寬專用高速安全路由器

  • 一台Hold住大頻寬
  • 400M以上效能,最多可接四條50M/100M線路
  • 3~4WAN+1~2LAN Gigabit Ports+1xUSB
Qno SVM8641 All Gigabit 大頻寬專用高速安全路由器

 

CactiEZ服務器的配置

網絡配置

默認情況下,CactiEZ是以DHCP自動獲取IP地址的。如果您的機器需要配置靜態IP的話,使用以下命令:netconfig

clip_image008

回車,進入接口配置界面:

clip_image010

選擇YES,回車:

clip_image012

根據提示,設置相應的IP和DNS,配置完成後,選擇OK,回車。

接口配置修改後,必須重啟相應的服務,修改的配置才會生效。

輸入以下命令:service network restart

clip_image014

然後用ifconfig查看端口當前的配置,看是否修改成功。

clip_image016

TP-LINK TL-SG3424 網管型交換器

  • JetStream™ 24 埠 Gigabit L2 網管型交換器
  • 4 個 Combo SFP 插槽
TP-LINK TL-SG3424 網管型交換器

 

安裝SSH服務

使用命令yum install openssh-server安裝SSH服務。根據提示,輸入y,自動下載安裝。

clip_image018

clip_image020

安裝完畢後,我們就可以從遠程登陸上去調測服務器了。(*^__^*) 嘻嘻……

首次登陸,使用root賬戶,密碼是CactiEZ。

然後我們要做的兩件事:一,增加非root賬戶;二,修改SSH配置文件,禁止root賬戶直接登陸,這樣做是為了保證CactiEZ服務器的安全。

使用“useradd 賬戶名”,增加相應的賬戶。

使用“passwd 賬戶名”,為相應的賬戶設置密碼。

clip_image022

接下來,修改SSH配置文件。

找到SSH配置文件所在,使用命令rpm –ql openssh-server

clip_image024

編輯sshd_config文件,使用命令vi /etc/ssh/sshd_config進入SSH配置文件的編輯模式。

在文件中找到PermitRootLogin這一行,將yes改為no,然後保存退出。

clip_image026

同理,要使配置生效,必須重啟相應的服務。

clip_image028

這樣一來,就只能以普通用戶的身份登陸,需要時再切換至root用戶。即使如此,設置密碼時還是不要過於簡單。

時區設置

首先,修改默認時區。Vi /etc/sysconfig/clock

clip_image030

將ZONE修改為“Asia/Shanghai”:

clip_image032

複製相應的時區文件,替換系統默認時區

對於中國服務器則執行:

# cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

設置NTP服務

CactiEZ自帶有NTP服務,但是默認情況下,並不向外部時鐘源同步時間,而且配置文件過於簡單,不利於控制。建議卸載重裝。命令:yum remove ntp

clip_image034

卸載完成後,重新使用yum install ntp命令安裝NTP服務。

用rpm –ql ntp 查看安裝的文件,並從中找出配置文件所在,進行必要的修改。

clip_image036

這裡只對常用的選項進行介紹,其餘的可以在網上查找相關資料。

clip_image038

告訴服務器默認情況下,不提供NTP查詢服務,不允許外部進行修改,不發送trap報文。

這一項無需修改,按照默認的就好了。

clip_image040

配置你想提供時間同步服務的客戶機所在的網絡,nomodify不允許客戶端修改服務器的配置,notrap不處理客戶端發送的trap報文。

clip_image042

配置你的時間服務器的上層時鐘源,一般可以從http://www.pool.ntp.org/上進行選取。

截圖中給出了區公司網管中心NTP服務器的外部時鐘源作為參考。

其餘的選項都可以保持默認值。然後重啟ntpd服務,使得配置文件生效。

clip_image044

查看對應的進程和端口是否啟用,確保服務是正常的。

ps aux | grep ntp

clip_image046

ntp使用udp協議,記得開放其123端口。

由於CactiEZ默認安裝有linux防火牆iptables,需要設置iptables,開放相關協議的端口。

考慮到iptables的配置較為麻煩,如果不熟悉的話,可以先將相關規則清除掉,再通過其他機制增強CactiEZ服務器的安全性。

刪除iptables規則,可用命令iptables –F。再用iptables –-list進行檢查,確認。

查看端口情況,可以用命令:netstat -unl

clip_image048

查看NTP服務器的同步狀態,使用ntpq -p 。

clip_image050

打*號的是當前提供時鐘源服務的上層時間服務器。

了解服務器當前狀態ntpstat

clip_image052

了解本地服務器和上層時間服務器之間的關係

clip_image054

從上圖看出,我們的上層時間服務器位於第2層,但是在查詢頂層服務器的時候出現了超時,有可能是該服務器做了限制查詢的。

Cacti流量監控系統的漢化

這裡所說的漢化並非完全意思上的中文化,我們所做的只是讓Cacti盡可能多地支持中文的顯示,方便我們查看相關的圖標,但是整個Cacti的配置界面還是英文的。

TP-LINK R600VPN SafeStream™ Gigabit寬頻VPN路由器

    1個Gigabit WAN連接埠,4個 Gigabit LAN連接埠提供高速有線連接
TP-LINK R600VPN SafeStream™ Gigabit寬頻VPN路由器

 

PHP頁面的漢化

CactiEZ到了0.4版,應該說已經做的比較好了。

默認情況下,直接輸入中文,在大部分web頁面都可以正常顯示。但是,在測試中發現還是有一個位置不能正常顯示中文,就是Data Source。(你目前看到的這個截圖是已經漢化過的,所以可以正常顯示中文。)

clip_image056

要漢化Data Source的頁面,需要修改data_suorces.php.

具體命令如下:

Find / -name data_suorces.php //找到data_suorces.php所在路徑

編輯data_suorces.php,刪除了"htmlentities"函數即可。

修改前:

form_selectable_cell("<a class='linkEditMain' href='data_sources.php?action=ds_edit&id=" . $data_source["local_data_id"] . "'>" . (($_REQUEST["filter"] != "") ? eregi_replace("(" . preg_quote($_REQUEST["filter"]) . ")", "<span style='background-color: #F8D93D;'>\\1</span>", title_trim(htmlentities( $data_source["name_cache"]), read_config_option("max_title_data_source"))) : title_trim(htmlentities($data_source["name_cache"]), read_config_option("max_title_data_source"))) . "</a>", $data_source[ "local_data_id"]);

修改後

form_selectable_cell("<a class='linkEditMain' href='data_sources.php?action=ds_edit&id=" . $data_source["local_data_id"] . "'>" . (($_REQUEST["filter"] != "") ? eregi_replace("(" . preg_quote($_REQUEST["filter"]) . " )", "<span style='background-color: #F8D93D;'>\\1</span>", title_trim($data_source ["name_cache"], read_config_option("max_title_data_source"))) : title_trim($data_source["name_cache"], read_config_option("max_title_data_source"))) . "</a>", $data_source["local_data_id"]);

至此,php頁面的漢化基本完成。

在大多數情況下,這樣程度的漢化能夠滿足我們的基本要求。

rrdtool的漢化

rrdtool的漢化是保證輸出的圖形可以正常顯示中文。這需要重新編譯rrdtool的源代碼,並安裝中文字體包。

a. 安裝編譯器和中文字體包

因為現在Cacti還不支持中文(希望以後的版本默認就可以支持中文,這樣就很省事情了,呵呵),主要是rrdtool在繪圖時不能正常現實中文字體,現在我們就要對rrdtool進行重新編譯。 
rrdtool支持中文需要修改源代碼,重新編譯。但是CactiEZ沒有安裝c編譯器gcc、C++編譯器gcc-c++和中文字體ttfonts-zh_CN,在編譯之前,請用yum安裝好這些包。

yum install gcc

yum install gcc-c++

yum install ttfonts-zh_CN (字體默認安裝在/usr/share/fonts/)

b. 下載和安裝rrdtool依賴庫

編譯rrdtool需要先編譯好依賴庫freetype-2.1.10.tar.gz,libart_lgpl-2.3.17.tar.gz,libpng-1.2.10.tar.gz,然後修改rrdtool的源代碼文件,再編譯rrdtool。

整個過程如下:

cd ~ 
mkdir tmp 
cd tmp 
wget http://ftp.idilis.ro/mirrors/rrdtool/libs/freetype-2.1.10.tar.gz 
wget http://ftp.idilis.ro/mirrors/rrdtool/libs/libart_lgpl -2.3.17.tar.gz 
wget http://ftp.idilis.ro/mirrors/rrdtool/libs/libpng-1.2.10.tar.gz

注,實際編譯安裝時建議下載較新的源代碼包。如果想穩妥一點,直接按本文說明安裝即可

tar -zxvf freetype-2.1.10.tar.gz 
tar -zxvf libart_lgpl-2.3.17.tar.gz 
tar -zxvf libpng-1.2.10.tar.gz 
cd freetype-2.1.10 
./configure --prefix=/ usr ; make ; make install 
cd ../libart_lgpl-2.3.17 
./configure --prefix=/usr ; make ; make install 
cd ../libpng-1.2.10 
./configure --prefix=/usr ; make ; make install 
cd ../

c.下載rrdtool和修改源文件 
wget http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.2.26.tar.gz 
tar -zxvf rrdtool-1.2.26.tar.gz 
cd rrdtool-1.2.26 /src/

現在修改rrdtool的源文件,需要修改的文件是rrd_graph.c

修改rrd_graph.c: 
vi rrd_graph.c 
刪除rrd_graph.c文件中以下兩行: 
setlocale(LC_TIME,""); 
setlocale(LC_CTYPE,"");

在原來setlocale(LC_CTYPE,"")的位置增加以下內容: 
setlocale(LC_ALL,"zh_CN.UTF-8");

現在修改完畢,可以開始編譯了 
d.編譯新的rrdtool

編譯前運行

yum install ruby //安裝ruby的語言支持環境,編譯rrdtool時需要;不安裝,編譯也可以通過,最好是安裝進去

cd ../ 
./configure --prefix=/usr --exec-prefix=/usr/rrdtool1.2.26 
make 
make install 
新版本rrdtool的可執行文件安裝在/usr/rrdtool1.2.26/bin中,系統原有的在/usr/bin中。需要修改cacti的設置,用新編譯好的rrdtool版本替換原有版本。

e. 修改Cacti的rrdtool設置,使其支持中文設備名和圖片中輸出中文

登陸Cacti,在主頁的左邊點擊setting,選擇paths頁(console>>setting>>paths) 
將RRDTool Binary Path修改為:/usr/rrdtool1.2.26/bin/rrdtool

還需要修改rrdtool的字體設置:

登陸Cacti,在主頁的左邊點擊setting,選擇paths頁(console>>setting>>paths) 
將RRDTool Default Font Path修改為:/usr/share/fonts/zh_CN/TrueType/gkai00mp.ttf 
點擊save。

clip_image058

網管中心下載的是1.2.27版本的rrdtool源代碼編譯安裝的,使用的字體是zysong.ttf。

到這裡,Cacti服務器的安裝和漢化基本完成。

D-LINK mydlink 2 Bay 網路儲存伺服器DNS-320L

    支援mydlink雲端服務平台/iTunes/UPnP™ AV伺服器/DLNA儲存分享中心
D-LINK mydlink 2 Bay 網路儲存伺服器DNS-320L

 

CactiEZ服務器的優化

關閉yum夜間自動更新功能

任何使用yum命令的操作完成之後,必須手工將其服務關閉。

默認情況下,CactiEZ服務器會在夜間實行自動更新功能。這對服務器的穩定性不利。尤其是,如果服務器自動升級了操作系統內核,很可能造成Cacti流量監控系統罷工。對於自動安裝的系統,不清楚底層相關配置的話,自動升級引起的問題很可能讓你束手無策。

所以,為了服務器的穩定性,強烈建議關閉yum自動更新功能。

:即使使用手工的方式升級操作系統套件,但是堅決不能升級內核相關的東西。除非你很有信心可以自己搞定。

使用命令:service yum stop

clip_image060

並建議同時關閉yum的自啟動項目,命令:chkconfig yum off

clip_image062

查看CactiEZ的自啟動項目:chkconfig --list

clip_image064

這裡,yum在所有的啟動級別都是off,說明已經關閉yum的自啟動項目,yum不會隨服務器重啟而自動開啟。

hosts.deny & hosts.allow

如果你對iptables很熟悉並樂於用iptables來增強服務器的安全性的話,大可跳過本節。

如果你覺得iptables比較麻煩,又不想自己的服務器完全裸露在網絡中,可以嘗試本節介紹的方法。但是這種方法提供的功能有限,不能完全取代iptables。

/etc/hosts.allow和/etc/hosts.deny兩個文件是用來控制遠程訪問的,通過它可以允許或者拒絕某個ip或者ip段的客戶訪問linux的某項服務。

/etc/hosts.allow控制可以訪問本機的IP地址,/etc/hosts.deny控制禁止訪問本機的IP。兩個文件的檢查順序如下:

先判斷訪問是否被允許hosts.allow 
->

允許就通過 
不允許看訪問是否被禁止hosts.deny 
-> 
如果2個文件都沒提到該服務那就默認允許

兩個配置文件的格式如下: 
#服務進程名:主機列表:當規則匹配時可選的命令操作 
server_name:hosts-list[:command] 
例如,限制所有的ssh,除非從218.64.87.0——127上來: 
hosts.allow: 
in.sshd:218.64.87.0/255.255.255.128

hosts.deny: 
in.sshd:ALL

其中IP地址範圍的寫法有若干中,主要的三種是: 
1.網絡地址——子網掩碼方式: 
218.64.87.0/255.255.255.0 
2.省略的網絡地址方式 
218.64.(即以218.64打頭的IP地址) 
3.縮略子網掩碼方式,既數一數二進制子網掩碼前面有多少個“1”比如: 
218.64.87.0/255.255.255.0《====》218.64.87.0/24

這裡給出網管中心Cacti服務器的配置,供大家參考。

clip_image066

關閉掉不使用的服務及定期作業

CactiEZ默認安裝了其他一些服務,有興趣的同事可以自行研究。

如果只是用CactiEZ監控流量的話,以下服務均可關閉。

命令:service 服務名stop

chkconfig 服務名off

相關的服務有:

iptables 如果不用,可以有hosts.allow和hosts.deny替代

webmin linux圖形化配置界面,感興趣的同事可以看看,不過不怎麼好用,建議關閉

nagios 另一個服務監控系統(適用主機的),默認關閉,要啟用必須手工打開

ntop 流量分析軟件,默認關閉,要啟用必須手工打開

註釋掉定期作業中不需要的,默認的安裝如下:

clip_image068

我們只保留定期查詢流量的作業和備份的作業。將其餘2個netflow相關的作業OVER掉。

至此,終於可以進入Cacti流量監控系統的基礎應用部分了。真累人呀~555

華碩Wireless-N900 雙頻 Gigabit 無線路由器RT-N66U

  • 2.4和5GHz同步雙頻傳輸速度和高達900Mbps的超快速連線速度
  • 透過內建的多功能雙USB埠分享檔案、印表機和3G
華碩Wireless-N900 雙頻 Gigabit 無線路由器RT-N66U

 

基礎應用篇

添加需要監控的設備

要監控鏈路的流量,首先要將鏈路所屬的設備添加進去。

創建設備:雙擊在左上角“console”在打開的頁面中選擇“ Create devices for network”

clip_image070

在打開的頁面的右上角中單擊“ADD” 添加設備,並在打開的頁面中填寫相關的信息:填好後再右下角點擊“create”創建該設備監控。

clip_image072

(1)Description:該設備的描述。

(2)hostname:填寫該設備的IP地址。

(3)Host Template:選Generic SNMP-enable Host

(4)Monitor Host:打上勾,就會在minitor插件中出現一個主機的圖標。Cacti服務器就會在後台不停的ping這個主機,ip就是你先前填寫在hostname中的那個。

(5)Downed Device Detection:檢測設備down機的方式,如果是通過SNMP採集流量,一般選擇ping和SNMP。如果單純只是鏡像某條鏈路或者主機,選擇ping即可。

其他的默認就Ok。

(6)SNMP版本和團體字符視具體情況而定。其餘默認OK。

注意,如果是要採集設備的流量,在最下面的Associated Data Queries應該有SNMP-Interface Statistics這個數據查詢模板才對。

clip_image074

點擊右邊的Verbose Query,可以看到SNMP查詢結果。在後面打造自己的圖形模板時有些變量可能會用到。然後單擊Save進行保存。

如果Cacti服務器可以找到相應的設備,那麼在Devices界面,相應的設備狀態應該是up的。

clip_image076

Vigor 2110Vn 11N VoIP極速無線路由器

  • ☆數位安全管理(CSM)功能,家長更安心
  • ☆更強頻寬管控功能,頻寬分配更合理
  • ☆獨有中文快速安裝說明
Vigor 2110Vn 11N VoIP極速無線路由器

 

創建需要監控的圖表

點擊相應的設備進入,點擊右上角的“ * Create Graphs for this Host ”為主機創建圖像。

clip_image078

在彈出的頁面中選擇需要監控的端口,在右下角下拉式菜單中選擇“In/Out Bit(64-bit counters)”這樣可以監控大於100M的流量。然後點擊Create創建圖表。

clip_image080

創建的圖表,默認你是不能直接看到的,必須把它掛到圖形樹上。Graphs插件看到的是圖形樹上的東西,想看什麼圖表,就把什麼圖表掛上去。

加碼送8G隨身碟

華碩802.11ac雙頻無線飆速路由器RT-AC66U

  • 最快速度1.75Gbps
  • 最新的雙頻 2.4GHz/5GHz
  • 三步驟輕鬆設定
  • 內建兩個多功能 USB 連接埠
華碩802.11ac雙頻無線飆速路由器RT-AC66U

 

圖形樹的創建

首先,我們來創建一棵樹。在左邊的菜單中單擊“ Graph Trees ”,在打開的頁面中點擊右上角“ADD”創建一棵樹。

clip_image082

然後彈出一個菜單,給這棵樹取名,例如“南寧城域網”。

下一項默認即可。點擊Create,這棵樹就生成了。

clip_image084

退回到圖形樹的界面,我們就看到這棵樹。

clip_image086

在這裡,我們看到很多樹。其中,除了我們之前創建的“南寧城域網”這棵樹,還有“Cacti服務器”這棵樹,還有“玉林城域網”,“欽州城域網”,“貴港城域網”等。

有了樹,我們就可以創建樹枝,這樣做是為了圖形查看方便的需要。

我們可以創建一個樹枝叫“核心層”,創建一個樹枝叫“匯聚層”,把核心層上聯鏈路的圖表掛在核心層的樹枝上,把匯聚層上聯鏈路的圖表掛在匯聚層的樹枝上。如果有特別關注的系統或者大客戶電路,可以單獨為其建立一棵樹,如上圖的“電信第二出口”,專門監控各地市的第二出口的電路。記住,樹是把圖表分類,樹枝只是將圖表分層顯示而已。

樹枝的創建也很簡單,在上圖的圖形樹中,任意選擇一棵樹單擊進去。如玉林城域網

clip_image088

在右上角有個“Add”,單擊它即可創建想要的樹枝。

clip_image090

(1)Parent Item:這個選項是說樹枝掛在哪裡。默認就是root,樹根。很形象,就是從樹根長出樹枝來,但是樹枝的創建是沒有限制的。有時為了細分圖形,創建了一級的樹枝,還需要再創建二級,三級的樹枝。這個時候,就是通過這個選項告訴服務器,我要創建哪一級的樹枝,並且掛在誰的下面。掛在root下肯定就是第一級的樹枝,掛在第一級樹枝下的就是第二級的了,以此類推。

(2)Tree Item Type

當創建樹枝的時候選Header。(一般都選Header)

當想在這裡直接添加圖表或者主機時,選擇Graph或Host。(不建議這樣做,當圖表很多的時候)

(3)Title:給樹枝一個名稱。

其餘的默認即可。

圖形樹創建完畢後,只是給了一個框架,裡面什麼都沒有。就像你買了一個書櫃,都分類貼好標籤,哪一層放什麼書。現在就等你放書上去了。我們先前已經將需要監控的圖表生成,現在只需把圖表掛上去即可。

放置想要的圖表

clip_image092

在console界面的Management --》Graph Management中,可以看到我們之前創建的圖形。

如果圖形較多,可以通過Host選項篩選。

找到你想要的圖形,單擊它,(單擊藍色的圖形標題就會進入該圖形界面,這裡不需要)

選中之後會變成黃色。

clip_image094

在右下角的下拉菜單中,選擇一個動作。

一般用的最多的就2個,一個是Delete,刪除掉不需要的圖表;

另一個是Place on a tree,放置在某棵樹上。

選定之後,點擊“go”即可。如果是刪除,它會讓你再次確認。如果是放置在某棵樹上,它會讓你選擇掛在哪裡,是root還是某個樹枝上。根據提示操作即可。搞定之後,就跑到graphs界面下看看自己的圖表吧。

華碩AC超值組合(RT-AC66U+PCE-AC66)

  • 最快速度1.75Gbps
  • 最新的雙頻 2.4GHz/5GHz
  • 個人雲端伺服器
  • 三步驟輕鬆設定
  • 內建兩個多功能 USB 連接埠
華碩AC超值組合(RT-AC66U+PCE-AC66)

 

arrow
arrow
    全站熱搜

    mobileshop 發表在 痞客邦 留言(0) 人氣()