Instalando MYSAR

linux

Sobre o MySAR

Procurando opções de analisadores de logs para o squid, acabei me deparando com o MySAR.
MYSAR é um excelente analisador de logs do squid.
Traduzindo: Uma ótima ferramenta para monitorar os acessos à internet da empresa.

Simples e eficiente, tem como um de seus pontos fortes em relação ao SARG, o ótimo desempenho, porque gera os logs em tempo real. O MySAR trabalha com MySQL e conta com um script pronto que importa as informações do access.log, e é executado com a frequência em que se é pré-definido no agendador de tarefas.

Considerações importantes

Primeiro é importante lembrar, que sempre é bom fazer um backup da estrutura atual antes de alguma implementação.

Segundo que eu fiz esta instalação em um sistema Debian Etch, então aqui pode não conter instruções compatíveis com outras plataformas.

Terceiro, este artigo contém exemplos que eu implantei e funcionaram perfeitamente. Durante a instalação, tive alguns problemas, que talvez você também tenha. Por isso já registrei como contornei os problemas. Mas não me comprometo solucionar problemas que as pessoas possam a ter seguindo este tutorial.

O meu único objetivo é contribuir com a minha limitada experiência.

Pré-requisitos:

MySQL 4.1 ou superior

PHP4 ou superior

PHP-MYSQL

mysqlclient

Apache

Procedimentos pré-instalação:

1 – Faça o download no site oficial, para a pasta /usr/local.

http://giannis.stoilis.gr/software/mysar/

2- Entre no diretório para o qual você copiou o download:

cd /usr/local

3- Descompacte o pacote com o comando:

tar zxvf nomedopacote.tar.gz

4- Vamos então configurar o apache para usar o MySAR:

Em seu http.conf a (localização depende da sua instalação), insira estas linhas:

Alias /mysar /usr/local/mysar/www

<Directory “/usr/local/mysar/www”>
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>

5 – Reinicie o Apache

No meu caso: /etc/init.d/apache2 restart

6 – Agora você deve alterar o dono do diretório mysar, para o usuário do apache:

chown -R usuariodoapache /usr/local/mysar

7- Após a mudança, basta acessar a pagina inicial do Mysar, abrindo no navegador:

http://IPdoServidor/mysar

8- Na tela que abrir clique em “Click here to continue”.

9- Nesta tela escolha “New install”

10 – Nesta tela preencha conforme sugerido na figura, inserindo a senha de administrador do MySQL Server.
mysar1

E clique em enviar dados.

Possíveis erros:

a) Erro de permissão.

Solução:

Neste caso é porque a senha de root do MySQL porvavelmente esta errada, entre com a senha certa.E se eu esqueci minha senha?
Calma, neste caso visite o meu artigo Como recuperar a senha de root do MySQL Server no Linux.

b) Não consegue criar a base:
Creating database…Failed…
You have an error in your SQL syntax near ‘; ‘ at line 6

Solução:

Neste caso você deve criar o arquivo config.ini dentro da pasta /usr/local/mysar/etc,e clicar depois em “Click here to try again”.

11 – Na tela que abrir clique em “Click here to continue”.

12 – Irá aparecer esta tela:

msar
Antes de clicar em “Start using mysar!”, digite o comando:
rm -rf /usr/local/mysar/www/install

13 – Agora clique em “Start using mysar!”.

Pronto o MySAR já está instalado!

Terminando os ajustes:

Na primeira página MySAR há um link “Administration”, entre nele, irá aparecer a tela abaixo:

mysar2

1 – Configure o caminho do seu access.log ,no meu caso encontra-se em /var/log/squid/access.log e depois clique em “Change Value”.

2 – Agora vamos importar o access.log com os comandos:

#cd /usr/local/mysar/bin/

#./mysar-importer.php

Possíveis erros:

a) bash: ./mysar-importer.php: /usr/bin/php: bad interpreter: Arquivo ou diret�rio n�o encontrado

Solução:

