sarg介紹
sarg的全稱是:squid analysis report generator
sarg是非常好用的squid日志分析工具,它輸出html格式, 可以詳細列出每一位使用者通路internet的站點資訊,排名,連接配接次數,通路量,通路量等。
軟體的首頁:http://sarg.sourceforge.net/sarg.php 目前最新的版本是sarg-2.2.7.1.tar.gz
安裝
下載下傳了sarg的最新安裝包以後,進入下載下傳的目錄,執行以下的操作進行安裝:
tar zxvf sarg-2.0.3.tar.gz #解壓縮安裝軟體包
cd sarg-2.0.2 #進入解壓後的目錄,
./configure --prefix=/usr/local/sarg --enable-bindir=/usr/local/sarg/bin
make
make install
cp /usr/local/sarg/bin/sarg /usr/bin/ #将sarg的指令拷貝到系統目錄中去以後執行sarg就可以不要加路徑了。
#安裝成功後,在/usr/local/sarg/目錄中,有一個配置檔案為sarg.conf,我們通過修改配置檔案的參數,來達到對日志進行有規則的分析。也可以通過指令行參數實作。
#sarg配置檔案的方法和squid配置檔案的配置方法類似,隻要修改帶有關鍵字的行:
"language english"
指定網頁報告檔案的語言類型,很可惜不支援中文網頁。
"access_log /var/log/squid/access.log"
指定squid日志檔案絕對路徑。
"title "squid 使用報告"
指定網頁标題。
"temporary_dir /var/tmp"
指定臨時檔案目錄,請确認該目錄所在的分區足夠大先,1g以上。
"output_dir /var/www/html/sarg"
指定網頁報告檔案輸出路徑。
"topuser_sort_field connect reverse bytes reverse"
在top排序中,指定連接配接次數(connect),通路位元組數(bytes)采用降序排列,升序請使用normal替代reverse
"user_sort_field connect reverse"
對于每個使用者的通路紀錄,連接配接次數按降序排列
"exclude_hosts /usr/local/sarg/norecords"
指定不計入排序的站點清單檔案名為/usr/local/sarg/norecords,對于用戶端 通路的這些站點,将不會被top排序中,norecords檔案樣本:
google.com
csdn.net
microsoft.com
"date_format e"
啟動sarg程序是如果使用日期參數-d時,請使用和配置檔案一緻的日期格:
e (europe=dd/mm/yy),
u (usa=mm/dd/yy),
w (weekly=yy.ww)
"topuser_fields num date_time userid connect bytes %bytes in-cache-out used_time milisec %time total average"
指定top排序的域,可以取掉一些不關緊要的域:in-cache-out used_time等
"weekdays 1-5"
指定top排序星期周期為星期一到星期五,0表示星期天
"hours 9-11,13-16"
指定top排序的時間周期為9:00-11:59,13:00-16:59,
至此,sarg.conf檔案的配置基本完成了,也可以直接參考附件。
還建立一個存放記錄的地方
mkdir /var/www/html/sarg/
mkdir /var/www/html/sarg/daily
mkdir /var/www/html/sarg/weekly
mkdir /var/www/html/sarg/monthly
sarg的指令行解釋如下:
sarg -h
sarg: usage [options...]
-a hostname or ip address
指定不計入排序的主機名稱或位址
-b useragent log
使用者代理日志檔案輸出
-c exclude file
指定不計入排序的站點清單檔案名為/usr/local/sarg/norecords,對于用戶端通路的這
些站點,将不會被top排序中
-d date dd/mm/yyyy-dd/mm/yyyy
指定日期範圍
-e email address to send reports (stdout for console)
指定報告接收者郵件
-f config file (/usr/local/sarg/sarg.conf)
指定配置檔案
-g date format [e=europe -> dd/mm/yy, u=usa -> mm/dd/yy]
指定輸入的日期格式
-h help (this...)
列幫助資訊
-i reports by user and ip address
指定用戶端排序采用使用者名或者ip位址
-l input log
指定squid日志檔案絕對路徑。
-o output dir
指定網頁報告檔案輸出路徑,推薦使用webmaster或其他非admin使用者運作
sarg。
-p use ip address instead userid (reports)
使用ip位址作為userid域
-w temporary dir
指定臨時檔案目錄,請确認該目錄所在的分區足夠大先,1g以上。
運作
一般來說,我們希望系統可以自動生成報告在sarg的首頁上可以找到日/月/年的自動生成腳本
sarg -d 日/月/年-日/月/年 #執行sarg的這個指令就可生成你想要的時間段的上網情況
也可以使用crontab來每日自動執行
首先建立執行腳本分為日、周、月三個檔案
vi /usr/local/sarg/bin/daily
内容如下:
#!/bin/bash
#get yesterday date
yesterday=$(date --date "1 day ago" +%d/%m/%y)
export lc_all=c
/usr/local/sarg/bin/sarg -o /var/www/html/sarg/daily -d $yesterday > /dev/null 2>&1
exit 0
vi /usr/local/sarg/bin/monthyl
#get 1 month ago date
monthago=$(date --date "1 month ago" +%d/%m/%y)
/usr/local/sarg/bin/sarg -o /var/www/html/sarg/monthly -d $monthago-$yesterday > /dev/null 2>&1
/usr/local/squid/sbin/squid -k rotate
vi /usr/local/sarg/bin/weekly
#generate access.log for correct weekly reports
cat /var/log/squid/access.log.0 /var/log/squid/access.log > /var/log/squid/access.log.week
yesterday=$(date --date "1 days ago" +%d/%m/%y)
#get one week ago date
weekago=$(date --date "7 days ago" +%d/%m/%y)
/usr/local/sarg/bin/sarg -l /var/log/squid/access.log.week -o /var/www/html/sarg/weekly -d $weekago-$yesterday > /dev/null 2>&1
然後運作
crontab -e
30 1 * * * /usr/local/sarg/bin/daily
01 0 * * 1 /usr/local/sarg/bin/weekly
01 3 1 * * /usr/local/sarg/bin/monthly
這樣在每天都會自動生成一個配置檔案來檢視
為檔案曾加刻執行的權限
chmod 755 /usr/local/sarg/bin/daily
chmod 755 /usr/local/sarg/bin/weekly
chmod 755 /usr/local/sarg/bin/monthly
好了現在你就可以等着第二天一大早來檢視你的網絡前一天的上網情況。
http://www.bobo365.com/sarg/
漢化
将附件chinese.txt的字尾去掉變為chinese儲存在/usr/local/sarg/languages/即可
配置檔案執行個體
将sarg.txt改名為sarg.conf并儲存在/usr/local/sarg/下
所轉發的檔案均未找到chinese.txt檔案。故無法提供内容。