超詳細搭建Squid日誌分析
Sarg的全名是Squid Analysis ReportGenerator,是一款Squid日誌分析工具,采用HTML格式,詳細列出每一位用戶訪問Internet的站點信息、時間占用信息、排名、連接次數和訪問量等
實驗環境
- 系統環境:centos7.4
- 服務器IP地址:192.168.100.71
- 相關源碼信息:sarg-2.3.7、squid-3.4.6
搭建步驟
一、安裝Squid服務
沒有安裝squid服務的朋友可以查看我之前的博文 http://blog.51cto.com/11905606/2177108
二、Squid日誌分析
1、安裝web服務
1)、安裝httpd軟件包
[root@squid ~]# yum -y install httpd
2)、修改配置文件
[root@squid ~]# vim /etc/httpd/conf/httpd.conf
#編輯以下參數
ServerName www.bt.com:80 #設置完全主機名,根據自己的需求
Listen 192.168.100.71:80 #設置服務監聽端口
3)、啟動服務
[root@squid ~]# systemctl start httpd.service
[root@squid ~]# netstat -anpt | grep ‘:80‘
2、配置Sarg分析Squid日誌
1)、安裝GD庫
[root@squid ~]# yum -y install gd gd-devel
2)、安裝sarg
[root@squid ~]# tar xvfz sarg-2.3.7.tar.gz
[root@squid ~]# cd sarg-2.3.7/
[root@squid sarg-2.3.7]# ./configure \
--prefix=/usr/local/sarg \
--sysconfdir=/etc/sarg \
--enable-extraprotection
#參數詳解
prefix #指定配置文件安裝路徑
sysconfdir #配置文件目錄
enable-extraprotection #安全保護功能
[root@squid sarg-2.3.7]# make && make install
3)、修改sarg配置文件,添加要監控的squid的日誌信息等
[root@squid ~]# vim /etc/sarg/sarg.conf
#修改以下參數
access_log /usr/local/squid/var/logs/access.log #約第7行, 打開squid訪問日誌
title "Squid User Access Reports" #約第25行, 打開網頁標題
output_dir /var/www/html/squid-reports #約第120行,sarg報告輸出目錄
user_ip no #約第178行,使用用戶名顯示,no代表禁用
exclude_hosts /usr/local/sarg/noreport #約第206行,指定不計入排序的站點列表文件
topuser_sort_field BYTES reverse #約第184行,在top排序中,指定連接次數、訪問字節數,reverse代表降序
user_sort_field BYTES reverse #約第190行,對於用戶訪問記錄,連接次數按降序排列
overwrite_report no #約第257行,當日期報告已經存在,是否覆蓋報告
mail_utility mailx #約第289行,發送郵件報告的命令
charset UTF-8 #約第434行,使用字符集,utf-8
weekdays 0-6 #約第518行,指定top排序時的星期周期,0為周日
hours 7-12,14,16,18-20 #約第523行,指定top排序時的時間周期
www_document_root /var/www/html #約第633行,網頁根目錄
[root@squid ~]# touch /usr/local/sarg/noreport #創建不計入排序的站點列表文件
4)、啟動sarg並對觀察squid的訪問日誌
[root@squid ~]# ln -s /usr/local/sarg/bin/sarg /usr/local/bin #添加軟鏈接
[root@squid ~]# sarg #啟動sarg
SARG: 紀錄在文件: 53, reading: 100.00%
SARG: 成功的生成報告在 /var/www/html/squid-reports/2018Sep19-2018Sep19
5)、測試
輸入 http://192.168.100.103/squid-reports/
6、引入周期性計劃任務
1).編輯每日報告腳本
[root@squid ~]# cd /usr/local/sarg/
[root@squid sarg]# vim sarg.sh
00 00 * sarg -l /usr/local/squid/var/logs/access.log -o /var/www/html/squid-reports/ -z -d $(date -d "1 day ago" +%d/%m/%Y)-$(date +%d/%m/%Y)
2).添加周期性計劃任務
[root@squid ~]# chmod +x /usr/local/sarg/sarg.sh
[root@squid ~]# crontab -e
00 00 * * * /usr/local/sarg/sarg.sh #每天00:00執行
[root@squid ~]# systemctl enable crond #設為開機自啟動
超詳細搭建Squid日誌分析