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.
Depois de tudo instalado, na página principal do MySAR tem um link chamado "Administration", entre nele, irá aparecer a tela abaixo:
Altere o caminho do access.log para de acordo de onde encontra o seu. No meu caso encontra-se em /var/log/squid/access.log e depois clique em "Change Value".
Agora basta você ir no servidor e importar o seu access.log. Para isso tem um script dentro de /usr/local/mysar/bin/. É só rodar o mysar-importer:
# ./mysar-importer.php
Ao terminar toda a importação, vamos editar o cron para que ele possa gerar os logs on-line. Lembrando que este cron, mesmo rodando todo minuto, não pesa em nada máquina, diferente do SARG, que se você fizer a importação dele todo minuto sua máquina vai sentar. Vamos editar o cron:
[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?