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.
Continuar lendo...
Como base para este artigo, foi utilizado CentOS 5.4, MySQL 5.0.77 previamente instalados e configurados. Também foi necessário o repositório RPMForge configurado para baixar o pacote previamente compilado.
Com os prérequisitos instalados e configurados, o procedimento de instalação é bem simples. Para instalar o pacote, utilize o seguinte comando:
yum install mod_log_sqlApós alguns instantes o pacote será instalado.
Agora vamos a parte mais bacana: a configuração.
Há 3 maneiras como este módulo trabalha:
- O administrador cria as tabelas e configura quais hosts virtuais serão logados.
- O módulo cria as tabelas e o administrador configura quais hosts virtuais serão logados.
- O módulo cria as tableas e loga todos os hosts.
No diretório /etc/httpd/conf.d você irá encontrar o arquivo mod_log_sql.conf criado pelo pacote. Edite-o com seu editor de textos preferido e descomente as seguintes linhas:
LoadModule log_sql_module modules/mod_log_sql.soMais abaixo você verá as linhas:
LoadModule log_sql_mysql_module modules/mod_log_sql_mysql.so
[IfModule mod_ssl.c]
LoadModule log_sql_ssl_module modules/mod_log_sql_ssl.so
[/IfModule]
#LogSQLLoginInfo mysql://loguser:l0gg3r@dbmachine.foo.com/apachelogsRemova os comentários e substitua loguser pelo usuário a ser utilizado, l0gg3r pela senha de acesso deste usuário ao MySQL. dbmachine.foo.com corresponde ao nome da máquina ou IP onde o MySQL está sendo executado e apachelogs é o nome do banco que receberá os logs.
#LogSQLDBParam port 3306
Ainda neste mesmo arquivo, acrescente as duas linhas abaixo:
LogSQLCreateTables onAgora salve o arquivo e saia do seu editor.
LogSQLMassVirtualHosting on
Crie o usuário (loguser) mencionado acima com os comandos:
# mysql -pAgora basta apenas reiniciar o serviço do Apache.
mysql> GRANT INSERT,CREATE ON apachelogs.* TO 'loguser'@'dbmachine.foo.com' IDENTIFIED BY 'l0gg3r'.
mysql> flush privileges;
mysql> quit;
# service httpd restartCaso tudo tenha funcionado, acesse uma página hospedada em seu servidor. Através do prompt de comando, digite o comando:
#mysqlshow -p apachelogsVocê deverá ver pelo menos uma tabela criada pelo módulo logando o acesso.
Caso você deseje utilizar as configurações específicas para cada host virtual, a documentação está presente no diretório /var/share/doc/mod_log_sql-1.100.
Não deixe de ver as considerações sobre performance relacionadas a este assunto neste link.
Fica aí a dica.
Nenhum comentário:
Postar um comentário