Tutorial AwStats Indice Introdução...2 Funcionamento:...3 Pré-Requisitos:...3 Instalação:...4 Configurações:...7 Utilização:...11 Sobre o Autor:...11
Introdução AwStats Como saber se seu site é um sucesso ou um total fracasso? Sabendo estatísticas sobre os acessos. Acessar os logs do seu servidor web a analisa los parece algo muito pouco pratico. Nessa hora que entra o AwStats, ele analisa o log do seu servidor web e também cria as estatísticas, como por exemplo a hora que houveram mais acessos, dia, numero de acessos, tudo com gráficos bem legais. O gráfico acima é só um exemplo, existem outros muito interessantes. É possivel ver um demo em: http://www.nltechno.com/awstats/awstats.pl?config=destailleur.fr. Existem soluções mais completas como o google analytics ou o yahoo analytics, porém elas tem uma desvantagem, no acesso da pagina que esta dentro das estatísticas ele entra em contato com o servidor do google, oque deixa o seu site mais lento. Se você precisa de velocidade no site e não precisa ter o sistemas de estatísticas mais completo do mercado, mas ter um sistema leve e funcional, o AwStats é feito para você! Já existem outros tutoriais na internet sobre o AwStats, mas como a maioria esta desatualizada,e não se assemelha a documentação oficial em inglês, resolvi fazer esse tutorial, inclusive com algumas instruções de como configurar o apache.
Esse tutorial é para quem quer instalar o AwStats no Centos 5.x com apache, mas tenho certeza que vai ser util para mais distribuições. Awstats também funciona no Windows com IIS, mas não sera abordado esse assunto neste tutorial. Funcionamento: AwStats funciona da seguinte forma. O seu servidor Web gera log de acesso que escreve em um arquivo. O AwStats de forma pre agendada no sistema operacional executa uma rotina que analisa esse arquivo de log e gera em um arquivo de texto, que funciona como sua base de dados. Você acessa uma pagina dinâmica que acessa esse arquivo de dados e gera os gráficos e estatísticas. Então o tempo em que haverá alteração nessa pagina vai depender do agendamento que você fizer na rotina de geração da base de dados. Um servidor Web costuma ter um arquivo de log de acesso para todos os sites, então se você quer acessar a estatísticas de um virtualhost em separado tem que configurar um arquivo de log de acesso separado para ele. Pré Requisitos: É necessário para instalar o AwStats seguindo esse tutorial o Linux Centos 5.x, que segue bastante a Linux Standard Base, e é compatível com RedHat. O Download esta disponível em: http://www.centos.org/ O servidor Web Apache e o interpretador de perl também são necessários. Eles podem ser instalador via yum, que é o instalador de pacotes do Centos. Os pacotes necessários são: httpd.i386 perl.i386
Instalação: Vamos ao que interessa, vamos começar a instalar. Primeiro faça o download dele no site do projeto: http://awstats.sourceforge.net/. Baixe a versão compactada : http://prdownloads.sourceforge.net/awstats/awstats 6.9.tar.gz. A partir deste momento você deve executar todos os comandos como usuário root. Agora descompacte o arquivo: tar xzvf awstats 6.9.tar.gz Agora vamos mover o diretório descompactado para o seu local definitivo: mv awstats 6.9 /usr/local/awstats O usuário apache precisa ter acesso a esse diretório, então podemos torna lo dono dele: chown Rf apache.apache /usr/local/awstats Precisamos criar o diretório aonde o AwStats vai gravar seus dados: mkdir p /var/lib/awstats O proximo passo é usar o script de configuração do AwStats, entre no diretório aonde se encontram os scripts : cd /usr/local/awstats/tools/ Execute o script:./awstats_configure.pl Ele vai fazer uma série de perguntas.
Neste ponto a tela o script pede que coloque a localização do arquivo de configuração do apache. No Centos ele fica no caminho em negrito abaixo Read the AWStats documentation (docs/index.html). > Running OS detected: Linux, BSD or Unix > Check for web server install Enter full config file path of your Web server. Example: /etc/httpd/httpd.conf Example: /usr/local/apache2/conf/httpd.conf Example: c:\program files\apache group\apache\conf\httpd.conf Config file path ('none' to skip web server setup): > /etc/httpd/conf/httpd.conf A proxima pergunta é se você quer criar um novo arquivo de configuração para o AwStats, digite y e depois ENTER. > Update model config file '/usr/local/awstats/wwwroot/cgi bin/awstats.model.conf' File awstats.model.conf updated. > Need to create a new config file? Do you want me to build a new AWStats config/profile file (required if first install) [y/n]? y Na próxima pergunta você deve colocar o nome do site que você quer as estatísticas. > Define config file name to create What is the name of your web site or profile analysis? Example: www.mysite.com Example: demo Your web site, virtual server or profile name: > www.seusite.com.br
A próxima pergunta é aonde ele vai gravar os arquivos de configuração do Awstats. Apenas pressione ENTER. > Define config file path In which directory do you plan to store your config file(s)? Default: /etc/awstats Directory path to store config file(s) (Enter for default): Na ultima mensagem pressione ENTER > Add update process inside a scheduler Sorry, configure.pl does not support automatic add to cron yet. You can do it manually by adding the following command to your cron: /usr/local/awstats/wwwroot/cgi bin/awstats.pl update config=www.muchtour.com.br Or if you have several config files and prefer having only one command: /usr/local/awstats/tools/awstats_updateall.pl now Press ENTER to continue... Essa mensagem informa que ele não pode alterar sozinho o agendador de tarefas do Linux. E informa o comando que você deve colocar no agendador de tarefas para ele gerar as estatísticas do site. O texto explica que o primeiro comando atualiza apenas o site que foi configurado, o segundo comando atualiza todos. Vamos colocar o segundo comando agendado no Linux. Para agendar algo no Linux você deve alterar o arquivo /etc/crontab. Coloque uma linha como a abaixo no final do arquivo : */30 * * * * root /usr/local/awstats/tools/awstats_updateall.pl now Essa linha diz para executar o script awstats_updateall.pl de 30 em 30 minutos, se quiser mudar para de uma em uma hora: * */1 * * * root /usr/local/awstats/tools/awstats_updateall.pl now Mais informações sobre como configurar o Cron, você pode encontrar no guia foca linux: http://focalinux.cipsga.org.br/gol.html É possível mudar o valor de acordo com seus critérios. Mas não coloque intervalos muito pequenos, para não pesar o servidor. Apesar de ser um script leve, não precisamos de uso desnecessário de processamento. Se você precisar de olhar algo com urgência pode rodar o comando manualmente pelo console: /usr/local/awstats/tools/awstats_updateall.pl now
Configurações: Agora que o AwStats esta instalado, precisamos configurar ele e o ambiente do apache para que funcione adequadamente. Como ele analisa o log de acesos do apache, temos um pequeno problema. Esse arquivo de log é geral para todos os sites que estiverem no apache. Como o AwStats não sabe separar sozinho oque é log de um site ou de outro, vamos ter que alterar o apache de forma que ele crie um arquivo de log de acessos para cada site. Pode se fazer isso como no exemplo de virtualhost abaixo: <VirtualHost *:80> ServerName www.meusite.com.br ServerAdmin suporte@2xt.com.br DocumentRoot /var/www/html/meusite CustomLog /var/log/httpd/meusite access.log combined </VirtualHost> Preste atenção na linha em negrito, é aonde você vai ter que alterar no seu virtualhost. Meusite access.log é o nome do arquivo que vai ser criado em /var/log/httpd que é o lugar padrão dos arquivos de log do apache. Tente colocar o nome do arquivo parecido com o nome do site para facilitar lembrar qual arquivo é de qual site. Repita o processo em todos os sites que você quer que o Awstats analise. Por padrão o awstats vai ser configurado para funcionar diretamente no site principal do apache. Eu prefiro criar um virtualhost para ele, com um nome intuitivo e adicionar uma senha por segurança. Primeiramente vamos criar arquivo para guardar senhas, com os aplicativos providos pelo propio apache. htpasswd c /etc/httpd/conf/access nomedousuario Esse comando vai criar um arquivo access com um usuario nomedousuario com a senha criptografada, de forma que mesmo de posse do arquivo não se pode ler a senha. Vai ser solicitado a senha após o ENTER. Para adicionar mais usuários basta fazer o mesmo comando sem a opção c: htpasswd c /etc/httpd/conf/access nomedosegundousuario
Agora que temos aonde colocar as nossas senhas podemos criar o virtualhost para acessar o nosso sistema de estatísticas: <VirtualHost *:80 > ServerName awstats.meudominio.com.br DirectoryIndex index.php index.html index.cgi index.pl index.xhtml Directives to allow use of AWStats as a CGI Alias /awstatsclasses "/usr/local/awstats/wwwroot/classes/" Alias /awstatscss "/usr/local/awstats/wwwroot/css/" Alias /awstatsicons "/usr/local/awstats/wwwroot/icon/" ScriptAlias /awstats/ "/usr/local/awstats/wwwroot/cgi bin/" This is to permit URL access to scripts/files in AWStats directory. <Directory "/usr/local/awstats/wwwroot"> Options None AllowOverride None Order allow,deny Allow from all AuthType Basic AuthName "AwStats sistema de estatisticas " AuthUserFile /etc/httpd/conf/access Require valid user </Directory> </VirtualHost> O exemplo de virtualhost acima vai ser acessado pelo seu navegador na url awstats.meudominio.com.br. O AuthUserFile indica qual arquivo tem as senhas para autenticação. As linhas acima devem ser escritas dentro de um arquivo com um nome qualquer mas com a estenção.conf no diretorio /etc/httpd/conf.d, como por exemplo: /etc/httpd/conf.d/awstats.conf
Mas não acesse o site ainda. Nos ainda temos trabalho. Você precisa acessar o arquivo de configuração principal do apache e remover uma configuração que o AwStats deixou por lá, no final do arquivo remova as seguintes linhas: Directives to allow use of AWStats as a CGI Alias /awstatsclasses "/usr/local/awstats/wwwroot/classes/" Alias /awstatscss "/usr/local/awstats/wwwroot/css/" Alias /awstatsicons "/usr/local/awstats/wwwroot/icon/" ScriptAlias /awstats/ "/usr/local/awstats/wwwroot/cgi bin/" This is to permit URL access to scripts/files in AWStats directory. <Directory "/usr/local/awstats/wwwroot"> Options None AllowOverride None Order allow,deny Allow from all </Directory> Se você deixar essas linhas sem apagar vai ter ainda uma forma de acessar sem senha as estatísticas do seu site. Precisamos agora mostrar para o awstats qual arquivo certo de log ele deve olhar. No diretorio /etc/awstats/ foi criado um arquivo awstats.www.meusite.com.br.conf. Sera criado um para cada site. É preciso alterar apenas uma linha nesse arquivo: LogFile="/var/log/httpd/my.log" para LogFile="/var/log/httpd/meusite access.log" Aponte para o arquivo que criamos no nosso virtualhost para gravar o log.
Se você só precisava para um site, as configurações estão prontas, basta reiniciar o apache: service httpd restart Caso você tenha mais sites que você quer que sejam analisados, você vai precisar executar novamente o script de configuração do AwStats, lembre se de configurar também o virtualhost do novo site com um arquivo de log separado. cd /usr/local/awstats/tools/ Execute o script:./awstats_configure.pl > Running OS detected: Linux, BSD or Unix > Check for web server install Enter full config file path of your Web server. Example: /etc/httpd/httpd.conf Example: /usr/local/apache2/conf/httpd.conf Example: c:\program files\apache group\apache\conf\httpd.conf Config file path ('none' to skip web server setup): > /etc/httpd/conf.d/awstats.conf Agora mude o arquivo de configuração do apache e aponte para o arquivo do virtualhost que nos criamos para acessar o awstats. > Need to create a new config file? Do you want me to build a new AWStats config/profile file (required if first install) [y/n]? y > Define config file name to create What is the name of your web site or profile analysis? Example: www.mysite.com Example: demo Your web site, virtual server or profile name: > novosite.meudominio.com.br Ele vai perguntar se você quer criar um novo arquivo, depois vai perguntar o nome do novo site.
> Define config file path In which directory do you plan to store your config file(s)? Default: /etc/awstats Directory path to store config file(s) (Enter for default): > Agora ele pergunta aonde salvar o arquivo, apenas aperte ENTER para ele salvar no local padrão. Mais dois ENTER's para terminar o processo. Em /etc/awstats foi criado um novo arquivo de configuração, altere nele também o parâmetro LogFile para que ele também acesse o arquivo de log deste novo site. Para termos algo para analisar vamos atualizar manualmente os dados do AwStats: /usr/local/awstats/tools/awstats_updateall.pl now Utilização: Agora podemos acessar site para analisar os dados. Para isso digite no seu navegador a seguinte url: htt://awstats.meudominio.com.br/awstats/awstats.pl?config=www.meusite.com.br Após digitar o usuario e senha você vai pode acessar as estatísticas do site. Como é uma pagina dinâmica, basta trocar aonde esta www.meusite.com.br pelo outro site que você configurou para fazer as estatísticas para acessar o outro site, de forma que você pode acessar todos os sites que você configurou. Espero que tenham gostado do tutorial. Criticas e sugestões podem ser enviadas para: anakin@2xt.com.br. Sobre o Autor: Alexandre da Silva Costa, formado em Gestão de Software Livre pela UNI BH, Técnico em eletrônica pela EE. Professor Fontes. Certificado LPI 1. Administrador de Redes na 2XT, empresa especializada em soluções WEB ( www.2xt.com.br).