1. 程式人生 > 實用技巧 >squid日誌分析軟體sarg的安裝和使用

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