在 CentOS 7 上安装 SquidAnalyzer 的依赖软件包
SquidAnalyzer 是一个基于 Web 的软件,因此我们需要安装一个 Web 服务器来部署和运行 SquidAnalyzer。
使用 yum 命令安装 Apache HTTP Server。
[root@squid-proxy-01 ~]# yum install -y httpd
SquidAnalyzer 还需要安装 perl 编译器。
使用 yum 命令安装 perl 包。
[root@squid-proxy-01 ~]# yum install -y perl perl-devel
我们还需要 git 命令来从 GitHub 克隆 SquidAnalyzer 源。
[root@squid-proxy-01 ~]# yum install -y git
在 CentOS 7 上安装 SquidAnalyzer
使用 git 命令下载 SquidAnalyzer 的源代码。
[root@squid-proxy-01 ~]# cd /var/www [root@squid-proxy-01 www]# git clone https://github.com/darold/squidanalyzer Cloning into 'squidanalyzer'... remote: Enumerating objects: 2064, done. remote: Total 2064 (delta 0), reused 0 (delta 0), pack-reused 2064 Receiving objects: 100% (2064/2064), 1.44 MiB | 640.00 KiB/s, done. Resolving deltas: 100% (1309/1309), done.
从源代码编译 SquidAnalyzer。
[root@squid-proxy-01 www]# cd squidanalyzer/ [root@squid-proxy-01 squidanalyzer]# perl Makefile.PL which: no bzcat in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin) Checking if your kit is complete... Looks good Writing Makefile for SquidAnalyzer Done... Now type 'make && make install'
如下安装 SquidAnalyzer。
[root@squid-proxy-01 squidanalyzer]# make && make install cp SquidAnalyzer.pm blib/lib/SquidAnalyzer.pm cp squid-analyzer blib/script/squid-analyzer /usr/bin/perl -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/squid-analyzer Manifying blib/man3/SquidAnalyzer.3pm Installing /usr/local/share/perl5/SquidAnalyzer.pm sh install_all.sh ---------------------------------------------------------------------------- 1. Modify your httpd.conf to allow access to HTML output like follow: Alias /squidreport /var/www/squidanalyzer <Directory /var/www/squidanalyzer> Options -Indexes FollowSymLinks MultiViews AllowOverride None Order deny,allow Deny from all Allow from 127.0.0.1 </Directory> 2. If necessary, give additional host access to SquidAnalyzer in httpd.conf. Restart and ensure that httpd is running. 3. Browse to http://my.host.dom/squidreport/ to ensure that things are working properly. 4. Setup a cronjob to run squid-analyzer daily: # SquidAnalyzer log reporting daily 0 2 * * * /usr/local/bin/squid-analyzer > /dev/null 2>&1 or run it manually. For more information, see /README file. ---------------------------------------------------------------------------- Appending installation info to /usr/lib64/perl5/perllocal.pod
编辑 Apache 配置以添加 SquidAnalyzer 网站。
[root@squid-proxy-01 squidanalyzer]# cd [root@squid-proxy-01 ~]# vi /etc/httpd/conf.d/squidanalyzer.conf
在配置文件中添加以下指令。
Alias /squidreport /var/www/squidanalyzer <Directory /var/www/squidanalyzer> Options -Indexes +FollowSymLinks +MultiViews AllowOverride None Order deny,allow Deny from all Allow from 192.168.1.0/24 </Directory>
启用并启动 httpd.service 。
[root@squid-proxy-01 ~]# systemctl enable --now httpd Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.
在 CentOS 7 防火墙中允许 HTTP 服务。
[root@squid-proxy-01 ~]# firewall-cmd --permanent --add-service=http success [root@squid-proxy-01 ~]# firewall-cmd --reload success
默认情况下,根据我们的 Linux 发行版,squidanalyzer.conf 文件中提供的日志文件位置不正确。
因此,我们需要在继续之前纠正它。
[root@squid-proxy-01 ~]# grep LogFile /etc/squidanalyzer/squidanalyzer.conf LogFile /var/log/squid3/access.log [root@squid-proxy-01 ~]# sed -i 's/squid3/squid/' /etc/squidanalyzer/squidanalyzer.conf [root@squid-proxy-01 ~]# grep LogFile /etc/squidanalyzer/squidanalyzer.conf LogFile /var/log/squid/access.log
为 SquidAnalyzer 配置 Cron 作业以生成分析报告。
[root@squid-proxy-01 ~]# crontab -e
其中添加以下行。
# SquidAnalyzer log reporting daily 0 2 * * * /usr/local/bin/squid-analyzer > /dev/null 2>&1
我们必须显式执行一次 squid-analyzer 命令才能在 /var/www/squidanalyzer 目录中生成报告。
[root@squid-proxy-01 ~]# /usr/local/bin/squid-analyzer
在客户端浏览器中浏览 URL http://squid-proxy-01.onitroad.com/squidreport。
为 SquidAnalyzer 配置 HTTP 基本身份验证
SquidAnalyzer 不提供本地身份验证方法。
由于 SquidAnalyzer 作为 Web 应用程序运行,因此,我们可以利用 HTTP 基本身份验证来限制对 SquidAnalyzer 网站的访问。
使用 yum 命令安装 httpd-tools。
[root@squid-proxy-01 ~]# yum install -y httpd-tools Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: mirrors.ges.net.pk * extras: mirrors.ges.net.pk * updates: mirrors.ges.net.pk Package httpd-tools-2.4.6-90.el7.centos.x86_64 already installed and latest version Nothing to do
没事做!因为,我们在 CentOS 7 上安装 Squid 代理服务器时已经安装了 httpd-tools。
为 SquidAnalyzer 创建一个密码文件并其中添加 squidadmin 用户。
[root@squid-proxy-01 ~]# htpasswd -c /etc/squidanalyzer/passwd squidadmin New password: Re-type new password: Adding password for user squidadmin
编辑 Apache 配置以添加 HTTP 基本身份验证。
[root@squid-proxy-01 ~]# vi /etc/httpd/conf.d/squidanalyzer.conf
为 SquidAnalyzer 添加 HTTP 基本身份验证。
最终配置应该是这样的。
Alias /squidreport /var/www/squidanalyzer <Directory /var/www/squidanalyzer> Options -Indexes +FollowSymLinks +MultiViews AllowOverride None Order deny,allow Deny from all Allow from 192.168.1.0/24 AuthType Basic AuthName "Restricted Content" AuthUserFile /etc/squidanalyzer/passwd Require valid-user </Directory>
测试 Apache 配置文件的语法错误。
[root@squid-proxy-01 ~]# httpd -t Syntax OK
重新启动 Apache 服务以使更改生效。
[root@squid-proxy-01 ~]# systemctl restart httpd.service
在客户端浏览器中浏览 URL http://squid-proxy-01.onitroad.com/squidreport。
现在,它需要用户身份验证才能访问 SquidAnalyzer 网站。
我们已经在 CentOS 7 上成功安装并配置了 SquidAnalyzer 以进行 Squid 日志分析。
SquidAnalyzer 是 Squid 代理服务器的日志分析器。
SquidAnalyzer 通过基于 Web 的界面生成并提供分析报告。