Neste artigo falo sobre como instalar, configurar e usar este maravilhoso analisador de logs do Squid. Para quem não gosta muito do SARG, aí está uma opção muito boa.
O MySAR é um analisador de logs muito eficiente, funciona junto com MySQL criando uma base de dados a partir do access.log. O que eu acho ótimo no MySAR é que ele gera o log em tempo real.
Para instalar o SARG você precisa ter instalado em seu servidor os seguintes pacotes:
MySQL 4.1 ou superior
PHP4 ou superior
PHP-MYSQL
mysqlclient
Apache
Instalados estes pacotes, vamos instalar o MySAR.
O download do MySAR pode ser feito no link abaixo, que é a página oficial do projeto:
[1] Comentário enviado por removido em 09/08/2006 - 10:29h
O artigo ficou um pouco fraco, mas o MySar em si não tem segredos.
É um artigo muito bom para as pessoas conhecerem ele que corrige a maior falha do sarg. As Páginas estáticas. Com o mySar pode-se criar relatórios muitos mais personaalizado e ordenados da maneira que for melhor.
Quando estava procurando algo como ele, foi bem dificil de achar.
[2] Comentário enviado por fmendes em 09/08/2006 - 10:54h
Bem, fraco em que sentido? Escrevi este artigo pq quando precisei instalar o MySar em um cliente não achei muita documentação na NET, então fiz um artigo mais voltado para instalação do MySar, e não expliquei como se instala, MySQL, apache, php4.... Mesmo pq o MySar só precisa que eles estejam instalados, configurar mesmo somente o apache, o resto o MySar configura sozinho, como por exemplo o banco MySql. Quaisquer problemas podem me falar que eu passei por alguns problemas nas instalações que eu fiz.
[7] Comentário enviado por fmendes em 09/08/2006 - 13:48h
Fala segalla, blz? Valeu pelo comentario. Cara tenho mysar com mais de 700 usuairos e nao afeta em nada a performace do proxy. Quanto ao log, fica grande mesmo pq são 700 usuarios acessando a net, mas nao interfere em nada.
Fala digaosp, blz? Vc verificou o seu php.ini como eu falei na resposta mas acima???
[9] Comentário enviado por digaosp em 09/08/2006 - 15:03h
Felipe, verifiquei o php.ini sim.. estava a linha lá, mas inseri novamente do modo q vc falou. porém nao rola mesmo.
vc acha q pode ser o q?
já fiz de tudo, ele nem passa da primeira tela de instalação..
[16] Comentário enviado por rafaelcore em 10/08/2006 - 14:55h
Para atualizar os logs, estou precisando sempre rodar o script (mysar-importer.php) caso contrário os logs ficam desatualizados, editei o cron e nada, alguma dica? Já verifiquei se o serviço crond, está ok!
[17] Comentário enviado por analfabeta em 10/08/2006 - 18:12h
Eu nao consigo fazer o MySar funcionar. Ele nunca cria a database sozinho, dá erro de conexão com o MySQL, nada funciona. Saberia me ajudar?
Creating database...Failed...
You have an error in your SQL syntax near '; ' at line 6
Click here to try again!
E também:
Reading config.ini file...Failed!
You need to create the file "/var/www/mysar/etc/config.ini", making sure it is readable by the web server process, with the following contents:
dbUser =
dbPass =
dbHost =
dbName =
[20] Comentário enviado por analfabeta em 11/08/2006 - 10:51h
Tb tem esse erro:
SQL Error
ERROR on SQL query
SQL query: SELECT DATE_FORMAT(date, '%W, %d %M %x') AS dateFormatted,date,MIN(date) AS minDate,MAX(date) AS maxDate,COUNT(DISTINCTROW ip) AS hosts,COUNT(DISTINCTROW usersID) AS users,COUNT(DISTINCTROW sitesID) AS sites,SUM(inCache+outCache) AS bytes,TRUNCATE(SUM(inCache)/SUM(inCache+outCache)*100,0) AS cachePercent FROM trafficSummaries GROUP BY dateFormatted ORDER BY
Database error number: 1064
Database error message: You have an error in your SQL syntax near '' at line 1
Exiting...
[21] Comentário enviado por gr4ph1x em 11/08/2006 - 20:02h
Na tela de instalação para colocar o usuario, senha mysql:
Eu coloquei usuário de ROOT mesmo com senha certinho e ele nao cria,
mas tb nao reporta nenhum erro. Só fica lá "Creating database..." e para nisso.
Na maquina esta rolando slack 10.2 (indiferente), apache 2, php5 e
mysql 5. Tá tudo funcionando ok, o apache e o php estão no ar e o
mysql está com a porta aberta (3306).
ah! E eu nao estou importando uma instalação antiga nao, é uma instalação
nova.
Tb ja olhei no php.ini e possui a extensão para mysql.so.... Me ajudem
[22] Comentário enviado por fmendes em 14/08/2006 - 11:27h
Bem como eu ja disse antes, ja tive este problema q fica so no creating database e nao saie tb nao da erro nenhum.
O problema foi resolvido quando eu instalei o php4-mysql eu tinha esquecido de instalar....
[26] Comentário enviado por fmendes em 29/08/2006 - 16:46h
Cara, ele esta importando perfeirtamente. Vc esta importando na mao? Coloca no cron para rodar com eu falei q ele vai sincronzar e importar somente os novos. Quanto a esta mensagem ele aparece isso mesmo quando o log é mt grande, vc tem q sincronizar com o access.log.
[27] Comentário enviado por fabiofurquim em 29/08/2006 - 17:19h
Caro Felipe,
Obrigado pela ajuda, consegui resolver mudando uma variavel dentro do arquivo mysar-importer.php chamada maxRunTime. Coloquei um valor bem alto (o default é 55) e resolveu. Minha ideia é rodar na mão mesmo pra naum comprometer o squid server.
[28] Comentário enviado por brhebert em 15/09/2006 - 16:11h
Caro Felipe,
Parabens pelo artigo, mas estou com uma duvida.
Já tenho um servidor com o Mysql rodando serviços para o email. tipo mysql + postfix + etc...
a instalação do MySAR vai interferir em alguma coisa o funcionamento dos serviços já mencionados ???
[30] Comentário enviado por lrg.lais em 26/09/2006 - 11:11h
Felipe,
Tenho instalado o mysar certinho e ele funciona belezinha... mas como tenho relatórios para extrair, se eu não "limpar" os dados da tabela traffic, trafficSummaries, etc, vai ficar mto lenta a geração do relatório...
Coloquei no cron pra ele executar o arquivo mysar-maintenance.php e programei pra salvar apenas 30 dias do histórico mas nada aconteceu... o q devo fazer??
[31] Comentário enviado por aazevedo1984 em 30/09/2006 - 17:28h
cara aq quando coloco a url http://localhost/mysar/ simplesmente aparece a tela como se fosse transação via ftp, sabe em arvore de diretórios, oq é isso?
[35] Comentário enviado por dtux em 24/01/2007 - 22:00h
Cara ta tudo certo só q não aparece nada na web a pagina fica toda em branco, será pq, coloquei certinho no apache, o php tá certo, estou usando o php5, tá tudo ok, tem como da uma ajudinha... flwss!!!
[36] Comentário enviado por erbignes em 05/02/2007 - 10:14h
fmendes, muito bom o artigo.
parabens!!
So que estou com um problema para visualizar, alguns logs, ( aqueles que tem alto volume de processamento,) quando tento abrir eles via web a pagina fica em branco..., existe alguma limitaçao alguem tem alguma sugestao?
[37] Comentário enviado por erbignes em 05/02/2007 - 14:44h
Felipe, olhando os logs achei o seguinte...: quando tento visualizar o
relatorio dos acessos a pagina fica erm branco por isto..:
"PHP Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 35 bytes) in /srv/www/mysar/inc/functions.inc.php on line 87, referer: http://192.168.1.12./mysar/"
Nao conheço PHP, de todos modos instalei um editor PHP, nao achei nada "intuitivo" onde possa mexer e mudar parametros,
[38] Comentário enviado por erbignes em 05/02/2007 - 16:22h
Bom achei a soluçao eh bem simple...,como ja expliquei nao tenho um "know-how" em PHP, agora caso que alguem tenha o problema de exibir paginas em branco..., e com erro detalhado em minha outra mensagem aqui esta uma possivel soluçao, eu apliquei esta dica e funcionou OK !
[39] Comentário enviado por alex_a_souza em 16/02/2007 - 19:25h
Gostei do seu Artigo.
Seguir passo a passo o ki vc kolocou, no final quando do o clik no START ele da esse erro.
Fatal error: Smarty error: unable to write to $compile_dir '/usr/local/mysar/smarty-tmp'. Be sure $compile_dir is writable by the web server user. in /usr/local/mysar/inc/smarty/Smarty.class.php on line 1088
[40] Comentário enviado por antraz em 06/04/2007 - 18:12h
Muito bom, Funcionou perfeitamente.
So temos que ajustar o artigo, voce trocou alguns nomes.
Mas Ficou muito bom mesmo, o meu funcionou perfeitamente. http://www.larainfor.com.br
[42] Comentário enviado por polaco_ em 24/07/2007 - 15:35h
Dentro da pasta bin/mysar-binary-importer-v4 tem um diretorio com o importador binario, no ultimo release (2.4.13)+
O importador binario tem muito mais velocidade e suporte a logs comprimidos, agrupamento de dominios, etc...
[45] Comentário enviado por polaco_ em 26/09/2007 - 00:02h
edson_vetorial,
ja verificou se o PHP que voce esta usando tem suporte MYSQL?
rodriguesrj,
parece ser a formatacao do seu access.log. o Mysar importa somente no formato de acordo com o padrao do Squid. da uma olhada para ver se esta conforme o padrao, ou senao tenta com o importador binario, ok?
[46] Comentário enviado por marden_pimenta em 01/10/2007 - 21:32h
segala eu coloquei aqui na empresa e tenho mais de 500 usuarios dia acessando!
a unica alteraçao que tive de fazer foi no arquivo /usr/local/mysar/bin/mysar-importer.php no parametro $maxRunTime=5500 para importar os logs antigos para visualizar o mes todo.
[48] Comentário enviado por sancmk em 20/12/2007 - 10:04h
?comentario= Pessoal, respondendo a pergunta do Márcio Carvalho: - Alguém sabe como traduzir o mysar para Português como nas telas acima?
Achei na net que já existe os templates em português na própria instalação, então após o MySar instalado basta mudar o nome dos diretórios conforme a página do Sr. Tiago (http://tiagodurante.wordpress.com/nerd-stuff/mysar-installconfigure/):
-------------------------------------------------------------------------------------------
Caso você queira colocar o MySAR em português brasileiro basta fazer o seguinte:
# chown -R apache www-templates
Altera o dono do diretório www-templates e os arquivos contidos no diretório. No meu caso o usuário que tem que ser o dono do diretório é o usuário apache (vai depender da instalação feita do servidor HTTP)
Parabenizo ao Felipe Mendes (deste artigo) e o Tiago Durante (http://tiagodurante.wordpress.com/nerd-stuff/mysar-installconfigure/) pelo artigo que escreveram.
[49] Comentário enviado por sancmk em 20/12/2007 - 10:53h
Agora uma dúvida pessoal, alguém conseguiu identificar onde que no MySar eu encontro o "Tempo gasto" de acesso à Internet? E o que é "Uso do Cache" nas páginas do MySar?
[50] Comentário enviado por wolney em 11/01/2008 - 10:42h
estou problemas para vizualizar os acessos recentes, no browser so aparece os acessos de dezembro.
Tem alguma configuração a fazer ?.
Obrigado desde ja.
[51] Comentário enviado por anthonydarkness em 23/01/2008 - 17:55h
Pessoal eu gostaria de ajuda..não consigo resolver o problema de importar os logs para o banco.
ao tentar importar ele mostra o seguinte erro:
[root@Firewall-Unimar bin]# ./mysar-importer.php
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/modules/msql.so' - /usr/lib/php/modules/msql.so: cannot open shared object file: No such file or directory in Unknown on line 0
_PHP Notice: A non well formed numeric value encountered in /usr/local/mysar/bin/mysar-importer.php on line 151
PHP Notice: A non well formed numeric value encountered in /usr/local/mysar/bin/mysar-importer.php on line 152
PHP Notice: A non well formed numeric value encountered in /usr/local/mysar/bin/mysar-importer.php on line 153
ERROR on SQL query
SQL query: INSERT INTO traffic(date,time,ip,resultCode,bytes,url,authuser) VALUES ('1969-12-31','21:03:12',INET_ATON('-'),'[20/Jan/2008:04:30:43','-0200]','http://download918.avast.com/iavs4x/prod-av_pro.vpu.stamp','HTTP/1.0\"')
Database error number: 1048
Database error message: Column 'ip' cannot be null
[52] Comentário enviado por reginaldoluiz em 24/01/2008 - 11:09h
Olá fmendes td bem?
Tenho um servidor aqui com Squid+NatACL+MySQL, com está no tutorial do tatotino aqui no vivaolinux.
Instalei o MySAR, mas como a autenticação é feita pelo NatACL e nao pelo Squid, não consigo obter o nome dos usuários logados no relatório do MySAR, vc sabe como posso resolver isso?
O NatACL cria uma database no MySQL com o nome de NatACL e também cria uma tabela com o nome de USERS, mesmo nome de uma tabela da database mysar.
Se puder me ajudar, agradeço.
Obrigado e parabens pelo tutorial!
[55] Comentário enviado por celleco em 20/08/2008 - 13:44h
Frmendes gostei muito do seu tutorial, eu estou tendo a mesma dificuldade que os meu companheiros na hora de importar o access.log ele da o erro:
ERROR on SQL query
SQL query: INSERT INTO traffic(date,time,ip,resultCode,bytes,url,authuser) VALUES ('1969-12-31','21:03:12',INET_ATON('-'),'[20/Aug/2008:10:21:04','-0300]','http://www.google.com.br/','HTTP/1.1\"')
Database error number: 1048
Database error message: Column 'ip' cannot be null
se puder me ajudar eu agradeço pos ja procurei na net e nao consegui soluçao:
192.168.10.54 - - [20/Aug/2008:10:21:04 -0300] "GET http://www.google.com.br/ HTTP/1.1" 302 510 TCP_MISS:DIRECT
esse é meu access.log ate onde eu entendo de banco de dados a data e a hora teria que vim antes do ip nao sei se é isso, preciso de ajuda.
Grato.
[56] Comentário enviado por sandroteo em 14/11/2008 - 15:47h
fiz tudo certinho mas na hora de importar com o mysar-importer.php da ess erro
bash: ./mysar-importer.php: /usr/bin/php: bad interpreter: Arquivo ou diretório não encontrado
ja alterei o maxruntimer e não deu certo
agradeço qualquer ajuda
[58] Comentário enviado por robertobrandao em 05/12/2008 - 21:38h
Pessoal esse tutorial é muito bom mais pra mim nao deu certo. Porque a versao do MySar que eu instalei é a 2.1.4 e a do tutorial é a 2.0.11 por isso acho que nao esta importando corretamente do access.log para o MySar
Como faço para importar o access.log para o MySar??
[59] Comentário enviado por mrjeday em 16/12/2008 - 15:36h
Muito bom o Mysar, já usei em uma outra ocasião. Mas agora to me deparando com uma situação aqui que ainda não tinha acontecido e não consigo encontrar o problema.
Instalei o mysar tudo direitinho ele ta rodando blz.
Mas ao tentar importar o log do squid, ele retorna assim:
############
xxx:/var/www/mysar/bin# ./mysar-importer.php
Fatal error: Call to undefined function: mysql_connect() in /var/www/mysar/inc/common.inc.php on line 48
debug('Error connecting to database!',20,__FILE__,__LINE__);
db_error();
debug('FATAL. Exiting...',20,__FILE__,__LINE__);
die(1);
}
Porém, chequei tudo isso aí acima e ta tudo certinho (até onde sei), pois se alterar isso aí eu não consigo mais carregar meu index.php do mysar.
Outra coisa chequei o arquivo config.ini que configura as permissões de acesso ao BD sql, e estão ok. Os privilégios de acesso estão certinhos. Mas qdo vai rolar o import não roda.
Dêem uma força ae.
[60] Comentário enviado por robertobrandao em 17/12/2008 - 15:42h
cara para esse seu erro ai vc deve instalar o php5-cli ou php4-cli e php5-mysql ou php4-mysql isso vai depender do php instalado ok
depois disso deve editar o seguinte arquivo em:
/etc/php5/php-cli/php.ini ou /etc/php4/php-cli/php.ini
descomente essa linha extension=mysql.so no php4 ela esta na linha de nº 556 já no php5 esta na linha de nº 599
o meu aqui esta totalmente instalado e funcionando certo mais nao esta importando os dados se vc pode me ajudar ou se souber de uma forma de importar os dados para o mysar te agradeço.
[62] Comentário enviado por newmoro em 25/02/2009 - 00:37h
Amigo,
Muito bom este seu post, mas como muitos estou com um problema na hora de executar o script # ./mysar-importer.php
Esta me dando o seguinte erro:
PHP Warning: Unknown(): Unable to load dynamic library '/usr/lib/php4/20050606+lfs/mysql.so' - /usr/lib/php4/20050606+lfs/mysql.so: cannot open shared object file: No such file or directory in Unknown on line 0
Fatal error: Call to undefined function: mysql_connect() in /usr/local/mysar/inc/common.inc.php on line 50
Já descomentei essa linha extension=mysql.so no php4 e php5 e assim mesmo continua me dando o erro.
[64] Comentário enviado por lucksxe em 26/03/2009 - 09:45h
Achei muito interessante o Mysar instalei deboa, nao tive muita dificuldade nao :) instalei no debian lenny , tenho uma duvida quero colocar senha na hora de loga no mysar como faço ?
[68] Comentário enviado por whyper em 18/02/2010 - 09:59h
Viva,
antes de mais, parabéns pelo óptimo artigo.
também estou a ter este problema do crontab, não está a actualizar em tempo real...
quando corro o ./mysar-importer.php recebo esta mensagem:
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php5/20060613+lfs/msql.so' - /usr/lib/php5/20060613+lfs/msql.so: cannot open shared object file: No such file or directory in Unknown on line 0
os registos são importados na mesma, o php5 está instalado e tenho o extension=mysql.so descomentado no /etc/php5/cli/php.ini
onde poderei corrigir este problema?
Obrigado a todos.
[69] Comentário enviado por daleffe em 03/05/2010 - 07:59h
Olá pessoal,
Estou tendo a seguinte mensagem, após alguns dias de uso do MySAR, na página inicial: Warning: date() expects parameter 2 to be long, string given in /usr/local/mysar/www/index.php on line 43
[70] Comentário enviado por leonardo.dss em 19/07/2010 - 14:32h
Muito bom artigo Felipe parabéns,
Mais tenho uma pergunta, seguinte ao colocar aquelas três linhas no crontab atualizando o tempo todo percebi uma demora nas máquinas pra obter a resposta do servidor, as páginas agora carregam mais lentas, ainda mais durante o a variação de minuto a minuto. Por exemplo, quando o marcador chega a XX(horas):XX(minutos):59(segundos) o cron atualiza as informações do MySar nesse mesmo tempo se tiver acessando de uma máquina percebo nitidamente uma grande lerdeza....após essa virada de minuto XX(horas):X1(minutos):10(segundos), ou seja, 10 segundos após o tempo de atualização das informações o acesso volta ao normal......então minha dúvida é porque isso? Pode ser alguma coisa no squid?
As outras duas linhas mysar-resolver.php e mysar-maintence.php executam o que?
[71] Comentário enviado por arthur1990 em 09/09/2010 - 10:49h
Bom primeiramente eu gostaria de parabenizar pelo artigo..
Mas eu estou tendo certa dificuldade... Pois eu não manjo nada de Linux...
Meu relatório não esta atualizando automaticamente .
Para min atualizar ele eu tenho que fazer manualmente
Alguém pode me ajudar?
[73] Comentário enviado por knighttux em 09/12/2010 - 12:18h
Olá, estou com dificuldade na instalação, no momento nao passa da criação do diretorio smarty-tmp, ele existe, tem todas as permissões pedidas pelo mysar setadas corretamente, mas simplesmente não avança, fica em "try again" direto. Estou testando em CentOS 5.3
[74] Comentário enviado por knighttux em 09/12/2010 - 16:52h
Galera, consegui resolver este problema, simplesmente desabilite o firewall e o SElinux do CentOS e as permissões no diretorio poderão ser setadas corretamente, penei pra descobrir, mas achei rsrsrs...
[75] Comentário enviado por vaner em 16/12/2010 - 22:37h
no meu aqui deu certo, mais so aparece o relatorio do ip 127.0.0.1 que é meu servidor de internet, como faço para aparecer das maquinas de toda minha rede.
[76] Comentário enviado por knighttux em 29/12/2010 - 16:23h
Vaner,
vc deve ter o squid instalado em seu servidor para o mysar analisar os logs gerados por ele, no meu caso, o servidor de squid é outro, entao eu jogo o log por ftp num diretório do meu servidor mysar e mando o mysar analisa-lo, automatizei essas tarefas pelo cron, e os logs sao analisados de 30 em 30 minutos. Qualquer duvida estou a disposição.
[78] Comentário enviado por leandrofv em 13/01/2011 - 05:37h
Bom dia,
Depois de seguir todo o tutorial esbarrei com um problema na importação do log, quando tento com o comando ./mysar-importer.php aparece a seguinte mensagem: -bash: ./mysar-importer.php: Arquivo ou diretório não encontrado, instalei seguindo uma orientação o php-cli e mesmo assim o problema persiste.
Se executo o script direto no diretório onde esta localizado o arquivo (/usr/local/mysar/bin/) a mensagem é a seguinte: -bash: mysar-importer.php: command not found.
[79] Comentário enviado por jgama em 04/02/2011 - 17:17h
Por acaso o desenvolvimento do mysar parou no tempo?
Também não consegui passar para português, mesmo seguindo a dica:
Achei na net que já existe os templates em português na própria instalação, então após o MySar instalado basta mudar o nome dos diretórios conforme a página do Sr. Tiago (http://tiagodurante.wordpress.com/nerd-stuff/mysar-installconfigure/):
-------------------------------------------------------------------------------------------
Caso você queira colocar o MySAR em português brasileiro basta fazer o seguinte:
# chown -R apache www-templates
Altera o dono do diretório www-templates e os arquivos contidos no diretório. No meu caso o usuário que tem que ser o dono do diretório é o usuário apache (vai depender da instalação feita do servidor HTTP)
Uso Ubuntu-server, fiz as alterações e continua mostrando em Inglês.
Testing database connection...
Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'www-data'@'localhost' (using password: YES) in /usr/local/mysar/www/install/index.php on line 736
Failed...
Access denied for user 'www-data'@'localhost' (using password: YES)
Click here to try again!
Sorry, but I couldn't verify your database setup!
If you think it is safe to ignore this step, click here to continue.
[82] Comentário enviado por xflavio em 17/05/2012 - 08:55h
Felipe, belo tutorial, porém o mysar tem alguma falha na hora de atualzar de um dia para o outro? pois o meu está tudo configurado nos conformes, porém, ele está atualizando os sites com uma data anterior ao do dia atual.
[83] Comentário enviado por marceloviana em 22/08/2012 - 17:30h
Por acaso tem algum jeito de pegar os logs da data anterior da instalação do mysarg?
Por exemplo, instalei o mysarg depois de trinta dias que o squid estava rodando. Então tem como eu resgatar estes logs anteriores?