Related Posts Plugin for WordPress, Blogger...

1、前言

LightSquid - lite and fast log analizer for squid proxy 為利用 Squid Access Log 來分析 Proxy Client 使用情形。當然能分析 Squid Log 的軟體不只一套有興趣的話可到 Squid-cache.org Squid: Logfile Analysis List 看看。

LightSquid 特色如下:  (LightSquid Analysis ScreenShot)
  • fast and simple install
  • fast log parser generatesmall per user data file
  • perl based cgi script for dynamic generated report pages
  • html template for design
  • no database required (請尊重 Weithenn 的辛勞!!)
  • no additional perl module
  • various reports
  • user groups support
  • graphics report (v 1.6+)
  • real name (v 1.6+)
  • multilangual interface

文章目錄

1、前言
2、實作環境
3、安裝及設定
          步驟1.下載 lightsquid 及安裝 perl-GD 套件
          步驟2.修改 lightsquid 設定檔
          步驟3.產生 lightsquid 分析圖表
          步驟4.連結分析結果網頁
          步驟5.加入排程自動分析
4、補充:自動化 Squid Log Rotate 及分析
5、參考

2、實作環境

  • CentOS 5.1 (Linux 2.6.18-53.1.4.el5)
  • lightsquid-1.7.1.tgz
  • perl-GD-2.35-1.el5.rf (支援 GD 圖顯示)

3、安裝及設定

步驟1.下載 lightsquid 及安裝 perl-GD 套件

使用 yum 安裝 perl-DG 套件來支援 GD 圖能正常顯示。
#yum -y install perl-GD    //安裝 perl-GD 套件
至 LightSquid - lite and fast log analizer for squid proxy 下載 lightsquid-1.7.1.tgz 並上傳到本機家目錄上,我習慣把東西放在 /home 下集中,所以就把目錄 cp -rp 到 /home 下吧。
#tar zxvf lightsquid-1.7.1.tgz                     //解開壓縮檔
#cp -r ~/lightsquid-1.7.1 /home/web/lightsquid  //複製至網頁根目錄下
#cd /home/web/lightsquid                           //切換至 lightsquid 目錄
#cp lightsquid.cfg lightsquid.cfg.default       //複製預設檔


步驟2.修改 lightsquid 設定檔

以下僅列出跟預設值不同的設定 (要更進階的請自行研究吧!!)。(請尊重 Weithenn 的辛勞!!)
#vi /home/web/lightsquid/lightsquid.cfg
 $cfgpath             ="/home/web/lightsquid";         //指定 lightsquid.cfg 設定檔路徑
 $tplpath             ="/home/web/lightsquid/tpl";     //指定 tpl 路徑(存取屆時顯示 html、圖檔)
 $langpath            ="/home/web/lightsquid/lang";    //指定語系檔路徑
 $reportpath          ="/home/web/lightsquid/report";  //指定分析完資料放置路徑
 $logpath             ="/home/log/squid";              //指定要讀取 squid log 路徑
 $ip2namepath         ="/home/web/lightsquid/ip2name"; //指定要讀取 ip2name 路徑

修改完設定檔後我們可以跑一下 check-setup.pl 指令來檢查設定檔內語法的正確性。
#chmod 755 /home/web/lightsquid/check-setup.pl  //改變一下權限吧,預設為 644
#/home/web/lightsquid/check-setup.pl            
 LightSquid Config Checker, (c) 2005 Sergey Erokhin GNU GPL
 LogPath   : /home/log/squid
 reportpath: /home/web/lightsquid/report
 Lang      : /home/web/lightsquid/lang/eng
 Template  : /home/web/lightsquid/tpl/base
 Ip2Name   : /home/web/lightsquid/ip2name/ip2name.simple
 all check passed, now try access to cgi part in browser  //檢查 OK


步驟3.產生 lightsquid 分析圖表

接下來為利用 lightparser.pl 分析 Squid Access Log 若分析成功會有分析資料輸出到你指定的 reportpath (此例我設的路徑為 /home/web/lightsquid/report),注意不用打路徑只要打 access log 名稱就好,因為會自動幫你套設定的 LogPath 路徑。
#/home/web/lightsquid/lightparser.pl access.log.0  //access log不用再打路徑(套用 LogPath: /home/log/squid)

步驟4.連結分析結果網頁

在如下路徑應該連結到您的 LightSuqid 分析網頁。(請尊重 Weithenn 的辛勞!!)
http://www.weithenn.org/lightsquid/index.cgi
因為 lightsquid 是使用 Perl Language 撰寫的而我使用的 web server 是 lighttpd 所以也要設定一下支援 CGI Module 才連得上 index.cgi 不然會變成下載 index.cgi 檔案,設定 lighttpd.conf 內容如下修改完後記得 restart lighttpd 哦!!
#vi /etc/lighttpd/lighttpd.conf
 server.modules = (
                   "mod_cgi",  //取消此行註解 (支援 CGI Module)
                  )
 index-file.names = ( "index.php", "index.html",
                      "index.htm", "index.cgi", "default.htm" ) //加上 index.cgi
#### CGI module
 cgi.assign = ( ".pl"  => "/usr/bin/perl",  //取消此行註解
                ".cgi" => "/usr/bin/perl" ) //
取消此行註解

步驟5.加入排程自動分析

我們定於每天凌晨三點執行 squid rotate 來產生 squid access.log.0 然後凌晨四點使用 lightsquid 來分析 squid log 檔並產生統計圖表。
#crontab -e
 0 3 * * * root /usr/local/sbin/squid -k rotate
 0 4 * * * root /home/web/lightsquid/lightparser.pl access.log.0


4、補充:自動化 Squid Log Rotate 及分析

寫個簡單的 shell script 來自動化進行每天的 Squid Log Rotate 及分析,把寫好的 shell script (lightsquid.sh) 放到 /etc/cron.daily 即可每天自動執行。其中有個 sleep 10 就是執行完 Squid Log Rotate 後停止 10 秒? 為何要停止 10 秒 (視您的 access.log 大小),因為若不執行 sleep 的話則當您的系統還在執行 Squid Log Rotate 但下一行 lightsquid 已經分析了 (因為 cache.log 會先產生然後系統就繼續執行下一行了,但此時 access.log 還在產生中)。
#cat /etc/cron.daily/lightsquid.sh
 #!/bin/sh
 #$Id: lightsquid.sh,v 0.1 2008/1/28 weithenn Exp $
 #Daily Analysis Squid Log Script
 TODAY=`date +%Y%m%d`
 DESDIR="/home/log/squid/backup"
 ROTATE="/usr/sbin/squid -k rotate"
 ANALYSIS="/home/web/lightsquid/lightparser.pl access.log.0"
 ${ROTATE}
 sleep 10                    
 ${ANALYSIS}
 mkdir -p ${DESDIR}/${TODAY}
 mv /home/log/squid/*.log.0 ${DESDIR}/${TODAY}


5、參考

文章標籤: