Aprenda como instalar e configurar o Piwik no Linux, ferramenta open source que é uma alternativa ao Google Analytics, para gerar métricas de análise de sites.
Há vários documentos publicados na internet explicando o que é e para que serve o Piwik, irei complementar aqui somente a minha visão sobre isso, e obviamente, ensinar a instalar.
Apesar da grande maioria dos donos de sites não se preocuparem com isso, a grande diferença entre o Analytics e o Piwik é a de que fazendo a instalação do Piwik em um servidor próprio os dados estarão em um ambiente totalmente privado, além de permitir customizações e integrações com maior controle. Pode-se definir o Piwik como: Uma solução alternativa própria e de total controle sobre as estatísticas de sites.
Neste tutorial irei mostrar como fazer a instalação da ferramenta em um servidor VPS/dedicado Linux. O sistema base usado é o Debian 8 com NginX e ISPConfig. Clique neste link e aprenda a instalar.
* O servidor recomendado para esta instalação é o de U$ 10 dólares da Digital Ocean (1Gb RAM), ou maior.
A Acesse o menu “Sites” e clique em “Adicionar novo Site“. Deixe a maioria dos campos com o valor padrão, preencha somente o campo “Dominio” com o dominio sem http ou www, exemplo “stats.meudominio.com.br“. Obviamente você terá que usar um domínio válido.
Ainda na mesma tela, altere o campo “PHP” de Desativado para “PHP-FPM“. Em seguida clique no botão Salvar e aguarde um minuto para que a estrutura do site seja criada.
B Edite o site recém salvo e clique na aba “Opções”. No campo “php.ini personalizado” cole os parâmetros abaixo, note que o ISPConfig permite que sejam configuradas variáveis PHP e NginX personalizadas para cada site:
always_populate_raw_post_data=-1
Na mesma aba “Opções”, no campo “Diretivas do Nginx“, cole as regras abaixo. Isso permitirá que o Piwik trate os erros do site, caso contrário o NginX interceptará os erros:
log_not_found off; location @php { try_files $uri =404; include /etc/nginx/fastcgi_params; fastcgi_pass unix:/var/lib/php5-fpm/web1.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_intercept_errors off; }
* Note que destaquei em vermelho a instrução web1.sock. Você deverá substituir web1 pelo usuário Linux do site. Nesta mesma tela de Opções o Usuário Linux do site é exibido no terceiro campo.
** O ISPConfig já adiciona automaticamente a maioria das diretivas necessárias para os sites. Se quiser visualizar todo o arquivo vhost criado, acesse o diretório de sistema em /etc/nginx/sites-available.
C Adicione um usuário Linux SSH em jail para instalar o site e editar os arquivos.
No mesmo menu “Sites” acesse o submenu lateral “Usuários Shell“. Clique em “Adicionar Novo Usuário”. Selecione o site criado para o Piwik e digite um nome único para o usuário evitando nomes comuns ou já usados como “admin” ou outro usado anteriormente ou que seja de sistema. Um bom método para criar usuários não repetitivos é adicionar o prefixo “usrssh” seguido do site, por exemplo: usrsshpiwik. Digite ainda uma senha difícil e confirme ela. E por último, e isso é muito importante, selecione “Jailkit” no campo “Shell Enjaulado (chroot)”, isso fará com que, se houver invasão no site, o hacker fique enjaulado na pasta do site.
D Adicione o Banco de Dados que será usado pelo Piwik.
Acesse o submenu “Bancos de Dados/Usuários“. Clique no botão para adicionar um novo usuário de banco e preencha com um nome de usuário que ainda não foi usado e digite uma senha difícil para ele. Siga o exemplo acima e crie este usuário como usrdbpiwik.
Acesse o submenu “Bancos de Dados/Bancos de Dados“. Clique para adicionar um novo banco. No campo “Site” selecione o site do Piwik. Em “Nome do Banco de Dados” digite um nome sugestivo como por exemplo dbpiwik. No campo “Usuário do Banco de Dados” selecione o usuário DB recém criado. E no “Charset do Banco de Dados” selecione UTF-8.
* Note que fazendo isso o ISPConfig já criará todas as permissões corretas amarrando o usuário/banco/site.
A Agora precisamos baixar e instalar o Piwik. Faça login no console SSH com as credenciais do usuário em Jail do site que criamos acima. No console (modo linha de comando) digite os seguintes comandos:
> cd /web > rm index.html > wget --no-check-certificate https://builds.piwik.org/piwik.zip > unzip piwik.zip > mv piwik/* . > rm -fr piwik/ > rm piwik.zip > rm "How to install Piwik.html"
B Acesse a URL do site e prossiga com a instalação. “Bem vindo! Piwik é um analisador de tráfego open source que torna fácil obter informações sobre os seus visitantes. Este processo divide-se em 8 passos fáceis e demora por volta de 5 minutos“. Clique em SEGUINTE >>>
Na próxima tela será feita uma verificação da integridade dos arquivos. Pode ignorar o aviso da pasta “/error“, ela faz parte da estrutura do site no ISPConfig. SEGUINTE >>>
Na próxima digite as credenciais de banco de dados criadas acima, e no campo Adaptador selecione “PDO\MYSQL”. SEGUINTE >>>
Configuração do admin do painel Piwik. Preencha um nome, senha e email para o seu usuário admin do Piwik. SEGUINTE >>>
Configurar um Website. Adicione um site a ser monitorado, isso pode ser feito mais tarde mas se quiser já pode adicionar um site aqui. SEGUINTE >>>
Tag de monitorização JavaScript. Será mostrado o código JavaScript de acompanhamento que irá coletar os dados do site e enviar para o Piwik. Copie e cole o bloco de código no <header> do site, igual você costuma fazer com o Google Analytics. SEGUINTE >>>
Faça login no Piwik e configure/adicione sites ao seu gosto.
A Este módulo é necessário para que o Piwik exiba corretamente as localizações (País, Estado, Cidade) dos cliques rastreados. Faça login SSH no sistema com as credenciais do super-usuário root.
B Digite os seguinte comandos:
> nginx -V
* O comando acima irá exibir todos os módulos carregados no NginX. Se você seguiu nosso tutorial de instalação base do sistema com ISPConfig então o módulo GEOIP já estará instalado por padrão, o módulo é este:
"--with-http_geoip_module"
> mkdir -p /etc/nginx/geoip > cd /etc/nginx/geoip > wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz > wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz > gunzip GeoIP.dat.gz > gunzip GeoLiteCity.dat.gz
C Edite o arquivo /etc/nginx/nginx.conf e logo no inicio (mas dentro do bloco http) cole as linhas em vermelho abaixo:
http { ## # Basic Settings ## geoip_country /etc/nginx/geoip/GeoIP.dat; # country IP database geoip_city /etc/nginx/geoip/GeoLiteCity.dat; # city IP database
D Edite o arquivo /etc/nginx/fastcgi_params e adicione as linhas abaixo ao final do arquivo:
### SET GEOIP Variables ### fastcgi_param GEOIP_ADDR $remote_addr; fastcgi_param GEOIP_COUNTRY_CODE $geoip_country_code; fastcgi_param GEOIP_COUNTRY_CODE3 $geoip_country_code3; fastcgi_param GEOIP_COUNTRY_NAME $geoip_country_name; fastcgi_param GEOIP_CITY_COUNTRY_CODE $geoip_city_country_code; fastcgi_param GEOIP_CITY_COUNTRY_CODE3 $geoip_city_country_code3; fastcgi_param GEOIP_CITY_COUNTRY_NAME $geoip_city_country_name; fastcgi_param GEOIP_REGION $geoip_region; fastcgi_param GEOIP_REGION_NAME $geoip_region_name; fastcgi_param GEOIP_CITY $geoip_city; fastcgi_param GEOIP_AREA_CODE $geoip_area_code; fastcgi_param GEOIP_POSTAL_CODE $geoip_postal_code; fastcgi_param GEOIP_CITY_CONTINENT_CODE $geoip_city_continent_code; fastcgi_param GEOIP_LATITUDE $geoip_latitude; fastcgi_param GEOIP_LONGITUDE $geoip_longitude;
E Reinicie os serviços:
> /etc/init.d/php5-fpm restart > /etc/init.d/nginx restart