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文件实现