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.