Sarg 2.3.6 para pfsense



  • Ficou muito legal hein … Show de bola ...

    Estou explorando as funções ainda.

    Bem de sugestão, eu não vi em nenhum outro, então lá vai.

    Estou querendo trabalhar com uma lista de sites novos. Ou seja, todo site novo, eu analiso e "homologo" ele para uso. Todos os homologados, eu não preciso ficar validando. Assim eu só vejo coisas novas no rel.

    Não encontrei uma opção ainda, onde eu pudesse colocar os sites que eu desejo excluir do relatório. Nos outros (LigthSquid e Sarg "manual") eu tentei fazer, mas ele não reconhecia o DNS e tal. Ou seja, eu colocava na lista de excluídos "www.google.com.br" aí ele excluía o ip que o dns respondia na hora da execução do rel. todos os outros ips que respondem por esse fqdn ele mostrava normal.

    Fica aí a dica, se conseguir, seria bem útil ...

    Outra dica, acho que está relacionada com a do amigo acima, seria colocar uma daquelas barras com o caminho atual como link. Tipo

    pfSense>Sarg>2012>march>administrator>top_sites

    Com isso, se eu quiser ver março, ou voltar lá em 2012, ou ainda para a home, fica super fácil e prático.
    Nesse caso exemplifiquei com o "pfSense" no inicio, porque não há um link para voltar ao pfsense. Mais por praticidade mesmo.

    Mas são apenas sugestões, o trabalho feito até aqui, já foi mais que excelente ... Semana passada eu "perdi" dois dias buscando tutoriais na net para fazer o sarg funcionar, e alguns dias depois, tá lá o pacote é só apertar o botão e configurar ... rsrs

    Outra coisa, mas essa é mais uma dúvida, do que uma sugestão.

    Quando o usuário entra por exemplo em um site como o UOL, o browser carrega vários outros endereços.
    Existe uma forma de saber, os endereços que são carregados pelo browser, e os links que o usuário clicou ?
    Eu por exemplo, gostaria apenas de mapear, onde o usuário foi, que seria, links e digitação. O resto eu sei que são banners e coisas que o próprio site fica carregando.

    Existe isso, ou eu estou viajando ?



  • Publiquei o sarg 0.2

    Principais mudanças:

    • Incluído opções de listas de exclusões de hosts,conteudo de urls e retornos http

    • Algumas correções de bugs

    • Melhorias na interface de relatorios.

    filipe.nanclarez,
    Fora a parte de links dentro de sites, acho que o resto já faz parte do pacote.  ;)

    att,
    Marcello Coutinho



  • @marcelloc:

    Publiquei o sarg 0.2

    Principais mudanças:

    • Incluído opções de listas de exclusões de hosts,conteudo de urls e retornos http

    • Algumas correções de bugs

    • Melhorias na interface de relatorios.

    filipe.nanclarez,
    Fora a parte de links dentro de sites, acho que o resto já faz parte do pacote.  ;)

    att,
    Marcello Coutinho

    Prezados instalei o sarg mas não esta funcionando gostaria da ajuda de voces será que esta faltando mais alguma coiza, uso o squid



  • Venicio,

    Qual configuração você colocou no pacote?
    Que proxy você esta usando?
    Que agendamentos você criou?



  • @marcelloc:

    Venicio,

    Qual configuração você colocou no pacote?
    Que proxy você esta usando?
    Que agendamentos você criou?

    estou usando o squid em relação aos agendamentos não entendi e como configuro e sarg?



  • @marcelloc:

    Publiquei o sarg 0.2

    Principais mudanças:

    • Incluído opções de listas de exclusões de hosts,conteudo de urls e retornos http

    • Algumas correções de bugs

    • Melhorias na interface de relatorios.

    filipe.nanclarez,
    Fora a parte de links dentro de sites, acho que o resto já faz parte do pacote.  ;)

    att,
    Marcello Coutinho

    Hehe, muito legal, vou testar aqui já …

    Com relação aos links dentro dos sites, tecnicamente, existe isso ?



  • @veniciopika:

    estou usando o squid em relação aos agendamentos não entendi e como configuro e sarg?

    O sarg é uma ferramente de relatorio de acesso que é executada via agendamento, ou seja, ele não fica o tempo todo rodando.

    Para gerar um relatorio de acesso a cada uma hora por exemplo, configure o schedule com o campo frequency=1h. Desta forma, a cada hora você terá um novo relatório gerado.

    Visita o site do sarg para entender como a ferramenta funciona.



  • @filipe.nanclarez:

    Com relação aos links dentro dos sites, tecnicamente, existe isso ?

    Olhei ontem o arquivo de configuração e não achei nada com relação a http referer ou algo do tipo nele, portanto deve ser dificil capturar esta informação no processamento do sarg.

    O squid tem a opção de incluir o referer no log, mas não sei se o sarg sabe interpretar isso.

    LogFormat "%v:%p %h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"" vhost_combined
    LogFormat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"" combined
    LogFormat "%h %l %u %t "%r" %>s %b" common
    LogFormat "%{Referer}i -> %U" referer
    LogFormat "%{User-agent}i" agent



  • @marcelloc:

    @filipe.nanclarez:

    Com relação aos links dentro dos sites, tecnicamente, existe isso ?

    Olhei ontem o arquivo de configuração e não achei nada com relação a http referer ou algo do tipo nele, portanto deve ser dificil capturar esta informação no processamento do sarg.

    O squid tem a opção de incluir o referer no log, mas não sei se o sarg sabe interpretar isso.

    LogFormat "%v:%p %h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"" vhost_combined
    LogFormat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"" combined
    LogFormat "%h %l %u %t "%r" %>s %b" common
    LogFormat "%{Referer}i -> %U" referer
    LogFormat "%{User-agent}i" agent

    Se eu colocar esse campo no log, ele é exibido na lista de endereços do sarg ?



  • Essa configuração é do apache e não do sarg.



  • @marcelloc:

    Essa configuração é do apache e não do sarg.

    ? desculpe não entendi  ???



  • Se você colocar este campo no log do squid pode dar certo ou pode ser simplesmente ignorado pelo sarg.



  • @marcelloc:

    Se você colocar este campo no log do squid pode dar certo ou pode ser simplesmente ignorado pelo sarg.

    Marcelo meu sarg não esta gerando realtorio configurei ele com ta abaixo mas não ta funcionando
    pq?




  • subi a versão 0.2.1 com uma atualizaçâo que impede o browser de fazer cache dos reports.



  • Marcelloc,

    Testei o pacote em ambiente de teste, com o Squid autenticando via LDAP, os nomes aparecem com caracteres "estranhos" será alguma configuração de codificação?

    Apesar desse erro, tudo funcionou bem, segunda ou terça da próxima semana pretendo pôr em produção o pacote em conjunto com o Lightsquid, vamos ver os resultados, o ambiente é relativamente grande, com 50 PCs além dos usuários de VPN, quer algum feedback em especial?



  • Estou forçando UTF8 nos logs, tenta mudar esta opção no arquivo sarg.template, aplica as configurações e gera um novo report.

    No dansguardian o log rotate esta ok, mas algumas funções do squidguard ainda estão pendentes.



  • @marcelloc:

    subi a versão 0.2.1 com uma atualizaçâo que impede o browser de fazer cache dos reports.

    Nossa, essa é bem útil hein, eu demorei pra descobrir que tinha que dar f5.



  • fiz toda configuracao e quando vou em View Report sai o seguinte erro:

    Warning: file_get_contents(/usr/local/www/sarg-reports/index.html): failed to open stream: No such file or directory in /usr/local/www/sarg_frame.php on line 41

    já re-instalei o pacote, desinstalei e voltei a instalar e nada ainda.

    Alguma sugestao?



  • Você já rodou o sarg via schedule ou apertando o force update now?



  • Coloquei o Shedule por 5m (5 minutos) para testar, mas o normal estava 2h (2 horas).

    Em Action After Sarg está o valor default.

    Já tentei o Force Update Now, F5, CTRL + F5, tentei usar o Firefox, Chrome (meu browser padrao), IE e nada…

    Em services está o tempo todo parado, mesmo quando coloco em 5 minutos e atualizo o tempo todo para verificar o service está parado.

    Quando tiver um tempo livre na rede vou reiniciar o server pra verificar se é algum problema com reboot.

    Aviso qualquer avanço... Enquanto isso vou testando o que posso...



  • roda o sarg na console/ssh e veja o retorno do comando

    veja também se existe algum conteúdo na pasta /usr/local/www/sarg-reports



  • Rodei por console o comando /var/local/etc/sarg/ e me retorna SARG: File not found: /var/squid/logs/access.log

    Busquei com o find / -name access.log que voce indica em outro post e descobri a pasta em que o log está sendo gerado /var/squid/log/access.log

    Agora onde eu altero a pasta para gerar o report pelo SARG? =P

    Obrigado!



  • você tem o lightsquid rodando?

    recentemente publicaram uma correção para esta pasta.



  • Marcelo,

    Tem previsão de quando sai para o squidguard.. ?



  • @marcelloc:

    você tem o lightsquid rodando?

    recentemente publicaram uma correção para esta pasta.

    Encontrei o arquivo sarg.conf novamente com o find / -name sarg.conf (preguiça de pensar!!! - haha) e mudei a rota /var/squid/log/access.log (estava log e nao logs)

    Executei pelo console o comando sarg, executou sem problemas, pude ver o serviço rodando em Services mas no final me saiu um erro:
    SARG: Records in file: 4267229, reading 100.00%
    SARG: cannot open /usr/local/www/sarg-reports/2012/03-04/26-03/sarg-date for writing
    SARG: No such file or directory

    Sim, tenho o lighSquid executando também.



  • @vithort:

    Encontrei o arquivo sarg.conf novamente com o find / -name sarg.conf (preguiça de pensar!!! - haha) e mudei a rota /var/squid/log/access.log (estava log e nao logs)

    O sarg.conf é gerado automaticamente, sua alteração vai sumir assim que você apertar o botão save na interface grafica do pacote.

    Esta difereça de pastas já foi corrigida no lightsquid, atualiza este pacote primeiro e depois aguarda uns 15 minutos para atualizar o sarg.

    Publiquei algumas alterações agora, incluindo a verificação da pasta de logs na configuração do squid.



  • @mantunespb:

    Marcelo,

    Tem previsão de quando sai para o squidguard.. ?

    Estou aguardando feedback dos usuarios do squidguard para saber o que colocar de opções para ele.

    Se o squidguard não gera nenhum log a mais nesta versão do pacote, rode o sarg com squid mesmo.

    att,
    Marcello Coutinho



  • Boa tarde, parabéns você é realmente o "cara", seguinte, ordenar por site está dando erro, por bytes o padrão ta rodando, valeu.



  • Marcello,

    Segue abaixo algumas modificações para funcionamento do squidGuard (pelo menos no meu ambiente :P)

    –- sarg.inc.ORI 2012-04-03 15:09:25.000000000 -0300
    +++ sarg.inc 2012-04-03 15:30:52.000000000 -0300
    @@ -100,14 +100,13 @@
    mwexec('/usr/bin/killall -HUP dansguardian');
    }
    break;

    • /*case "squidguard":
    • #todo
    • if ($action !="xnonex"){
    • log_rotate('/var/log/dansguardian/access.log');
    • mwexec('/usr/local/sbin/dansguardian -r');
    • }
    • case "squidguard":
    • if ($action =="both" || $action=="rotate")
      +                                        mwexec('squid -k rotate');
      +                                if ($action =="both" || $action=="restart")
      +                                        mwexec_bg('/usr/local/etc/rc.d/squid restart');
      break;
    • */

    }
    #mount filesystem readonly
    conf_mount_ro();
    @@ -138,7 +137,13 @@
    $access_log = $config['installedpackages']['squid']['config'][0]['log_dir']. '/access.log';
    break;
    case 'squidguard':

    • $access_log='/var/squid/logs/access.log';
      +                        $access_log='/var/squid/logs/access.log';
      +                        if (is_array($config['installedpackages']['squid']['config']))
    • if (file_exists($config['installedpackages']['squid']['config'][0]['log_dir']. '/access.log'))
    • $access_log = $config['installedpackages']['squid']['config'][0]['log_dir']. '/access.log';
      +                               
      +                        $squidguard_conf='/usr/local/etc/squidGuard/squidGuard.conf';

    break;
    }
    if (!file_exists($access_log)){
    @@ -146,7 +151,7 @@
    log_error($error);
    file_notice("Sarg", $error, "Sarg Settings", "");
    }

    $graphs=(preg_match('/use_graphs/',$sarg['report_options'])?"yes":"no");
    $anonymous_output_files=(preg_match('/anonymous_output_files/',$sarg['report_options'])?"yes":"no");
    $resolve_ip=(preg_match('/resolve_ip/',$sarg['report_options'])?"yes":"no");

    –- sarg.template.ORI 2012-04-03 15:31:03.000000000 -0300
    +++ sarg.template 2012-04-03 15:32:03.000000000 -0300
    @@ -576,7 +576,7 @@
    #      This option was named squidguard_log_format before sarg 2.3.
    #      REJIK      #year#-#mon#-#day# #hour# #list#:#tmp# #ip# #user# #tmp#/#tmp#/#url#/#end#
    #      SQUIDGUARD  #year#-#mon#-#day# #hour# #tmp#/#list#/#tmp#/#tmp#/#url#/#tmp# #ip#/#tmp# #user# #end#
    -#redirector_log_format #year#-#mon#-#day# #hour# #tmp#/#list#/#tmp#/#tmp#/#url#/#tmp# #ip#/#tmp# #user# #end#
    +redirector_log_format #year#-#mon#-#day# #hour# #tmp#/#list#/#tmp#/#tmp#/#url#/#tmp# #ip#/#tmp# #user# #end#

    TAG: show_sarg_info yes|no

    #      shows sarg information and site path on each report bottom

    Feito isso…. basca escolher o Log Settings / Proxy server como SquidGuard e mandar gerar o resultado.

    ps.

    Refine o código caso seja utilizável :P






  • ccesario,

    Valeu pelo feedback e código pronto  :)

    Vou aplicar no fonte quando chegar em casa hoje.



  • Se alguém mais puder testar, seria ótimo :)

    Marcello, só mais uma coisa.

    O squidGuard não tem rotate, e investigando o pacote vi um script que "implementa" isso.

    Talvez seja interessante utilizá-lo, por favor mude as linhas do rotate de

    case "squidguard":
                if ($action =="both" || $action=="rotate")
                                            mwexec('squid -k rotate');

    para

    case "squidguard":
                if ($action =="both" || $action=="rotate") {
                                            mwexec('squid -k rotate');
                                            mwexec('/usr/local/etc/rc.d/squidGuard_logrotate');
                                            }

    att,



  • Publiquei as atualizações, reinstala o pacote e verifique se o report gerado para o squidguard está ok.



  • O realtime está funcionando com squidguard.. a horas está no formato errado..

    O viewreport ainda não, apesar de forçar o log..



  • @mantunespb:

    O realtime está funcionando com squidguard.. a horas está no formato errado..

    Esta com as mesmas informações ou mostrando uma tela desconfigurada? você pode mandar um screenshot?

    @mantunespb:

    O viewreport ainda não, apesar de forçar o log..

    Somente os novos reports vão aparecer no formato novo, você conseguiu simular isso?



  • @marcelloc:

    @mantunespb:

    O realtime está funcionando com squidguard.. a horas está no formato errado..

    Esta com as mesmas informações ou mostrando uma tela desconfigurada? você pode mandar um screenshot?

    @mantunespb:

    Segue o screenshot.. a hora está certa. apenas o data.




  • O log do realtime está no formato correto. Ele não gera relatórios completos como o report.



  • Marcelo,

    eu falei apenas da data (2012-04-03).. que deveria esta no formato 03-04-2012..



  • Esta é a forma que ele gera o realtime, se existir opção para alterar isso no arquivo de configuração e coloco na gui, mas sinceramente acho que a forma que está não atrapalha a visualização.



  • Marcello,

    Tomei a liberdade de fazer algumas mudanças no código.
    Veja se está de acordo, se estiver ótimo, senão pode desconsiderar :p

    Observações

    • Eu coloquei o rotacionador de logs que você implementou, pois aquele script é meio "tosco", porém o instalador do squidGuard usa ele no cron. Não sei qual  a melhor forma.
    • Quando escolhido a ação "rotacionar e restartar" , apenas rotacionava e não restartava os servicos.
    • Defini algumas variáveis que estão sendo utilizadas em mais de um local.
    • E algumas mensagens a serem geradas no log.
    • O patch está baseado na sua última publicação do código.

    Testei aqui e está funcionando perfeitamente.

    Obrigado

    
    --- sarg.inc.ORI	2012-04-04 09:06:31.000000000 -0300
    +++ sarg.inc	2012-04-04 10:38:56.000000000 -0300
    @@ -32,6 +32,15 @@
                                                                                   */
     /* ========================================================================== */
    
    +// STATIC VARS
    +
    +$squid_rc='/usr/local/etc/rc.d/squid.sh';
    +$squidguard_config='/usr/local/etc/squidGuard/squidGuard.conf';
    +$squidguard_block_log='/var/squidGuard/log/block.log';
    +$dansguardian_config='/usr/local/etc/dansguardian/dansguardian.conf';
    +$dansguardian_log='/var/log/dansguardian/access.log';
    +
    +// END STATIC VARS
    
     function sarg_start() {
     	global $g, $config;
    @@ -68,7 +77,8 @@
     		rename ($log_file,$log_file.".0");	
     }
     function run_sarg($id=-1) {
    -	global $config, $g;
    +        global $config, $g;
    +        global $squid_rc, $squidguard_config, $squidguard_block_log, $dansguardian_config, $dansguardian_log;
     	#mount filesystem writeable
     	conf_mount_rw();
     	$cmd = "/usr/local/bin/sarg";
    @@ -87,29 +97,34 @@
     	if (is_array($config['installedpackages']['sarg']))
     		switch ($config['installedpackages']['sarg']['config'][0]['proxy_server']){
     			case "squid":
    -				if ($action =="both" || $action=="rotate")
    -					mwexec('squid -k rotate');
    -				if ($action =="both" || $action=="restart")
    -					mwexec_bg('/usr/local/etc/rc.d/squid restart');
    +                                if (($action =="both") || ($action=="rotate")) {
    +                                        mwexec('squid -k rotate');
    +                                        log_error('executing squid log rotate after sarg.');
    +                                        }
    +				if (($action =="both") || ($action=="restart")) {
    +                                        if (file_exists($squid_rc)){
    +                                                mwexec_bg($squid_rc.' restart');
    +					        log_error('restarting squid after sarg.');
    +                                                }
    +                                        }
     			break;
     			case "dansguardian":
     				if (preg_match('/\w+/',$action) && $action !="none"){
    -					log_rotate('/var/log/dansguardian/access.log');
    +					log_rotate($dansguardian_log);
     					log_error('restarting dansguardian after sarg and log rotate.');
    -					#mwexec('/usr/local/etc/rc.d/dansguardian restart');
     					mwexec('/usr/bin/killall -HUP dansguardian');
     					}
     			break;
     			case "squidguard":
    -				if ($action =="both" || $action=="rotate") {
    +                                if (($action =="both") || ($action=="rotate")) {
    +                                                log_rotate($squidguard_block_log);
     						mwexec('squid -k rotate');
    -						if (file_exists('/usr/local/etc/rc.d/squidGuard_logrotate')){
    -							mwexec('/usr/local/etc/rc.d/squidGuard_logrotate');
    -							}
    +                                                log_error('executing squid and squidGuard log rotate after sarg.');
     					}
    -				if ($action =="both" || $action=="restart") {
    -					if (file_exists('/usr/local/etc/rc.d/squid')){
    -						mwexec_bg('/usr/local/etc/rc.d/squid restart');
    +				if (($action =="both") || ($action=="restart")) {
    +					if (file_exists($squid_rc)){
    +						mwexec_bg($squid_rc.' restart');
    +					        log_error('restarting squid after sarg.');
     						}
     					}
     			break;
    @@ -119,7 +134,8 @@
     }
    
     function sync_package_sarg() {
    -	global $config, $g;
    +        global $config, $g;
    +        global $squid_rc, $squidguard_config, $squidguard_block_log, $dansguardian_config, $dansguardian_log;
     	$update_conf=0;
     	#mount filesystem writeable
     	conf_mount_rw();
    @@ -130,13 +146,13 @@
     	$sarg=$config['installedpackages']['sarg']['config'][0];
     	switch ($sarg['proxy_server']){
     		case 'dansguardian':
    -			$access_log='/var/log/dansguardian/access.log';
    -			$dansguardian_conf='/usr/local/etc/dansguardian/dansguardian.conf';
    +			$access_log=$dansguardian_log;
    +			$dansguardian_conf=$dansguardian_config;
     			$dansguardian_filter_out_date="dansguardian_filter_out_date on";
     			$squidguard_conf='squidguard_conf none';
     		break;
     		case 'squidguard':
    -			$squidguard_conf='squidguard_conf /usr/local/etc/squidGuard/squidGuard.conf';
    +			$squidguard_conf='squidguard_conf '. $squidguard_config;
     			$redirector_log_format='redirector_log_format #year#-#mon#-#day# #hour# #tmp#/#list#/#tmp#/#tmp#/#url#/#tmp# #ip#/#tmp# #user# #end#';
     			#Leve this case without break to include squid log file on squidguard option
     		case 'squid':
    
    

    att,



  • @marcelloc:

    @vithort:

    Encontrei o arquivo sarg.conf novamente com o find / -name sarg.conf (preguiça de pensar!!! - haha) e mudei a rota /var/squid/log/access.log (estava log e nao logs)

    O sarg.conf é gerado automaticamente, sua alteração vai sumir assim que você apertar o botão save na interface grafica do pacote.

    Esta difereça de pastas já foi corrigida no lightsquid, atualiza este pacote primeiro e depois aguarda uns 15 minutos para atualizar o sarg.

    Publiquei algumas alterações agora, incluindo a verificação da pasta de logs na configuração do squid.

    Já consigo monitorear pelo Realtime, agora continuo com o mesmo erro quando acesso o View Report:
    Warning: file_get_contents(/usr/local/www/sarg-reports/index.html): failed to open stream: No such file or directory in /usr/local/www/sarg_frame.php on line 41

    Images:




Log in to reply