UNIX/LINUX中使用MRTG自動畫虛擬主機流量圖

做爲一個空間商﹐非常有必要了解每一個虛擬主機用戶的流量大小﹐通過文字的表述難以形象﹐生動的表現出來原本變化的數據﹐故我在這裏將自己在FREEBSD 5.2環境下﹐監控每個虛擬主機流量的方法寫出來﹐供大家參考。該種方法適合於UNIX/LINUX環境下的Apache 1.X和Apache 2.X﹐具體實施步驟差不多﹐希望大家舉一反三。我還是希望能用自己羅嗦的方法,教會包括菜鳥在內的所有喜歡UNIX/LINUX的朋友。
        我的環境是﹕FreeBSD 5.2+Apache 2.0.48
如果你不會在LINUX環境裏面使用,發郵件告訴我,我再寫一篇在LINUX環境裏面安裝也可以的,但我認爲兩者差不多的,LINUX或者其他UNIX系統裏面,最多把ports換成源代碼編譯而已,所以題目我還是堅持使用UNIX/LINUX下安裝,呵呵~

示例﹕http://www.onlinecq.com/mrtg/www.onlinecq.com.html

        在開始做之間﹐希望大家對MRTG有所瞭解﹐因爲我們將要使用它來做實現動態的流量圖形生成。如果對MRTG不瞭解﹐建議先看看我寫的另外一篇文章﹐《在WINDOWS下安裝MRTG全攻略》 http://www.blogbus.com/blogbus/blog/diary.php?diaryid=87658 ﹐做一下熱身運動﹐呵呵~~

        讓我們開始吧~~

一﹑安裝MRTG
二﹑安裝APACHE 2.0.48
三﹑安裝MOD_WATCH
四﹑做整機流量圖索引
五﹑排程更新MRTG流量圖
六﹑結束語

一﹑安裝MRTG
cd /usr/ports/net/mrtg
make install

默認情況下即可正常安裝,不需要其他配置。

二、安裝APACHE 2.0.48
cd /usr/ports/www/apache2
make WITH_SUEXEC=yes install

在這裏安裝APACHE 2 有多種方式,我們可以使用:
make show-options    顯示安裝時的可選項
make show-modules    顯示需要安裝的模塊

當然,安裝時可以選擇的餘地很大的,如果你需要特別提升APACHE 2 的性能,可以選擇不同的安裝選項試一下,我曾經連續花了一天時間安裝了十幾次APACHE 2,以測試不同選項搭配後的效果,>_<

聽着硬盤“嘩啦嘩啦”一陣狂響後,系統會提示你安裝成功,^_^

三、安裝MOD_WATCH
首先說明,因爲apache 和1.X和2.X,那麼我們的mod_watch模塊也有mod_watch和mod_watch4兩種,前一種對應apache 1.X,後一種對應apache 2.X。因爲我是安裝的APACHE 2.X,故應該安裝mod_watch4。如果你是APACHE 1.X,請直接更改一下即可使用。
cd /usr/ports/www/mod_watch4
make install

安裝成功後,接下來是最重要的配置工作,就是要怎麼才能讓系統認得APACHE 2的流量,並且畫出我們的實時流量,請接着看:

現在我們修改一下httpd.conf文件
vi /usr/local/etc/apache2/httpd.conf

找一個地方加入

<IfModule mod_watch.c>
  # Allows the URL used to query virtual host data:
  #
  #     http://www.snert.com/watch-info
  #
  <Location /watch-info>
  SetHandler watch-info
  </Location>

  # Intended for debugging and analysis of shared memory
  # hash table and weenie files:
  #
  #     http://www.snert.com/watch-table
  #
  <Location /watch-table>
  SetHandler watch-table
  </Location>
</IfModule>

注意,爲了安全,請關閉watch-table選項,或者加以IP限制,以免別人查看你SERVER所放的站點資源,引起不必要的麻煩。

    Order deny,allow
    Deny from all
    Allow from 127.0.0.1

你可以把127.0.0.1換成其他你信任的IP或者IP段,域名等~

設置完成後,請使用
/usr/local/sbin/apachectl configtest
檢查httpd.conf文件是否有錯
如果顯示系統正常,再使用下面的命令重新啓動apache
/usr/local/sbin/apachectl restart

上面的配置成功後,你就可以從某個虛擬主機的watch-info文件讀出某些數據了,比如我的:

http://freebsd.onlinecq.com/watch-info
freebsd.onlinecq.com 2 760 858 2 1 1 0.000 675269920 3217025432
這些數據就是供MRTG畫流量圖的,以達到實時監控的目的!

