Instalação e Configuração do lightsquid no Debian Squeeze
E ai galera, aqui eu vou abordar a Instalação e configuração do lightsquid, um gerador de relatórios para o squid escrito em perl.
Prepare o seu sistema com o seguinte script http://wiki.douglasqsantos.com.br/doku.php/confinicialsqueeze_en para que não falte nenhum pacote ou configuração.
Podemos ver um demo do lightsquid em http://lightsquid.sourceforge.net/demo18/index.cgi?year=2009&month=08
Agora vamos fazer um update dos repositórios e um upgrade do sistema
aptitude update && aptitude dist-upgrade -y
Agora vamos instalar as dependências dele
aptitude install libgd-gd2-perl libbio-graphics-perl libapache2-mod-perl2
Agora vamos obter o lightsquid
cd /var/www/ wget -c http://wiki.douglasqsantos.com.br/Downloads/monitoring/lightsquid-1.8.tgz
Agora vamos desempacotar ele
tar -xzvf lightsquid-1.8.tgz
Agora vamos remover o tgz
rm -rf lightsquid-1.8.tgz
Agora vamos renomear o nosso diretório do lightsquid
mv lightsquid-1.8 lightsquid
Agora vamos acertar as permissões dos arquivos
cd lightsquid chmod +x *.cgi chmod +x *.pl
Agora vamos mudar o dono do diretório
chown -R www-data:www-data /var/www/lightsquid
Agora vamos ajustar o arquivo do virtualhost Default do apache
vim /etc/apache2/sites-available/default <VirtualHost *:80> [...] #Configuração do lightsquid <Directory "/var/www/lightsquid"> DirectoryIndex index.cgi Options +ExecCGI -Indexes -MultiViews +SymLinksIfOwnerMatch AddHandler cgi-script .cgi AllowOverride All </Directory> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> [...] </VirtualHost>
Agora vamos ajustar o idioma do lightsquid
vim /var/www/lightsquid/lightsquid.cfg [...] $lang ="pt_br";
Agora vamos ajustar o caminho das pastas do lightsquid
sed -i 's|/var/www/html/|/var/www/|g' /var/www/lightsquid/lightsquid.cfg sed -i 's|/var/log/squid|/var/log/squid3|g' /var/www/lightsquid/lightsquid.cfg
Agora vamos testar o lightsquid
perl /var/www/lightsquid/check-setup.pl LightSquid Config Checker, (c) 2005-9 Sergey Erokhin GNU GPL LogPath : /var/log/squid3 reportpath: /var/www/lightsquid/report Lang : /var/www/lightsquid/lang/pt_br Template : /var/www/lightsquid/tpl/base Ip2Name : /var/www/lightsquid/ip2name/ip2name.simple all check passed, now try access to cgi part in browser
Agora vamos reiniciar o apache
/etc/init.d/apache2 restart
Agora vamos gerar os nossos relatórios
/var/www/lightsquid/lightparser.pl
Agora já podemos acessar o nosso relatório em http://ip_servidor/lightsquid/
Umas das opções interessantes que eu acho desse cara é que podemos configurar grupos para os usuários, com isso podemos mandar consultar quais grupos acessaram o que e quais usuários pertences a eles.
Vamos acessar o diretório do lightsquid
cd /var/www/lightsquid
Agora vamos fazer uma copia do group.cfg
cp group.cfg.src group.cfg
Agora vamos editar o nosso arquivo
vim group.cfg douglas.santos 01 ti-admin anderson.angelote 01 ti-admin hillary 02 matriz-logistica nerso 02 matriz-logistica
Aqui temos na primeira coluna o nome do usuário poderia ser o endereço ip do cliente, na segunda coluna o número do grupo e a terceira coluna é o nome do grupo
Agora para que apareça a identificação dos grupos precisamos gerar novamente o nosso relatório.
/var/www/lightsquid/lightparser.pl
Outra opção bacana que temos é fazer o mapeamento para nomes completos por exemplo o nome douglas.santos vamos mapear para Douglas Quintiliano dos Santos, o arquivo que precisamos editar é o seguinte
vim /var/www/lightsquid/realname.cfg douglas.santos Douglas Quintiliano dos Santos 192.168.1.3 Nerso da Silva
Aqui podemos mapear tanto nomes de usuários como endereço ip com isso no relatório podemos não lembrar na hora quem utilizar o ip 192.168.1.3 mais pelo nome é bem mais fácil de cobrar um determinado usuário, após efetuar a modificação precisamos gerar o relatório novamente
/var/www/lightsquid/lightparser.pl
Agora vamos criar um agendamento no cron para gerar automaticamente o nosso relatório:
crontab -e [...] */20 * * * * /var/www/lightsquid/lightparser.pl today
Agora vamos criar um virtualhost para o lightsquid
vim /etc/apache2/sites-available/lightsquid <VirtualHost *:80> ServerName lightsquid.douglasqsantos.com.br ServerAlias lightsquid.douglasqsantos.com.br DocumentRoot "/var/www/lightsquid" #Controle de acesso ao lightsquid <Directory "/var/www/lightsquid"> DirectoryIndex index.cgi Options +ExecCGI -Indexes -MultiViews +SymLinksIfOwnerMatch AddHandler cgi-script .cgi AllowOverride All #Autenticação do lightsquid AuthUserFile /etc/apache2/access/lightsquid-htpasswd AuthName "LightSquid" AuthType Basic require valid-user </Directory> #Configuração dos logs do apache ErrorLog /var/log/apache2/lightsquid.douglasqsantos.com.br-error.log CustomLog /var/log/apache2/lightsquid.douglasqsantos.com.br-access.log common #Retirando a assinatura do Apache ServerSignature Off IndexIgnore .??* *~ *# README RCS CVS *,v *,t * # Possible values include: debug, info, notice, info, error, crit, # alert, emerg. LogLevel info </VirtualHost>
Agora vamos criar o diretório que vai conter o arquivo de controle dos usuários que podem acessar o lightsquid
mkdir /etc/apache2/access/
Agora vamos gerar o usuário e a senha, aqui eu vou cadastrar o usuário lightsquid
htpasswd -s -c /etc/apache2/access/lightsquid-htpasswd lightsquid New password: Re-type new password: Adding password for user lightsquid
Agora vamos desativar os virtuais hosts default do apache
a2dissite default a2dissite default-ssl
Agora vamos ativar o lightsquid
a2ensite lightsquid
Agora vamos reiniciar o apache
/etc/init.d/apache2 restart
Agora já podemos acessar http://lightsquid.douglasqsantos.com.br ou http://ip_servidor precisamos informar o usuário lightsquid e a senha que foi definida para ele com o comando htpasswd