Visualizando acessos dos usuários em tempo real no Squid
O link na empresa em que trabalho é um pouco limitado e sempre algum usuário acaba abusando um pouco e deixando o acesso mais lento para todos os outros.
Sempre tive dificuldades em conseguir rastrear quem está abusando do link (com o iptraf é possível, mas é um pouco complicado e não é muito exato). Buscando no Google, encontrei o SQStat.
Este script mostra em uma página PHP todos os acessos que estão acontecendo em tempo real e também permite que você configure um tempo para atualização automática da página.
A instalação dele é absurdamente simples:
Primeiro faça o download da versão mais recente no site. Quando escrevi essa dica o link era: sqstat-1.20.tar.gz
Coloque este arquivo no root do servidor web da máquina com o proxy e extraia o arquivo:
# tar xzvf sqstat-1.20.tar.gz
Mude o nome do diretório para sqstat (apenas para facilitar o acesso no navegador, isto é opcional).
Renomeie o arquivo config.inc.php.defaults para config.inc.php;
Edite o arquivo config.inc.php:
em "$squidhost[0]=" coloque 127.0.0.1 (se o host que você for monitorar for o host onde você instalou o SQStat);
em "$squidport[0]=" coloque a porta onde o Squid está escutando no host;
em "$resolveip[0]=" coloque true para que o SQStat resolva os nomes dos hosts;
em "$group_by[0]=" você pode colocar "host" se não utilizar autenticação no Squid, o que mostrará os IPs dos clientes; você também pode colocar "username" se utilizar autenticação, assim todas as conexões mostradas na página serão agrupadas por nome de usuário ao invés de host.
Agora é necessário configurar o Squid para que o SQStat consiga analisar os dados. Faça o seguinte no seu squid.conf:
Na linha "acl webserver ... ", substitua "10.0.0.1" pelo IP do servidor web que exibirá a página do SQStat.
Reinicie o Squid.
Pronto! O SQStat já está instalado e configurado. Para acessá-lo abra seu navegador e digite:
http://ip-do-servidor-web/sqstat/sqstat.php
Você também pode monitorar mais de um proxy utilizando o mesmo servidor web. Copie o bloco de configuração do host que configuramos acima e substitua os "[0]" por "[1]" para outro host. Para um terceiro, você deveria colocar "[2]" e assim por diante.
[2] Comentário enviado por pogo em 17/06/2009 - 12:45h
gesousa,
O SARG e o SQStat possuem finalidades diferentes. O SARG lê e armazena todos os acessos para gerar relatórios HTML sobre eles. Não é em tempo real.
O SQStat, além de fornecer algumas informações a mais, mostra os acessos no segundo em que eles acontecem. Permitindo que você tome uma ação imediata se algum usuário estiver abusando da banda, por exemplo.
Se ele é mais rápido que o tail -f /var/log/squid/access.log eu não sei, mas que é 1000 vezes mais amigável, isso com certeza absoluta =)
[3] Comentário enviado por doomk em 17/06/2009 - 17:51h
cara... essa ferramenta é maravilinda ! =)))
testei aqui na empresa e o treco dedura mesmo quem está consumindo banda...
vai mais uma dica, pra quem não tem autenticação no squid, como o meu caso, e quer ter visualizado os nomes em vez dos IPs, é só jogar um txt com os ips e nomes e descomentar a linha $hosts_file[0]="hosts.txt" que ele substitui.
[5] Comentário enviado por edcomrocha em 19/06/2009 - 20:47h
Show de bola, aqui esta rodando bem....
Só tenho uma duvida.
Como faço pra criar o arquivo de hosts.txt?
Criei o arquivo aqui descomentei a linha que nosso amigo doomk disse mais quando rodo o sqstat ele da um erro estranho e nao vai...
[6] Comentário enviado por pogo em 19/06/2009 - 22:44h
edcomrocha,
Poste o erro aqui para ficar mais fácil ajudá-lo! Mas talvez, será que você não inverteu a ordem das coisas? Digo, trocou a ordem do IP com o nome do host.
[12] Comentário enviado por halleybr em 19/08/2010 - 10:57h
Amigos,
quando coloco 127.0.0.1 no squid e no sqstat, ele da erro de "connection refused"
E quando coloco o ip local mesmo no caso 192.168.0.30 ele da "connection timeout"
alguem poderia me ajudar????
[13] Comentário enviado por juninhomaumau em 23/09/2010 - 14:34h
Boa tarde amigos, oq que acontece é o seguinte: segui o tutorial ao pé da letra, muito bem detalhado e tal, porém qd vou acessar o servidor de uma maquina da rede tipo http://ipdoservidor/sqstat/sqstat.php ele abre no navegador como se seu fosse fazer download deste arquivo, perguntando se eu quero ABRIR OU SALVAR!! este arquivo sqstat.php!!
[14] Comentário enviado por hayttle em 29/10/2010 - 23:23h
Olá, muito bom o post, mas se eu tiver uma rede grande com mais de 100 máquinas em DHCP, vou ter que inserir todos os nomes das máquina e IPs no hosts.txt?
[15] Comentário enviado por pogo em 30/10/2010 - 09:51h
hayttle,
O ideal é que você utilize o Squid com autenticação para que assim os nomes de usuários apareçam na página, e não o endereço IP. Assim, não importa quantas máquinas ou usuários você tem nada rede: você não vai ter muito trabalho.
[19] Comentário enviado por stringuetta em 10/01/2014 - 17:40h
Para o problema acima é necessário somente configurar o apache para o php no meu caso foi so instalar o "php5 libapache2-mod-php5" porém aqui ele não esta separando por host ele traz somente os logs abaixo de um host 0.0.0.0