首先我們一起來看三個問題
① MRTG在監控交換機時,會爲每個端口都生成一個頁面,我們訪問MRTG流量監控頁面存放的目錄時監控了多少個 端口就會看到有多少個頁面,監控一臺交換機我們查看時很方便,因爲一般也就是24或48個頁面(實際情況根據交換機端口的個數而定)。請問當我們需要監控十個交換機時怎麼辦?每個按24個端口算的話我們查看時還要面臨240個頁面。不僅是流量圖查看起來不方便,而且240個端口的配置信息都存儲到一個配置文件裏面(mrtg的配置文件),使用時非常不方便,今天我們就解決這個問題------爲每臺交換機分別生成單獨的流量頁面放置目錄和單獨配置文件
② 我們在查看MRTG流量監控的主頁面時默認情況下是看不到哪個頁面是哪個端口的,如下圖,我們要想知道是哪個端口的流量必須要點開這個圖片纔可以看到,在查看流量時非常不便,所以我們今天要把這個東西改成我們想要的,必須改爲用戶名稱+機櫃號+端口號+用戶IP+聯繫方式
③ IDC機房服務器以企業單臺服務器居多,所以用戶並沒有自己的交換機,但用戶要求要能時刻查看自己服務器的流量。這個時候我們需要給用戶提供一個單獨的URL,以便用戶方便查看,而且爲了安全起見,用戶在訪問自己的MRTG流量監控頁面時需要提供用戶名和密碼,而且只能看到自己服務器的流量--------實現MRTG單個端口流量頁面分離(我給它取的名字,嘿嘿)
問題一解決方案:
在此我們就不介紹MRTG是怎麼安裝的了,關於MRTG的安裝和基本配置請參閱http://luwenju.blog.51cto.com/620835/246892 Apache安裝路徑爲/usr/local/apache, Mrtg安裝路徑爲/usr/local/mrtg。本次我們拿兩臺真實環境中的交換機來監控,所以圖片上一些敏感的信息我抹掉了,不清楚的地方請跟帖提出。
我們監控的兩臺交換機的名字分別爲E16和I9,下面我們爲兩臺交換機建立放置MRTG配置文件的目錄
# mkdir -p /usr/local/mrtg/etc/e16 //用於放置E16交換機的配置文件
# mkdir /usr/local/mrtg/etc/i9 //用於放置I9交換機的配置文件
爲每臺交換機生成配置文件
# /usr/local/mrtg/bin/cfgmaker --output /usr/local/mrtg/etc/e16/mrtg.cfg [email protected] //爲E16交換機生成配置文件,放置到/usr/local/mrtg/etc/e16目錄下
# /usr/local/mrtg/bin/cfgmaker --output /usr/local/mrtg/etc/i9/mrtg.cfg [email protected]
//爲I9交換機生成配置文件,放置到/usr/local/mrtg/etc/i9目錄下
爲每臺交換機建立放置流量監控頁面的目錄
[root@luwenju mrtg]# mkdir /usr/local/apache/htdocs/e16 //e16交換機html 文件放置目錄
[root@luwenju mrtg]# mkdir /usr/local/apache/htdocs/i9 //I9交換機html文件放置目錄
修改E16交換機的配置文件
[root@luwenju mrtg]# vi /usr/local/mrtg/etc/e16/mrtg.cfg
WorkDir: /usr/local/apache/htdocs/e16 //監控E16交換機生成的流量圖放置路徑
Options[_]: growright, bits //定義流量單位
Language:Chinese //讓MRTG支持中文
修改I9交換機的配置文件
[root@luwenju mrtg]# vi /usr/local/mrtg/etc/i9/mrtg.cfg
分別對兩臺交換機的端口進行掃描
[root@luwenju mrtg]# env LANG=C /usr/local/mrtg/bin/mrtg /usr/local/mrtg/etc/e16/mrtg.cfg
[root@luwenju mrtg]# env LANG=C /usr/local/mrtg/bin/mrtg /usr/local/mrtg/etc/i9/mrtg.cfg
爲兩臺交換機分別生成html主目錄
[root@luwenju mrtg]# /usr/local/mrtg/bin/indexmaker --output /usr/local/apache/htdocs/e16/index.html --title=E16 /usr/local/mrtg/etc/e16/mrtg.cfg
[root@luwenju mrtg]# /usr/local/mrtg/bin/indexmaker --output /usr/local/apache/htdocs/i9/index.html --title=I9 /usr/local/mrtg/etc/i9/mrtg.cfg
在cron服務裏面添加以下命令,讓MRTG每5分鐘掃描一次交換機流量
*/5 * * * * env LANG=C /usr/local/mrtg/bin/mrtg /usr/local/mrtg/etc/e16/mrtg.cfg
*/5 * * * * env LANG=C /usr/local/mrtg/bin/mrtg /usr/local/mrtg/etc/i9/mrtg.cfg
配置完然後重啓Apache後,我們在瀏覽器中輸入MRTG的IP地址,然後可以看到兩個交換機放置html的目錄(Apache在允許列表的情況下),我們點擊E16,然後就會出現E16交換機的流量監控圖
問題二解決方案:
我們可以看到下圖中圈出的內容,下面我們一起看一下怎麼把這些內容改爲我們想要的
我們需要修改那個端口的描述信息,就需要修改哪個端口的配置文件,在此我們修改E16交換機 1/0/1端口的描述信息
[root@luwenju e16]# vi /usr/local/mrtg/etc/e16/mrtg.cfg
圖中藍色部分是系統自己對端口的描述,這個我們不需要修改。我們只修改紅色標出的部分即可,我們可以將它修改爲lu_wen_ju
然後重新掃描
[root@luwenju e16]# env LANG=C /usr/local/mrtg/bin/mrtg /usr/local/mrtg/etc/e16/mrtg.cfg
然後重新生成html頁面
[root@luwenjue16]#/usr/local/mrtg/bin/indexmaker --output /usr/local/apache/htdocs/e16/index.html --title=E16 /usr/local/mrtg/etc/e16/mrtg.cfg
下面我們在查看時,就看到了我們想要的信息,如下圖
問題三解決方案:
因爲所有的MRTG監控都運行在一臺服務器上,在對用戶提供時時在線查看流量之前我們應該先對全局監控做一個授權訪問,要不然用戶不但能查看自己的流量,還能查看所有端口流量,那樣就麻煩啦~
[root@luwenju e16]# mkdir /usr/local/mrtg/passwd //建立一個用戶放置密碼的目錄
[root@luwenju e16]# /usr/local/apache/bin/htpasswd -c /usr/local/mrtg/passwd/luwenjupwd luwenju //新建用戶luwenju 密碼配置文件爲luwenjupwd ,生成到/usr/local/mrtg/passw目錄下
[root@luwenju ~]# vi /usr/local/apache/conf/httpd.conf //在Apache配置文件中做授權訪問
<Directory "/usr/local/apache/htdocs"> //需要授權的目錄,E16和I9兩個HTML文件夾都在這個目錄下
AuthType Basic //驗證模式,使用BASIC
AuthName "Welcom To luwenju" //歡迎信息
AuthUserFile /etc/mrtgpasswd/luwenjupwd //密碼配置文件路徑
Require user luwenju //授權的用戶
</Directory>
測試,想查看E16和I9的流量時需要提供用戶名和密碼纔可以
下面我們要開始對個別端口的監控頁面做單獨的授權訪問了,現在有一個E16交換機的某個用戶需要做授權訪問,這個用戶大家都叫他juzi,所以我們在監控頁面E16文件夾下新建一個文件夾,名字爲juzi,用戶放置這個用戶交換機端口的流量監控信息
[root@luwenju ~]# mkdir /usr/local/apache/htdocs/e16/juzi
[root@luwenju ~]# cd /usr/local/apache/htdocs/e16/juzi/
我們該怎麼樣把某個端口的頁面單獨拿出來呢?直接cp出來肯定是扯淡,一個最好的方法是使用軟連接。如下圖,我們要把這個端口拿出來做授權
單擊上圖後,我們會在I瀏覽器中看到如下信息。就是XXXXXXX.html。這個html文件就是這個端口的主頁面,所以我們要對它進行授權訪問
這個地方用到了8個文件,分別是某端口自己的頁面文件、day.png 、 week.png、 month.png、 year.png、mrtg-1.png、mrtg-r.png、 mrtg-m.png 我們要把這個幾個文件都軟連接到juzi目錄下,如下圖
做完之後我們在瀏覽器中訪問juzi的目錄,可是服務器提示要求輸入luwenju的用戶名和密碼,這個用戶名是MRTG全局用戶,所以juzi這個用戶是不能使用的,所以我們要對這個目錄做授權
[root@luwenju htdocs]# /usr/local/apache/bin/htpasswd -c /usr/local/mrtg/passwd/juzipwd juzi //新建用戶juzi 配置文件juzipwd 放置到/usr/local/mrtg/passwd目錄下
然後我們打開Apache配置文件,在配置的全局用戶授權訪問下面新添加一個,如下圖
在瀏覽器中輸入http://x.x.x.x/e16/juzi
這個時候服務器會提示輸入用戶名和密碼,我們在上面設置的用戶名是juzi 密碼juzi
輸入完回車後會進入
下圖爲用戶juzi的流量監控頁面,用戶juzi只能看到自己的流量監控圖,無權限看到其它端口流量
由於筆者水平有限,語言表達能力極差,不明之處請跟帖
鳴謝大師兄 海龍 、 Gogllen
本文出自 “陸文舉” 博客,請務必保留此出處http://luwenju.blog.51cto.com/620835/263327