squid日志分析

sarg是一款squid日志分析工具,采用HTML格式,详细列出每一位用户访问Internet的站点信息、时间占用信息、排名、连接次数和访问量等。

sarg部署过程如下

实验环境

squid代理服务器IP:192.168.10.157
测试主机IP:192.168.10.145

方便起见httpd服务也安装在代理服务器上
1、构建代理服务器,可参考我主页博客,此处省略
2、代理服务器上安装gd库
yum install -y gd gd-devel     //图像处理
3、创建sarg安装目录,配置安装
mkdir /usr/local/sarg
tar zxvf sarg-2.3.7.tar.gz -C /opt/

cd /opt/sarg-2.3.7

./configure --prefix=/usr/local/sarg \      //指明安装目录
--sysconfdir=/etc/sarg \                 //系统配置路径
--enable-extraprotection            //额外安全防护

make && make install
4、修改sarg主配置文件
cd /etc/sarg/
vim sarg.conf

配置文件里全是注释内容,将如下条目开启,有些需要修改

access_log /usr/local/squid/var/logs/access.log    //指定访问日志文件

title "Squid User Access Reports"      //网页标题

output_dir /var/www/html/squid-reports    //报告输出目录

user_ip no          //使用用户名显示

exclude_hosts /usr/local/sarg/noreport   //不计入排序的站点列表文件,需创建

topuser_sort_field connect reverse   //top排序中有连接次数、访问字节、降序排列 升序是normal

user_sort_field connect reverse    //用户访问记录 连接次数、访问字节按降序排序

overwrite_report no   //同名日志是否覆盖

mail_utility mailq.postfix   //发送邮件报告命令

charset UTF-8   //使用字符集

weekdays 0-6   //top排行的星期周期

hours 0-23   //top排行的时间周期

www_document_root /var/www/html  //网页根目录
5、根据上述修改内容,创建不计入站点文件
#添加不计入站点文件,添加的域名将不被显示在排序中
touch /usr/local/sarg/noreport
6、方便管理创建软链接
ln -s /usr/local/sarg/bin/sarg /usr/local/bin/
7、启动sarg
sarg 

SARG: 纪录在文件: 32, reading: 100.00%
SARG: 成功的生成报告在 /var/www/html/squid-reports/2018Jul26-2018Jul26

8、使用浏览器进行查看
#squid代理服务器上安装httpd并开启
yum install httpd -y
sysytemctl start httpd.service


#测试主机需修改浏览器选项的代理端口为80,之后输入如下地址访问查看
http://192.168.10.145/squid-reports

squid反向代理

通过squid反向代理可以加速网站的访问速度,可将不同的URL请求分发到后台不同的web服务器上,同时互联网用户只能看到反向代理服务器的地址,加强了网站的访问安全

squid反向代理加速的原理描述如下:

(1) Squid反向代理服务器位于本地Web服务器和Internet之间, 客户端请求访问Web服务器时,DNS将访问的域名解析为Squid反向代理服务器的IP地址,客户端将访问Squid代理服务器。

(2)如果Squid反向代理服务器中缓存了该请求的资源, 则将该请求的资源返回给客户端,否则反向代理服务器将向后台的Web服务器请求资源,然后将应答资源返回给客户端,同时也将该资源缓存在本地,供下一个请求者使用。

实验环境

squid代理服务器IP:192.168.10.157
web1服务器IP:192.168.10.161
web2服务器IP:192.168.10.154
测试主机:192.168.10.145
1、搭建squid步骤同参考我之前的博客,squid代理主配置文件修改如下内容
vim /etc/squid.conf
http_port 192.168.10.157:80 accel vhost vport
cache_peer 192.168.10.161 parent 80 0 no-query originserver round-robin max_conn=30 weight=1 name=web1
cache_peer 192.168.10.154 parent 80 0 no-query originserver round-robin max_conn=30 weight=1 name=web2
cache_peer_domain web1 web2 www.xxy.com

service squid restart     //重启squid
2、两台web服务器上安装httpd并开启服务
yum install -y httpd
systemctl start httpd.service

#修改网站首页文件以区别两台web服务器
cd /var/www/html
echo "this is web1" > index.html    //web1首页文件内容
echo "this is web2" > index.html      //web2首页文件内容

systemctl stop firewalld.service
setenforce 0       //关闭防火墙和安全功能

3、修改测试主机hosts文件
#由于使用域名进行访问,此处没有搭建DNS服务,所以通过修改测试主机hostS文件实现

4、测试主机上使用浏览器访问www.xxy.com测试