Pode não estar instalado o cliente MySQL. Instale com o comando:

apt-get install php4-cli

b)PHP Fatal error: Call to undefined function mysql_connect() in /usr/local/mysar/inc/common.inc.php on line 47

Solução:

Descomente a linha
# extension=mysql.so
do arquivo
/etc/php4/cli/php.ini

c) Exceeded run time

Solução:

Isto ocorre quando o access.log está muito grande, por causa de uma variável dentro de mysar-importer.php chamada maxRunTime. Altere para um valor mais alto. O valor padrão é 55.

Automatizando as tarefas:

1- Vamos criar os arquivos para receber os logs das tarefas:

/var/log/mysar/mysar-importer.log

/var/log/mysar/mysar-resolver.log

/var/log/mysar/mysar-maintenance.log

2- Agora vamos configurar o cron (Agendador de tarefas do linux), para automatizar as tarefas do MySAR, adicionando em /etc/crontab as seguintes linhas:

*/30 * * * * root /usr/local/mysar/bin/mysar-importer.php > /var/log/mysar/mysar-importer.log 2>&1

*/30 * * * * root /usr/local/mysar/bin/mysar-resolver.php > /var/log/mysar/mysar-resolver.log 2>&1

0 1 * * * root /usr/local/mysar/bin/mysar-maintenance.php /var/log/mysar/mysar-maintenance.log 2>&1

OBS.: Com estas configurações, as tarefas ocorrem com a seguinte frequência:

Importação: À cada 30 minutos
Resolução de nomes: À cada 30 minutos
Manutenção dos logs: À 1 hora.

Mas isto você pode personalizar mudando as linhas acima.

Se tudo deu certo, seu MySAR já está em funcionamento.

Se você quizer traduzir o seu MYSAR para português, visite meu artigo:
Como traduzir o MYSAR para português!

Espero ter contribuído.

Fontes: MYSAR official website e Viva ao Linux

3 comentários em “Instalando MYSAR

Adicione o seu

  1. Olá.
    Parabéns pelo artigo.

    Estou querendo migrar o SARG para o MySAR (principalmente, porque o SARG tem um sério problema em classificar por hora de acesso, e já usei o MySAR, e ele resolve isso facilmente).

    Antes de instalar na Empresa, vou testar em casa.
    A princípio, parei no momento:

    chown -R usuariodoapache /usr/local/mysar

    Talvez fosse o sono, mas quem é o USUARIODOAPACHE?

    Desde já, agradeço a atenção.
    []s

    1. Cara muito obrigado pela participação.
      Desculpe a demora para responder. Hoje que vi o teu recado.
      Com certeza você já deve até ter resolvido o problema.
      Na verdade quando tu instala um serviço no linux ele cria o usuário que vai executá-lo.
      Se você não sabe qual usuário esta executando o apache2 por exemplo, é só dar o comando:
      # ps aux
      Aí procure o Apache2 na lista e veja o usuário.
      No caso Apache2 quando eu instalei no debian lenny o usuário que ele criou é o www-data.
      Você precisa mudar o dono do diretório para não precisar dar direito a todos os usuários para a pasta como muita gente faz erroneamente (chmod 777 …). Assim o apache vai conseguir tratar o conteúdo desta pasta.

      Obrigado mesmo pela participação!
      Abraço.

  2. meu erro sempre fica aqui
    na NEW3

    Reading config.ini file…Found!
    Array ( [dbUser] => mysar [dbPass] => mysar [dbHost] => localhost [dbName] => mysar )

    Testing database connection…Done!

    Click here to continue.

    E NA NEW4 fica assim

    Checking where smarty template cache directory is writeable…Failed!

    You need to set the directory /usr/local/mysar/smarty-tmp to be writable by the web server process. This can be done by executing the following as root:
    chown apache /usr/local/mysar/smarty-tmp
    chmod o+rwx /usr/local/mysar/smarty-tmp

    Click here to try again

Deixe um comentário

Acima ↑