1、專題報導 - Proxy Server 常用之分析工具 20中興大學計資中心技術通訊第 18 期Proxy Server 常用之分析工具吳欣蒨國立中興大學計算機及資訊網路中心台中市 402 國光路 250 號(04-22840306 轉 735)E-mail:dowdotnet.nchu.edu.tw前言Proxy Server 在網路中是扮演著代理人的角色,當你設定代理伺服器之後,網路上的相關的要求均會透過代理伺服器去搜尋。而 proxy server 在運作的過程中會產生 log 檔,但是 proxy server 就算流量再怎麼少,一天當中被的 requests 的 log 檔少說也有十
2、幾萬筆。當然在管理上或多或少也會遇到問題,若一旦遇到問題在第一時間裡想要從密密麻麻的 log 檔中直接看出一些端倪並不是一件很輕鬆的事,而解決問題的時效性卻是不容忽略的。本文將分享 proxy server 在 FreeBSD+squid 管理上的些許經驗並介紹幾個可以應用在 Proxy server 上的分析工具,籍由這幾個工具可以更有效率的得知 Proxy Server 問題所在並進一步解決。一、MRTGMRTG(Multi Router Traffic Grapher)這支程式對一般的網管者來說應該是不陌生, 它是透過 Simple Network Management Protcol(
3、SNMP)來監視並記錄網路傳輸流量的工具。那從 MRTG 圖上我們可以看出什麼呢?其實我們想要得知 Proxy server 的顛峰時段是什麼時候,那麼從 MRTG 圖上就可以看的出來。若我們設定 MRTG 是五分鐘執行一次,那麼我們每隔 5 分鐘就可以看到它流量的變化,當流量有變化或者是 Proxy Server 服務有中斷時我們就可以在很清楚的在 MRTG 圖上看到變化。除了上述所提到的功能之外,還有一個地方蠻值得去思考的,因為我們的 MRTG是安裝在 proxy server 上面,在這之前我們可以稍微想一下 proxy server 的運作流程。Clinet 端會對 proxy ser
4、ver 發出 request,而 Proxy server 是在接受使用者的要求後會將資料傳送給使用者,照理來說我們在 MRTG 上所看到的流量應該是流出=流入,也就是說圖上藍色和綠色是相等的,但為何有時我們會看到流出流入呢?我們可以這麼說,當使用者向 proxy server 提出要求時,若 proxy server 本身沒有資料時就要向外面抓取資料,若使用者所要求的資料 proxy server 本身就有,那麼 proxy server server 就可以直給將資料給使用者,而這時使用者只是對 proxy server 發出request,並沒有真正在傳送檔案,而真正在傳送檔案的是 pr
5、oxy server,所以從專題報導 - Proxy Server 常用之分析工具 21中興大學計資中心技術通訊第 18 期proxy server 本身的角度來看,當 porxy 有較好的運作效益時流出大於流入是正常的,簡單的說就是使用者要的資料 proxy server 在某段時間內都不必再向外面抓。(圖一)(圖一)1.軟體的取得:MRTG 的安裝方式有很多種,通常可以選擇 ports 的安裝方式或者是去下載 tgz or tar.gz 的檔下來安裝。這些軟體在興大的檔案伺服器中都可以抓得到,可到檔案伺服器的首頁進行搜尋下載。2.安裝: 因為 MRTG 是透過 SNMP 來監視並記錄網路傳
6、輸流量,所以正式安裝MRTG 之前比需將 SNMP 安裝起來。除了安裝 SNMP 之外,還要注意系統中是否己經安裝一些相關的套件,例如: SNMP implementation、jpeg compression utilities、png Library、apache 這些套件是 MRTG 安裝過程中所必須的,缺少這些套件 MRTG 可能會裝不起來的。若上述的套件在系統中都安裝好了,接下來就可以著手進行主程式的安裝動作(本文是下載的檔案為 mrtg-2.9.25.tgz)。pkg_add mrtg-2.9.25.tgz(圖二)安裝後可以輸入 pkg_info 來確認是否有安裝成功3.設定:在/
7、usr/local/bin/ 輸入專題報導 - Proxy Server 常用之分析工具 22中興大學計資中心技術通訊第 18 期cfgmaker -no-down mrtg163.28.x.x /usr/local/soft/MRTG/MRTG其中 mrtg後面接的是要分析的主機位址,隨後編輯剛剛的 MRTG 檔,並在其中加入幾個設定Workdir:完整路徑 也就是 MRTG 流量圖檔產生的地方。Language:Big5 選擇 MRTG 的語系(繁體中文)。WithPeak_: wmy 畫出每 5 分鐘的最大流入/流出圖。4.產生 HTML 檔: 在/usr/local/bin/ 輸入in
8、dexmaker title 網頁的標題 output /data/web/MRTG/index.htm /usr/local/soft/mrtg/mrtg5.在 apache 加入設定,並 restart apache 6.執行 MRTG:/usr/local/bin/mrtg /usr/local/soft/mrtg/mrtg第一次執行時通常都會有錯誤,不過執行個一二次之後就不會有了7.加入 crontab (每 5 分鐘執行一次)*/5 * * * * /usr/local/bin/mrtg /usr/local/soft/mrtg/mrtg8.這時就可以開啟網頁看看是否可以執行,若安裝
9、成功就可以看到流量了,這時在畫面的下方可能會有些圖無法顯示,那些圖其實是 MRTG 的版權圖示,使用者可以抓取 /usr/ports/distfiles/MRTG-2.9.25.tar.gz ,將這個檔解開後把images 底下的圖檔和 MRTG 的網頁放在一起後就 ok 了。* 如果 MRTG 的設定檔有更動時,要重新做 indexmaker 的動作,並重 run MRTG專題報導 - Proxy Server 常用之分析工具 23中興大學計資中心技術通訊第 18 期(圖三)MRTG 圖的畫面專題報導 - Proxy Server 常用之分析工具 24中興大學計資中心技術通訊第 18 期二、
10、Pwebstats上述介紹的是 MRTG 圖,從那裡可以得知 proxy server 相關的流量資訊,但是如果我們想更進一步得知哪個 Client 端用量最大或者因為管理需要,必須瞭解使用者大多是連到那些網站,這個時候就得利用 Pwebstats 這一支分析程式了。Pwebstats 是一支由 Perl 所寫的程式,它可以對 web 和 proxy server 的 log 檔進行解讀,並將分析完後的結果和圖形產生在 html 上,使用者也可自行設定讓 pwebstats 分析什麼格式的 log 檔和多久執行一次分析。在 pwebstats 的網頁上方我們可以看到 daily usage c
11、hart,而在圖的下方則會有依每日 log 檔所分析出來的統計連結,使用者可以點選任一日統計資料進去觀看。統計資料所分析的項目非常的多,我們通常會去觀看 Proxy Server 的 Hit Rate,它能告訴我們的 Proxy server 被 Hit 的命中率有多少,也代表著 proxy server 到底是發揮了多少效用。Pwebstats 的運用當然不止如此而己,在 proxy server request 突然變大時pwebstats 也可以派上用場,舉個幾個實際的例子來說好了, (圖四)中我們可以看到203.187.1.180 在一天之內被 access 數居然高達 258,575
12、 次,而且比知名的入口網站高出了 20 幾倍,流量之大當然也造成 proxy server 無法負荷而產生服務中斷的現象。另外比對(圖五)中的統計結果也發現有人在 access .rar 的檔案而目的地就是上述所說的 203.187.1.180,經追查的結果,發現是學生是利用學校的 proxy server 在抓取非法資料。另一個實例是在(圖六)的統計結果顯示出http:/ 這個網頁被 access 的次數高達2,676,578,後經追查才得知原來是有使用者的電腦中毒了,一直在存取一個不存在的網頁。所以說 pwebstats 這個軟體夠好用吧,將又臭又長的 log 一個一個的分析成有用的資訊,
13、藉此,我們就可以替我們的 proxy server 找出問題所在,並進一步的追查問題的來源。(圖四)專題報導 - Proxy Server 常用之分析工具 25中興大學計資中心技術通訊第 18 期(圖五)專題報導 - Proxy Server 常用之分析工具 26中興大學計資中心技術通訊第 18 期(圖六)1. 軟體的取得: 可至 pwebstats 官方網站或本校的檔案伺服器上取得。2. 安裝 fly 及 gd 函式庫:pwebstats 是由 perl 所寫的程式,所以你的系統必需支援 perl5.0 以上的版本,並且下載 fly 程式及 gd 函式庫並且安裝他們。pkg_add fly-
14、1.6.5.tgzpkg_add gd-1.8.4_63. 安裝 pwebstatstar zxvf pwebstats-1.3.8.tar.gz在設定檔中修改幾個設定 /pwebstasts-1.3.8/conf/pwebstats.conflogfile: 要分析的 log 檔位置logtype:squid(設定 log 的形態)outdir:分析完結果的輸出位置templates:這個要指向原始檔的 templates 位置interval: (daily)fly-prog:/usr/local/bin/fly4. 執行 pwebstats./pwebstats c ./conf/pwe
15、bstats.conf*在執行之前必須要修改 pwebstats 執行檔的 perl 的路徑5. 在確認執行沒有問題之後就可以設定 crontab 使 pwebstats 每天都能自動分析6. 另一個 pwebstats 的工作:在 FreeBSD+squid 中的 access log 通常時間都是專題報導 - Proxy Server 常用之分析工具 27中興大學計資中心技術通訊第 18 期我們所看不懂的格式,萬一在 proxy server 發生狀況時我們要即時的觀看某個時間點的 log 想必是無從看起,這時就可以運用 pwebstats 原始檔中的一個小工具來替我們轉換時間。其路徑為/
16、utilities/squid2common.pl專題報導 - Proxy Server 常用之分析工具 28中興大學計資中心技術通訊第 18 期(圖七 轉換前格式) (圖八 轉換後格式)三、webalizer其實 webalizer(官方網站: http:/ pwebstats的功能可說是差不多,其分析項目為 Daily Statistics、Hourly Statistics、URLs、Entry、Sites、Countries 在這裡就不多介紹他的功能,有興趣的話不妨多裝一個 webalizer 來看看。1. 檔案的取得:如果先前有安裝了 MRTG 和 pwebstats 的話,那麼要安
17、裝 webalizer 就簡單多了,因為 png 和 gd 的函式庫就不必再裝了,若系統尚未安裝則要先裝好才能安裝webalizer。Pkg_add webalizer-2.1.10_1.tgz2. 備份一個設定檔並修改設定:cp /usr/local/etc/webalizer.conf-dist webalizer.confvi webalizer.confinput log:log 檔的位置LogType :設定為 squid 格式output log:分析的結果的存放位置3. 執行 webalizer:/usr/local/bin/webalizer若有安裝成功就可在網頁上看到如下的畫
18、面(圖九、十、十一)4. 加入 crontab專題報導 - Proxy Server 常用之分析工具 29中興大學計資中心技術通訊第 18 期0 1 * * * /usr/local/bin/webalizer(圖九)(圖十)專題報導 - Proxy Server 常用之分析工具 30中興大學計資中心技術通訊第 18 期(圖十一)專題報導 - Proxy Server 常用之分析工具 31中興大學計資中心技術通訊第 18 期結語造成 proxy server 服務中斷的因素實在是大多了,常見的有可能是下游的使用者機器中毒了,這時在 pwebstats 的分析資料中就可以看到 proxy ser
19、ver 被 request 的資數很明顯的變多了,甚者有人利用 proxy server 抓取大量非法資料檔。在在的都會影響到 proxy server 運作上的效能。其實可運用 proxy server 的分析工具很多,不論那一種都能帶來相當不錯的效用,管理者可以選擇針對自己需求的工具來使用,本文只是列舉介紹幾個較常用也較為人知的幾個工具。最主要的目的在於分享管理者可以有效的利用工具來達到有效的管理工作。因為這是資料轉變成資訊重要的工具和過程,因為只要一有服務中斷,對任何的使用者來說是帶來相當不方便的。然而這時管理者若能善用工具將資料變成有用的資訊,那想必能替 user 帶來更有效率的服務,也才不失使用 proxy server 的用意不是嗎?相關網站MRTG 官方網站:http:/people.ee.ethz.ch/oetiker/webtools/mrtg/Pwebstats 官方網站:http:/ 官方網站:http:/