構建安全的網絡長城,除了堅實的“城墻”、機警的“烽火臺”,還要有“內明軍紀,賞罰分明”的“檢測官”才能管理好部下的工作。作為一個優秀的網管,不僅要對來自內外的入侵活動隨時監控,而且要對自己內部的網絡設備的使用情況保持關注。隨著網絡建設的擴大,或許我們的網絡內部已經有了幾個路由器、一個核心交換機、四五個匯聚層交換機、數十個接入交換機,那么 我們怎么樣來及時檢測它們的工作情況呢?隨著網絡的建設,我們原本空閑的匯聚層交換機是否已經不堪負載了呢?這段時間的一場雷雨,是否對我們的網絡設備造成了破壞呢?而且這些設備大多在物理上分散于不同區域,以筆者管理的網絡而言,它們常常是散布在辦公室、教學樓、家屬區各地,為我們的檢測工作帶來很大的困難。那是不是就只能這樣呢?
事實上,生產網絡設備的商家早為我們考慮到了這一點。在目前的網絡設備中,大多已經包含了SNMP服務。利用它,我們就能方便地獲知網絡設備的工作情況了。
下面先介紹幾個概念:
SNMP(Simple Network Management Protocol): SNMP開發于九十年代早期,是一種簡單網絡管理協議, 廣泛使用于幫助網管人員管理TCP/IP網絡中各種裝置,沒有繁復的指令,概念上只有fetch-store(存-取)兩種命令,其優點為簡單,穩定及靈活.其目的是簡化大型網絡中設備的管理和數據的獲取。
NMS(Network Management Station): 通常為一臺專用計算機,裝有網絡管理軟件, 使用SNMP指令對路上的各種設備作監視與控制, 并接收SNMP Trap。目前,許多與網絡有關的軟件包,如HP的OpenView和Nortel Networks的Optivity Network Management System,還有Multi Router Traffic Grapher(MRTG)之類的免費軟件,都使用SNMP服務來簡化網絡的管理和維護。
簡單來說,NMS通過專門的軟件,利用SNMP協議與網絡設備通信,從網絡設備那里獲得他們的硬件信息并歸類、整理、顯示出來。方便網管進行檢測和評估網絡運行情況。其結構示意圖如(圖一)所示:
圖一
如上圖所示,我們在一臺NMS上就能通過SNMP來獲取各個網絡設備的情況了。再也不用疲于奔波了。
在介紹了這么多令各位網管激動興奮的特性后,就讓我們一起來親手塑造一位這樣優秀的網絡檢測官NMS吧!
上面有提到過HP的OpenView和Nortel Networks的Optivity Network Management System,還有Cisco Works以及華為公司的網管軟件等都能滿足我們的需要,但以上都是商業產品,在沒有足夠經費的情況下(事實上對公司BOSS而言,網絡部門都屬于只出不進的燒錢部門,因此要經費是很困難的),我個人采用Multi Router Traffic Grapher(MRTG)這個免費軟件構造了一個滿足自己需要的NMS,下面與大家分享構造過程。(事實上,用免費產品經過自己的修改優化大多能取得比商業軟件更好的效果。不少免費軟件的質量與商業產品相比毫不遜色,如Apache、Sendmail、Bind等等)。
實現原理:利用SNMP服務,每隔一定時間從網絡設備上取得它們當前的工作情況,利用mrtg制作成圖表反映出來。由于需要記錄長期以來的工作情況,所以還需要將以前的記錄保存,每隔一段時間取出的數據加以匯總進行數據分析和繪圖工作(當然,這些都讓mrtg這個軟件替我們代勞了,我們什么都不用做的,只需要打開瀏覽器訪問查看就行了)
下面是我們構建NMS所需要的程序和它的主頁地址:
操作系統:首先是對操作系統的選擇,目前MRTG可以運行于WINNT平臺和UNIX兩種平臺上。由于NMS主要是起對各個網絡設備的流量、工作負載等情況的持續跟蹤,因此對操作系統的穩定性要求比較高。因為筆者就個人使用經歷中接觸到的Unix/Linux操作系統在穩定性方面更好一些。因此我們還是繼續采用RedHat 9.0 作為操作系統,關于安裝它的方法很簡單,遇到問題可以在www.redhat.com上尋求幫助(記得在安裝的時候一定要安裝上snmp、HTTP、crontabs 、PERL、zlib、gd、libpng這幾個軟件包;其中snmp是為了和自己、以及其他網絡設備通信取得其資料、crontabs是為了定時執行mrtg命令,跟windows下的任務計劃很類似,http、perl、zlib、gd和libpng都是mrtg所需要的)
MRTG: http://www.mrtg.org 這就是我們的主角了。它有rpm包和源程序包兩種,按理在RedHat上用rpm包的方便快捷,但是我在安裝后使用過程中生成index那里遇到錯誤,而使用源程序包的時候沒有發生這樣的情況,因此,我們這里仍然選用源程序包來安裝。目前最新的版本為2.10.5版本的,在 http://people.ee.ethz.ch/~oetiker/webtools/mrtg/pub/mrtg-2.10.5.tar.gz 這里可以下載。
SYSSAR:通過它可以方便地獲得CPU和內存等資源的使用情況,RH9自帶它,安裝的時候記得選上就好;
lm_sensors: 通過它可以方便地獲得主板上CPU和系統等資源電壓/風扇轉動速度和溫度的情況,RH9自帶它,安裝的時候記得選上就好;
1、登陸:
請確保您在進行以下操作的時候以下的操作具有root權限
2、下載軟件:
先新建立一個目錄
[root@netserver home]# cd /root [root@netserver root]# mkdir nms [root@netserver root]# cd nms [root@netserver nms]# wget http://people.ee.ethz.ch/~oetiker/webtools/mrtg/pub/mrtg-2.10.5.tar.gz |
3、安裝軟件
[root@netserver nms]# tar vzxf mrtg-2.10.5.tar.gz [root@netserver nms]# cd mrtg-2.10.5 [root@netserver mrtg-2.10.5]#./configure--prefix=/usr/local/mrtg --with-gd=/usr/include --with-gd-lib=/usr/lib --with-gd-inc=/usr/include --with-png=/usr/include --with-zlib=/usr/include (其中以上幾個參數中—prefix表示安裝目錄,--with表示相關的庫文件和頭文件從相應的目錄去尋找,以上寫成一行) [root@netserver mrtg-2.10.5]#make;make install |
好,完成了以上幾步,我們就已經把mrtg安裝到了/usr/local/mrtg目錄下了。
4、配置MRTG
mrtg可以同時為多個設備生成圖表,此處為方便示范,我以獲取內網中的一臺192.168.100.1的交換機的資料為例。
A.在www服務的目錄中建立mrtg目錄,
[root@netserver mrtg-2.10.5]#mkdir –p /var/www/html/mrtg/switch100
以上-p參數,可以方便地建立多級目錄(即上級目錄不存在的情況下,可以連上級目錄和該目錄一起創立)我使用的RedHat默認安裝的apache,所以WWW主頁的放置地點為/var/www/html,請按照你的系統來設定,由于我們內網中可能存在多臺需要管理的機器,因此我在mrtg目錄下又單獨建立了一個switch100目錄(因為交換機的ip的c段為100)以方便管理。
[root@netserver mrtg-2.10.5] #cp images/* /var/www/html/mrtg/switch100
(由于mrtg是免費軟件,作者在它的作品上打打廣告當然我們也應該高高興興地接受,所以把圖片copy過來吧)
B.配置好關于獲取交換機的cfg,并生成頁面
[root@ netserver mrtg-2.10.5]# cd /usr/local/mrtg/bin [root@ netserver bin]# ./cfgmaker public@192.168.100.1 > /var/www/html/mrtg/switch100/mrtg.cfg |
以上這句中,public@192.168.100.1 表示我們以SNMP協議獲取162.168.100.1這個交換機資料的時候使用public這個通信字符串(一般來說,網絡設備出廠的時默認以public作為只讀權限和private作為讀/寫權限,具體情況請根據您的網絡設備設置進行改進)
為圖方面,我以上使用的cfgmaker沒有帶參數,因此默認生成的mrtg.cfg中并不太完美,我們來手工修改得更適合一些:
[root@ netserver bin]#vi /var/www/html/mrtg/switch100/mrtg.cfg
修改以下幾行為(沒有的請添加)
WorkDir: /var/www/html/mrtg/switch100/
Options[_]:growright,bits #默認的mrtg圖表是以左方為坐標軸,加上這句以換成我們習慣的右上坐標系。
Language:chinese #這里有不少站推薦用GB2312但我發現chinese更完美一些。
Refresh: 300 #表示每300秒自動刷新客戶的瀏覽器一次,至于為什么是300秒呢?因為snmp訪問的時候是需要網絡設備傳輸資料的,會消耗網絡設備的資源,因此如果時間定得太短,會讓網絡設備的傳輸受到影響;而如果時間間隔太長,又不能比較準確地反映出網絡設備的即時流量。而且一般來說,在檢測到5分鐘內的數據中如果存在平均的網絡流量超過最大流量的75%,就說明在這5分鐘內,有一些瞬間的流量是達到上限了的。因此只要每5分鐘抓取一次流量,就可以根據網絡公式來分析網絡設備的負載情況了。
WriteExpires: Yes WithPeak[_]: ym |
C.運行mrtg
執行以下命令3次(前兩次會提示一些警告信息,不用理會)
[root@ netserver bin]#./mrtg /var/www/html/mrtg/switch100/mrtg.cfg
之后會發現在/var/www/html/mrtg/switch100/ 目錄下生成了很多文件html和png文件(前提當然是你這個網絡設備是要運行著的咯)
接下來生成主頁面index.htm
[root@ netserver bin]#./indexmaker --title="樓宇交換機統計" --output='/var/www/html/mrtg/switch100/index.htm' /var/www/html/mrtg/switch100/mrtg.cfg
以上的命令中 –-title表示的是生成的html的標題,--output表示輸出的文件名。
好了,現在打開 http://你的ip/mrtg/switch100/ 目錄,應該就能看到(圖二)所示的畫面了。
圖 二
啊~~為什么我的頁面上沒有你這樣的流量走線呢??別急。我不是說過么,我們是需要每5分鐘抓一次流量來形成走線圖的,也就是說,要將mrtg命令每5分鐘執行一次。那不是很麻煩?不用,linux中,我們使用crontabs就能很容易做到這點了。(請在服務中,將crond服務打開)
[root@ netserver bin]# crontab –e
然后添加任務,輸入下面一行:
5,10,15,20,25,30,35,40,45,50,55 * * * * /usr/local/mrtg/bin/mrtg /var/www/html/mrtg/switch100/mrtg.cfg > /dev/null 2>&1(請寫成一行,并且空格的地方只能空一格,不可以多空格)
共3頁: 1 [2] [3] 下一頁 | ||
|