Squid 代理服务之日志分析 --- sarg 软件的安装及应用

116 篇文章 16 订阅
23 篇文章 7 订阅


1. sarg 简述

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

2. 安装图像处理软件包

yum -y install pcre-devel gd gd-devel

3. 源码编译安装 sarg

这里提供一个软件下载方式:

wget http://101.34.22.188/squid/sarg/sarg-2.3.7.tar.gz -P /opt

[root@squid_server ~]# mkdir /usr/local/sarg
#创建软件安装目录
[root@squid_server ~]# cd /opt
[root@squid_server opt]# rz -E
#传入sarg软件安装包
rz waiting to receive.
[root@squid_server opt]# tar zxvf sarg-2.3.7.tar.gz -C /opt
[root@squid_server opt]# cd sarg-2.3.7/
[root@squid_server sarg-2.3.7]# ./configure \
> --prefix=/usr/local/sarg \      #软件安装目录
> --sysconfdir=/etc/sarg \        #配置文件目录,默认是/usr/local/etc
> --enable-extraprotection        #额外安全防护
[root@squid_server sarg-2.3.7]# make -j 2 && make install

4. 修改配置文件 /etc/sarg/sarg.conf

[root@squid_server sarg-2.3.7]# vim /etc/sarg/sarg.conf 

##7行,取消注释
access_log /usr/local/squid/var/logs/access.log    ##指定访问日志文件
##25行,取消注释(并修改)
title "Squid User Access Reports"                  ##网页标题,可自定义修改
##120行,取消注释(并修改)
output_dir /var/www/html/sarg                      ##报告输出目录,可自定义修改
##178行,取消注释
user_ip no                                         ##使用用户名显示
##184行,取消注释并修改
topuser_sort_field connect reverse                 ##top排序中,指定连接次数采用降序排列,升序是normal
##190行,取消注释并修改
user_sort_field connect reverse                    ##对于用户访问记录,连接次数按降序排列
##206行,取消注释并修改
exclude_hosts /usr/local/sarg/noreport             ##指定不计入排序的站点列表的文件,需自行创建,必须有该文件(可为空文件),否则会报错
##257行,取消注释
overwrite_report no                                ##同名同日期的日志是否覆盖
##289行,取消注释并修改
mail_utility mailq.postfix                         ##发送邮件报告命令
##434行,取消注释并修改
charset UTF-8                                      ##指定字符集UTF-8
##518行,取消注释
weekdays 0-6                                       ##top排行的周期周期,0表示周日
##525行,取消注释
hours 0-23                                         ##top排行的时间周期
##633行,取消注释(并修改)
www_document_root /var/www/html                    ##指定网页根目录,务必为当前网页服务的根目录

5. 创建不计入站点文件,添加的域名将不被显示在排序中

[root@squid_server sarg-2.3.7]# cd /usr/local/sarg/
[root@squid_server sarg]# ls
bin  share
[root@squid_server sarg]# touch noreport

6. 创建软链接到 PATH 路径

[root@squid_server sarg]# ln -s /usr/local/sarg/bin/sarg /usr/local/bin

7. 安装 apache 并生成 sarg

[root@squid_server sarg]# yum install -y httpd
[root@squid_server sarg]# systemctl start httpd
[root@squid_server sarg]# netstat -natp | grep 'httpd'
tcp6       0      0 :::80                   :::*                    LISTEN      4808/httpd 
[root@squid_server sarg]# sarg
SARG: 纪录在文件: 19, reading: 100.00%
SARG: 成功的生成报告在 /var/www/html/sarg/2021Sep09-2021Sep10

8. 浏览器访问查看

在这里插入图片描述

9. 添加计划任务,执行每天生成报告

9.1 编写执行脚本

[root@squid_server sarg]# vim /usr/local/sarg/report.sh

#!/bin/bash

#Get current date
TODAY=$(date +%d/%/%m/%Y)
#Get yesterday date
YESTERDAY=$(date -d '-1 day' +%d/%m/%Y)

#Create daily_report
/usr/local/sarg/bin/sarg -l /usr/local/squid/var/logs/access.log -o /var/www/html/sarg -z -d $YESTERDAY-$TODAY &> /dev/null

#Delete old directory which mtime>30
find /var/www/html/sarg -type d -a -name '20*' -a -mtime +30 -exec rm -rf {} \;

exit 0

[root@squid_server sarg]# chmod +x /usr/local/sarg/report.sh
#赋予脚本执行权限

9.2 添加计划任务

[root@squid_server sarg]# crontab -e

##分时日月周,添加计划性任务
0 0 * * * /usr/local/sarg/report.sh

[root@squid_server sarg]# crontab -l
##查看计划性任务列表
0 0 * * * /usr/local/sarg/report.sh
[root@squid_server sarg]# systemctl status crond
##查看crond服务状态,需保持开启状态
● crond.service - Command Scheduler
   Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled; vendor preset: enabled)
   Active: active (running) since 五 2021-09-10 07:04:56 CST; 15s ago
 Main PID: 11502 (crond)
   CGroup: /system.slice/crond.service
           └─11502 /usr/sbin/crond -n

910 07:04:56 squid_server systemd[1]: Started Command Scheduler.
910 07:04:56 squid_server systemd[1]: Starting Command Scheduler...
910 07:04:56 squid_server crond[11502]: (CRON) INFO (RANDOM_DELAY will be scaled with factor 33% if used.)
910 07:04:56 squid_server crond[11502]: (CRON) INFO (running with inotify support)
910 07:04:56 squid_server crond[11502]: (CRON) INFO (@reboot jobs will be run at computer's startup.)
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值