Relatório de visita ao seu website com awstats

Awstats é uma ferramenta excelente para contabilizar acessos a sites Web que rodem sobre o Apache. Esta é uma ferramenta cheia de recursos que certamente vai agradar aos chefes mais exigentes por números. Neste texto não vou me aprofundar em detalhes sofisticados, mas apenas mostrar a sua instalação e a configuração básica que atende para a maioria das necessidades de estatísticas.

A instalação

O primeiro passo é a instalação, mas como usuário de sistemas Debian-like sinto decepcionar mas este passo se resumirá a uma simplória linha do aptitude ou apt-get.

aptitude install awstats

Lembrando que esta linha de comandos deve ser executada com privilégios administrativos (usuário root), portanto vocÊ deve considerar o uso do “sudo”, ou “su” para executar este comando.

Exibindo os gráficos corretamente

Acrescentar estas linhas dentro da seção “VirtualHost” no arquivo /etc/apache2/default para que os ícones sejam exibidos corretamente nas páginas de relatório.

    Alias /awstats-icon/ /usr/share/awstats/icon/
    <Directory "/usr/share/awstats/icon">
        Options -FollowSymLinks
        AllowOverride None
    </Directory>

Feito isso salve o arquivo e recarregue as configurações do Apache, ou do contrário a sua página será exibida em os gráficos.

service apache2 reload

Lembrando que o comando acima deve ser executado como root (novamente, use os comandos sudo ou su, para obter este priviégio).

Permitindo a leitura dos logs pelo Apache

Por padrão os logs do Apache pertencem ao usuário root e ao grupo adm, entretanto o awstats é executado pelo usuário www-data o que, devido as permissões dos arquivos (640) acabará impedindo a leitura dos arquivos e consequentemente os relatórios não serão gerados.

Há inúmeras maneiras de se resolver isso, uma delas é mudar as permissões dos arquivos para 644, permitindo que outros usuários também possam ler o arquivo. Os comandos abaixo (que devem ser executados como root) resolvem [parcialmente] esta questão:

chmod 755 /var/log/apache2
chmod 664 /var/log/apache2/*

Observe que eu disse “resolvem parcialmente”! Isso porque todos os dias os arquivos são rotacionados, ou seja, os arquivos antigos são renomeados e outro arquivo vazio é criado. É aqui que aparece o restante do problema. O novo arquivo será criado com as permissões padrões que impedirão a leitura do arquivo outra vez.

Para forçar os novos arquivos a serem criados com as permissões já sugeridas você deve altera-las na configuração do logrotate. De forma simplificada execute a linhas de comandos a seguir (novamente com privilégios administrativos):

TMPFILE=`tempfile`
sed 's/create 640 root adm/create 664 root adm/' /etc/logrotate.d/apache2  >${TMPFILE}
cat ${TMPFILE} >/etc/logrotate.d/apache2

Feito isso o awstats (que roda como usuário www-data) poderá ler os arquivos de log e gerar os relatórios e estatísticas de acesso. Caso isso não seja feito você verá mensagens como esta no log do sistema (ou e-mail administrativo):

Create/Update database for config "/etc/awstats/awstats.seudominio.conf" by AWStats version 6.95 (build 1.943)
From data in log file "/var/log/apache2/seudominio-access.log"...
Error: Couldn't open server log file "/var/log/apache2/seudominio-access.log" : Permission denied
Setup ('/etc/awstats/awstats.seudominio.conf' file, web server or permissions) may be wrong.
Check config file, permissions and AWStats documentation (in 'docs' directory).

Configurando o Awstats para gerar estatísticas do seu domínio

Com estas configurações básicas feitas, nós agora podemos preparar as configurações para gerar estatísticas de acesso.

O arquivo padrão é o /etc/awstats/awstats.conf e as principais diretivas a serem alteradas são:

  • Sitedomain – Deve conter o seu domínio sem o www. (ex. Sitedomain=minhaempresa.com.br)
  • HostAliases – outros nomes como este domínio poderá ser identificado nos logs. (ex. HostAliases=”www.minhaempresa.com.br www34.minhaempresa.com.br www www34″)
  • LogFile – Aponta para o arquivo de log a ser lido (ex. LogFile=”/var/log/apache2/access.log”)
  • Logformat -Define o formato do arquivo de log do apache. (ex. Logformat=1)
  • DefaultFile – Define o arquivo inicial do site. Para não ter problemas com variações você pode definir como DefaultFile=”index.htm index.html index.php”
  • FirstDayOfWeek – Define qual será o primeiro dia da semana no relatório. No Brasil é comum usarmos o domingo então configure como FirstDayOfWeek=0

Há muitas outras opções mas relacionar todas elas aqui é retrabalho. Quem estiver interessado em conhece-las recomendo a leitura no site oficial do AwStats[1].

Configurando o Awstats em servidores com subdomínios virtuais no Apache

O Apache2 vem estruturado para usar subdomínios virtuais (ou virtualhost), assim, até mesmo o domínio principal (comumente hospedado em /var/www) é um domínio virtual também conhecido como subdomínio default, cujas estatísticas são configuradas no /etc/awstats/awstats.conf, conforme mostrado acima.

Caso você tenha outros domínios virtuais no seu apache basta copiar aquele arquivo do domínio principal para algo como awstats.subdominio.dominio.com.br.conf e alterar as diretivas “SiteDomain” e “HostAliases” para refletirem os nomes deste novo domínio.

Acessando os relatórios pelo navegador web

Com tudo configurado, basta cruzar os braços e esperar. A cada 10 minutos o awstats é invocado via cron (/etc/cron.d/awstats) e então atualiza os dados que poderão ser acessados a partir do endereço web:

http://seuservidor.com.br/cgi-bin/awstats?config=awstats

Caso queira as estatísticas do seu subdomínio basta informar o nome do arquivo de configuração do subdomínio, sem o “awstats” inicial e sem o “.conf”.

http://seuservidor.com.br/cgi-bin/awstats?config=subdominio.dominio.com.br

Referências

AwStats. http://awstats.sourceforge.net/. 2012.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *