LINUX下使用MRTG畫虛擬主機流量圖
LINUX下使用MRTG畫虛擬主機流量圖
我的環境是:FreeBSD 5.2+Apache 2.0.48
LINUX或其他UNIX系統里面,最多把ports換成原始碼編譯而已。
在開始做之間,希望大家對MRTG有所了解,因為我們將要使用他來做實現動態的流量圖像生成。如果對MRTG不了解,建議先看看我寫的另外一篇文章,《MRTG介紹》做一下熱身運動。讓我們開始吧!
一、安裝MRTG
也可參見《MRTG的安裝配置》
- cd /usr/ports/net/mrtg
- make install
默認情況下即可正常安裝,不必其他設置。
二、安裝APACHE
- 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
找一個地方加入
- # Allows the URL used to query virtual host data:
- #
- # http://www.snert.com/watch-info
- #
- SetHandler watch-info
- # Intended for debugging and analysis of shared memory
- # hash table and weenie files:
- #
- # http://www.snert.com/watch-table
- #
- SetHandler watch-table
注意,為了安全,請關閉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文件讀出某些數據了,比如
- 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]:
把上面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[^]:
然后再貼上前面通過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一下,讓***的設置及軟件生效。
如果在安裝過程中出現錯誤,你能先檢查完錯誤,再接著安裝下去。或你能選擇你感興趣的某些部份安裝!
【編輯推薦】