Visite também: Currículo ·  Efetividade BR-Mac

O que é LinuxDownload LinuxApostila LinuxEnviar notícia


Fazendo o Apache gravar os logs no MySQL.

Enviado por Luis Fernando Kieça (luis_fkΘyahoo·com):

“Publiquei em meu blog pessoal como fazer o Apache logar as páginas no MySQL. “Uma coisa bem bacana de se fazer, é colocar os logs do Apache em um banco de dados, principalmente se você quiser montar uma ferramenta para análise da maneira que precisa. Não é complicado de ser feito, como veremos no decorrer deste artigo.”” [referência: luisfk.blogspot.com]

• Publicado por Augusto Campos em 2010-02-17

Comentários dos leitores

Os comentários são responsabilidade de seus autores, e não são analisados ou aprovados pelo BR-Linux. Leia os Termos de uso do BR-Linux.

    zer0c00l (usuário não registrado) em 17/02/2010 às 3:59 pm

    Ai o cara quer matar o desempenho do Apache…

    É, acho que se eu quisesse analisar os dados de acesso do Apache e precisasse que eles estivessem em um banco de dados pra isso, eu faria a transferência em batch, via um script externo associado ao logrotate, rodando em horário de baixa demanda (caso esse luxo seja possível – para mim é).

    Pra gravar o log diretamente no servidor de banco de dados, creio que é necessário ter muito recurso sobrando, ou uma infra-estrutura especialmente favorável.

    Cardoso (usuário não registrado) em 17/02/2010 às 11:49 pm

    E inventou-se o auto-DOS. Sério, isso é mais eficiente que instalar o Windows ME, para matar seu servidor.

    Paulo (usuário não registrado) em 18/02/2010 às 12:26 am

    Achei a idéia interessante, só que eu faria assim, exportaria o log para um banco de dados com um agendamento em horário de menor tráfego, e “zeraria” o log original após um backup. Acho que num server com muitas requisições o modelo proposto comprometeria o desempenho do server severamente

    Luis Fernando Kieça (usuário não registrado) em 18/02/2010 às 8:33 am

    Pessoal,

    Eu sei que vocês podem achar que a idéia de logar os acessos num banco de dados irá matar a performance do Apache. Concordo em gênero, número e grau.

    Mas uma das possibilidades com este recurso sendo logado diretamente no banco de dados, é a administração dos logs facilitada, principalmente para quem trabalha com clusters de servidores e/ou banco de dados (geralmente ISP’s).

    Digo administração facilitada, pelo fato de você não precisar concatenar todos os logs de todos os seus N servidores web para somente depois poder processar o arquivo. Neste caso, o ganho de tempo processando logs pode cair considerávelmente.

    Já no que diz respeito à performance, a própria documentanção efetuou testes utilizando uma ferramenta do Apache (Apache Bench – http://httpd.apache.org/docs/2.0/programs/ab.html) para reportar os tempos, conforme vemos neste endereço da documentação: http://www.outoforder.cc/projects/apache/mod_log_sql/docs/node5.html#SECTION00053100000000000000

    Conforme podemos ver no link acima, 139 hits por segundo equivalem a mais de 12 milhões de hits por dia para a máquina utilizada nos testes. Acredito que seja um número bem expressivo.

    MarcoLinux1998 (usuário não registrado) em 18/02/2010 às 5:05 pm

    Aqui no servico usamos o syslogd, um servidor de log pra quem nao sabe.
    Logamos varias “coisas” nele (cluster tomcat, webSphere,log4j, script bash ).
    Depois filtramos com grep por data/ip/palavra-chave.
    Tem funcionado bem, de uso mais generico,mais facil de usar que DB , imho.

    Ex:
    cat /var/log/local0 /var/log/local0.1 | grep “erro”

    Espero que ajude.
    Marcolinux

Este post é antigo (2010-02-17) e foi arquivado. O envio de novos comentários a este post já expirou.