OK,請在httpd.conf文件裏面配置好虛擬主機,然後用下面的命令生成相應的文件:
apache2mrtg.pl /usr/local/etc/apache2/httpd.conf

屏幕顯示如下:
freebsd# apache2mrtg.pl /usr/local/etc/apache2/httpd.conf
Title[freebsd.onlinecq.com]: freebsd.onlinecq.com Data Traffic
Target[freebsd.onlinecq.com]: `/usr/local/sbin/mod_watch.pl http://freebsd. onlinecq.com/watch-info`
MaxBytes[freebsd. onlinecq.com]: 1250000
PageTop[freebsd. onlinecq.com]: <h2><a href="http://freebsd. onlinecq.com/">freebsd. onlinecq.com</a> Data Traffic</h2>

把上面Title開始的一段信息,拷貝一下,待用。注意,這裏每個虛擬主機將會顯示一段,如果你的虛擬主機多,將會顯示很多,一大堆信息出來,不過都請大家都複製下來待用,除非你不想生成某個虛擬主機的流量圖。
這樣子系統是無法生成流量圖的,因爲它不符合MRTG的語法,我們需要在這文件裏面加入一些東東纔可以的。
vi /usr/local/etc/apache2/mod_watch.cfg

WorkDir:/home/onlinecq.com/mrtg/
Options[_]: growright,bits
#Language: gb2312

#Title[^]: Traffic Analysis for
PageTop[^]: <H1>Traffic Stats for OnlineCQ.COM User</H1><HR>
#PageTop[$]: Contact QQ: 151482576<HR>
PageFoot[^]: OnlineCQ.COM      MSN: [email protected]      QQ:151482576

(然後再貼上前面通過apache2mrtg.pl顯示的那一段話)

使用:wq存盤退出,這樣子就會在/usr/local/etc/apache2目錄裏面產生一個mod_watch.cfg文件,備用!

接下來,我們要注意一點,就是mod_watch.cfg裏面的
WorkDir:/home/onlinecq.com/mrtg/
這個目錄一定要存在,並且要能通過網站訪問的,一般放到自己官方網頁上面,呵呵~

看起來差不多了哦,我們試一下,請用下面命令生成MRTG的流量圖:
mrtg /usr/local/etc/apache2/mod_watch.cfg

我的主機上面首次執行後,將會顯示幾行錯誤,不理它,多執行幾次即可! 錯誤提示的意思大概是,找不到某某文件,因爲這些文件是舊文件,需要系統生成的。大概執行2-3次後,即不會報錯啦~

到此爲止,你就可以成功得到流量圖了,同時,在/home/onlinecq.com/mrtg目錄裏面會產生很多png圖片和html文件和網址的,這些都是每一個虛擬主機的流量圖,千萬不要刪除了哦,*^_^*
請這樣子訪問你的虛擬主機的流量圖
http://域名/mrtg/虛擬主機域名.html

比如我要訪問我的站的MRTG流量圖,就是這樣子:

http://www.onlinecq.com/mrtg/www.onlinecq.com.html

四﹑做整機流量圖索引
如果你的虛擬主機很多,你又想一下子看完所有用戶的流量圖,你可以這樣子來做一個MRTG流量圖索引:

/usr/local/bin/indexmaker --title=”nlineCQ.COM BANDWIDTH MRTG TATOL" --output=/home/onlinecq.com/index.html /usr/local/etc/apache2/mod_watch.cfg

這樣子在/home/onlinecq.com/mrtg目錄裏面就會生成index.html的流量圖了,裏面將會有所有用戶的流量圖!

五﹑排程更新MRTG流量圖
如果不做這一步,我們只有手工更新流量圖啦,呵呵~
要排程更新的話,也比較簡單的,就是把相關命令加到crontab裏面即可:
vi /etc/crontab
*/5     *       *       *       *       root    /usr/local/bin/mrtg /usr/local/etc/apache2/mod_watch.cfg

用:wq存盤退出,這樣子每5分鐘將會執行流量圖的更新工作,當時,如果你要求比較高的話,可以讓它每分鐘都執行,不過注意,更新流量圖時,會佔用一些系統資源的,>_< 。還是適可而止吧~


六、結束語
至此爲止,可以投入商業使用的MRTG實時流量圖就建立起來了,您可以reboot一下,讓最新的設置及軟件生效。
如果在安裝過程中出現錯誤,您可以先檢查完錯誤,再接着安裝下去。或者你可以選擇你感興趣的某些部份安裝!
當然因爲時間倉促,涉及到的知識太廣,加上本人能力有限,其中錯誤在所難免,懇請各位讀者提出來,大家共同提高,共同進步!
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章