squid日誌分析軟體sarg的安裝和使用
squid日誌分析軟體sarg的安裝和使用
環境:centos 5.4 +apache 2.2.17 apache 原始碼編譯安裝在/usr/local/httpd下
1 下載Sarg的原始碼包,使用如下命令解壓安裝。
tar –zxvf sarg-2.2.5.tar.gz
cd sarg-2.2.5
make
make install
2 修改配置檔案(/usr/local/sarg/sarg.conf),內容如下
#指定網頁報告型別,目前不支援中文
language english
#指定squid訪問日誌的絕對路徑
access_log /usr/local/squid/var/logs/access.log
#指定網頁報告的檔案輸出路徑
output_dir /usr/local/httpd/htdocs/sarg
#如果報告已存在是否覆蓋
overwrite_report no
# 指定臨時檔案目錄,請確認該目錄所在的分割槽足夠大先,1g以上。
temporary_dir /var/tmp
3 sarg的命令列解釋如下
[[email protected] ~]# sarg -h
sarg: Usage [options...]
-a Hostname or IP address
-b Useragent log
-c Exclude file
-d Date from-until 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
-l Input log
-n Resolve IP Address
-o Output dir
-p Use Ip Address instead of userid (reports)
-s Accessed site [Eg. www.microsoft.com, www.netscape.com]
-t Time [HH, HH:MM]
-u User
-w Temporary dir
-x Process messages
-z Debug messages
-convert Convert the access.log file to a legible date
-split Split the log file by date in -d parameter
4 編寫指令碼
我的apache網站家目錄是/usr/local/httpd/htdocs
每日備份指令碼如下:sarg.daily 實現對昨天squid日誌統計
#!/bin/bash
#Get current date
TODAY=$(date +%d/%m/%Y)
#Get one week ago today
YESTERDAY=$(date -d yesterday +%d/%m/%Y)
/usr/bin/sarg -l /usr/local/squid/var/logs/access.log -o /usr/local/httpd/htdocs/sarg/daily -z -d $YESTERDAY
exit 0
加入計劃任務實現每天凌晨對昨天的訪問日誌統計
#crontab –e
0 0 * * * sh /data/myscripts/sarg.daily
每週備份指令碼如下:sarg.weekly 實現對上週上網情況統計並對squid日誌切割
#!/bin/bash
#Get current date
YESTERDAY=$(date --date "1 days ago" +%d/%m/%Y)
#Get one week ago today
WEEKAGO=$(date --date "7 days ago" +%d/%m/%Y)
/usr/bin/sarg -l /usr/local/squid/var/logs/access.log -o /usr/local/httpd/htdocs/sarg/weekly -z -d $WEEKAGO-$YESTERDAY
/usr/local/squid/sbin/squid -k rotate
exit 0
加入計劃任務實現每週一對上週上網情況進行統計 因為考慮到日誌切割 所以這個指令碼必須在每日統計指令碼後執行,所以我選擇了凌晨一點。如果這個指令碼在每日統計指令碼前執行則會造成星期天日誌統計報表無法生成
#crontab –e
0 1 * * 1 sh /data/myscripts/sarg.weekly
5 測試
sh /data/myscripts/sarg.daily
這樣將在/usr/local/httpd/htdocs/sarg/daily下產生如下檔案或者資料夾
2011Jun15-2011Jun15 Images index.html
網頁訪問http://192.168.1.2:30000/sarg/daily
網頁訪問http://192.168.1.2:30000/sarg/weekly
6 加密碼
我們現在可以看到我們的訪問統計情況了。但是這樣很不安全,大家都可以看。我們可以用設定讓訪問http://192.168.1.2:30000/sarg/daily 和 http://192.168.1.2:30000/sarg/weekly 時輸入使用者名稱密碼。
a.在apache配置檔案 httpd.conf中新增
Include conf/extra/squid.conf
b.在/usr/local/httpd/conf/extra/下建立squid.conf 內容為:
Alias /sarg "/usr/local/httpd/htdocs/sarg"
<Directory "/usr/local/httpd/htdocs/sarg">
# SSLRequireSSL
Options None
AllowOverride None
Order allow,deny
Allow from all
# Order deny,allow
# Deny from all
# Allow from 127.0.0.1
AuthName "Sarg Access"
AuthType Basic
AuthUserFile /usr/local/sarg/htpasswd
Require valid-user
</Directory>
c.建立登陸使用者和密碼:
/usr/local/httpd/bin/htpasswd -c /usr/local/sarg/htpasswd test
輸入兩次test使用者密碼即可
d.重啟http服務 讓更改生效
/usr/local/httpd/bin/apachectl restart
現在在來登陸上面的網址輸入使用者名稱密碼即可
好了,搭建完了
轉載於:https://blog.51cto.com/liuhaiqing/590094