Por: @eduardoh Publicado em: 2022-07-06
SquidAnalyzer para consumo de logs do Webfilter
Objetivo
Testar o comportamento do serviço SquidAnalyzer para o consumo de logs do Webfilter.
Instalação
Instalando os requisitos:
yum install perl perl-devel git
Instalando o SquidAnalyzer:
cd /var/www/
git clone https://github.com/darold/squidanalyzer
cd squidanalyzer/
perl Makefile.PL
make && make install
Criar virtualhost para permitir acesso ao SquidAnalyzer:
vim /etc/nginx/conf.d/squidanalyzer.conf
server {
listen 8888;
server_name _;
location /squidreport {
alias /var/www/squidanalyzer;
}
}
systemctl restart nginx
Apontar o arquivo de logs correto:
vim /etc/squidanalyzer/squidanalyzer.conf
LogFile /var/log/squid/access.log
Configurar a cron para compilar os logs:
vim /etc/cron.d/squidanalyzer
PATH=/sbin:/bin:/usr/sbin:/usr/bin
LANG=pt_BR.UTF-8
# SquidAnalyzer log reporting daily
0 2 * * * /usr/local/bin/squid-analyzer > /dev/null 2>&1
systemctl restart crond
Executando a primeira vez para gerar os primeiros logs e as páginas web:
Modo normal:
/usr/local/bin/squid-analyzer
Modo debug:
/usr/local/bin/squid-analyzer -d
Autenticação (Opcional, porém recomendada)
Instalar o pacote httpd-tools
:
yum install httpd-tools
Criando usuário:
htpasswd -c /var/www/squidanalyzer/.htpasswd visualizador
New password: ***
Re-type new password: ***
Adding password for user visualizador
Ativando autenticação:
vim /etc/nginx/conf.d/squidanalyzer.conf
server {
listen 8888;
server_name _;
location /squidreport {
alias /var/www/squidanalyzer;
auth_basic "Autenticação necessária";
auth_basic_user_file /var/www/squidanalyzer/.htpasswd;
}
}
Reiniciando o Nginx:
systemctl restart nginx
Redirecionamento (Opcional)
Caso você utilize um virtualhost diferente do padrão, que utilize outra porta, você pode criar um redirecionamento que quando o usuário abrir o site na porta configurada, ele seja automaticamente redirecionado para a URI /squidreport
vim /etc/nginx/conf.d/squidanalyzer.conf
server {
listen 8888;
server_name _;
location / {
return 301 /squidreport;
}
location /squidreport {
alias /var/www/squidanalyzer;
auth_basic "Autenticação necessária";
auth_basic_user_file /var/www/squidanalyzer/.htpasswd;
}
}
Links úteis
- https://github.com/darold/squidanalyzer
- https://www.linuxhelp.com/how-to-install-squid-analyzer-on-centos-7
Análise geral
De modo geral a ferramenta é de fácil instalação e atende o que precisamos hoje a curto prazo. A configuração não requer passos complexos de implantação. Um risco é a descontinuação da ferramenta, então como sugestão fica: criar pacote e armazenar no nosso repositório.
Critérios levados em consideração:
-
Licenciamento: O SquidAnalyzer está disponível de maneira aberta no GitHub sobre licença GPL v3.
-
Suporte: O último commit do software foi lançado em novembro de 2020, depois disso não se teve mais atualização da ferramenta.
-
Instalação: Instalação simples baseada em compilação. Uma possível sugestão seria avaliar criar o pacote e indexar ao nosso repo, para termos maior garantia que a ferramenta esteja sempre disponível.
-
Configuração: Configuração é simples e não requer nível de complexidade alto, basta seguir o procedimento.
-
Integração com o produto: Fácil integração, pensando a curto prazo basta adicionarmos novas tasks ao Ansible para provisionar.
-
Performance: Como o SquidAnalyzer não se mantém em execução como serviço, acaba sendo bastante performático, pois utiliza de serviços já instalados, como Cron, Nginx e o próprio Squid.
-
Limitações/impedimentos/riscos: Falta de atualização de melhorias e correção de bugs, repositório aberto no Github sem atualização que pode ser desativado a qualquer momento.
-
Referência de soluções alternativas: O SquidAnalyzer já é uma solução alternativa para o Graylog que foi estudado em outra Spike.