===== Softwares Necessários ===== Para o agente que irá acompanhar os logs dos servidores e trasmiti-los a um banco de dados, você deverá ter instalado: * libfile-tail-perl (File::Tail) * libparse-syslog-perl (Parse::Syslog) * libdbd-mysql-perl (DBD::mysql) * libdigest-crc32-perl (String::CRC32) aptitude install libfile-tail-perl libparse-syslog-perl libdbd-sqlite3-perl libdigest-crc-perl Para os scripts web você deve necessariamente ter: * [[pf-graph:chartdirector|ChartDirector]] * libgd-graph3d-perl ===== Criação de tabelas no Banco de Dados ===== Criar tabelas no SQL (testado no MySQL. Aguardo notícias sobre tentativas em outros bancos de dados). <code> CREATE DATABASE pf-graph; USE pf-graph; # remova o auto_increment para o sqlite CREATE TABLE maillog (id INTEGER PRIMARY KEY AUTO_INCREMENT, timestamp INTEGER, host TEXT, program TEXT, pid INTEGER, text TEXT); CREATE TABLE mailtraffic (timestamp INTEGER, sender VARCHAR(255), rcpts TEXT, bytes_rcvd INTEGER); CREATE TABLE blockedmail (timestamp INTEGER, clientdns VARCHAR(255), clientip VARCHAR(15), sender varchar(255), rcpts BLOB, helo VARCHAR(32), restriction_applied VARCHAR(32), detail VARCHAR(255), INDEX (sender)); </code> Inicie a tabela de maillog para cada host que recebe e-mail: <code> INSERT INTO maillog (host, text) VALUES("host1", "inicializando tabela"); INSERT INTO maillog (host, text) VALUES("host2", "inicializando tabela"); </code> Crie um usuário que tenha privilégios suficientes nestas tabelas, ou no banco. (Por fazer) ===== Configuração mod_perl ===== Sugiro fortemente utilizar o pf-graph com o mod_perl, do Apache. Minha configuração para o Apache2 é: <code> <VirtualHost xxx.xxx.xxx.xxx:80> ServerAdmin yves.junqueira@gmail.com ServerName blabla.blaabla.blabla DocumentRoot /var/www/ # indiferente para esta configuração ErrorLog /var/log/apache2/error-pfgraph.log Alias /pf-graph /var/www/pf-graph <Directory /var/www/pf-graph/bin> RedirectMatch ^/$ /index.pl SetHandler perl-script PerlResponseHandler ModPerl::Registry PerlOptions +ParseHeaders Options +ExecCGI </Directory> </VirtualHost> </code> Também é necessário ter as seguintes linhas em algum lugar da configuração do Apache: <code> PerlModule Apache2 </code> <code> LoadModule perl_module /usr/lib/apache2/modules/mod_perl.so PerlWarn On # apenas sugestão </code> No Ubuntu, pelo menos, basta apenas criar um link para os arquivos corretos em /etc/apache2/mods-enabled. Sugiro também proteger o acesso ao pf-graph com usuário e senha. Exemplo: <code> <Directory /var/www/pf-graph> Order Deny,Allow Deny from all AuthLDAPAuthoritative on AuthType Basic AuthName "PF-Graph - Acesso REstrito" AuthUserFile "/etc/apache2/pfgraph.users" require valid-user Allow from 127.0.0.1 10.22.12.22 Satisfy Any </Directory> </code> ===== Configuração ===== Copie o arquivo pfgraph.conf pra o diretório "/etc", e edite seu conteúdo apropriadamente, seguindo os exemplos. Recomendo fortemente que este arquivo tenha suas permissões alteradas: # chmod 660 /etc/pfgraph.conf ===== Tail-Mail ===== O programa responsável por coletar os logs é o tail-mail. Ele irá rodar nos servidores de e-mail, enviando os logs a um banco de dados remoto ou local. Você precisa primeiro ter uma cópia do pfgraph.conf no /etc desses servidores, e ter os softwares necessários instalados (veja acima). Copie o tail-mail para um diretório acessível, como "/usr/local/sbin". Depois, basta rodar o tail-mail. Ele irá para o background como daemon, gravando mensagens no syslog. Verifique se as tabelas estão sendo preenchidas, ou se houve algum falha na inicialização do tail-mail. ((Caso queira, você pode configurar o cron para verificar regularmente se o tail-mail está rodando. Para isso, crie um script batch "/usr/local/sbin/tm-check.sh" com o seguinte conteúdo: <code> #!/bin/bash pidof -x tail-mail > /dev/null 2>&1 || (echo "Iniciando tail-mail"; /usr/local/sbin/tail-mail > /dev/null 2>&1 &) </code> Depois, adicione a seguinte linha ao /etc/crontab: */1 * * * * root /usr/local/sbin/tm-check.sh)) ===== Notas finais ===== Entendo que este manual deve estar incompleto, incorreto ou incompreensível, mas espero que alguém consiga seguir esses passos e que todos comentem os problemas e sucessos na instalação. Em caso de dúvidas, deixe um comentário em meu [[http://www.cetico.org/blog|techlog]] que eu responderei quanto antes possível. - Yves Junqueira, Julho 2005 |
pf-graph >