Sarg 2.3.6 para pfsense
-
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..
-
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?
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?
-
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?
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 :pObservaçõ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,
-
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 -
tou com o mesmo erro do vithort…
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
e olhando nesse diretorio /usr/local/www/sarg-reports, nao tem esse tal index.html nao. estranho!!!
-
Pessoal, tentem marcar a opção
Generate the index tree by file (on) e depois forçar o sarg gerar o relatório.
E também vejam se existe algo dentro da pasta /usr/local/www/sarg-reports/
No console execute ls /usr/local/www/sarg-reports/ para verificação.
-
Esta mensagem de erro já tem um tratamento melhor e o pacote agora verifica a existencia do arquivo de log.
Reinstala o pacote, volta na gui e aplica novamente as configurações.
Veja em system -> logs se o sarg está retornando erro na execução.
Ultimo ponto: você já criou e conferiu o agendamento(schedule) do report?
-
BELEZAAAAAAAAAAA ccesario, fiz o q vc pediu, ai mostrou os relatórios. show de bola ;D ;D ;D
cara, no sarg tem como ve os sites q o micro acessou e os bloqueados neh?? aonde eu poderia ve, pq ja procurei aqui e nada.
vlw
-
Babingthon, Sim é possível. É exibido um link com as páginas negadas.
Marcello,
Já experimentou utilizar a opção sorttable do sarg ?
para efeito de teste,
sorttable http://www.kryogenix.org/code/browser/sorttable/sorttable.js
Funciona bem.
:)
-
Você já tem isso funcionando no sarg? O cino me pediu a mesma coisa no forum internacional.
Vou olhar isso hoje a noite se tiver tempo.
-
Marcello,
Sobre alguns dos posts anteriores, referente a data, basta mudar o parametro do sarg.conf
TAG: date_format
Date format in reports: e (European=dd/mm/yy), u (American=mm/dd/yy), w (Weekly=yy.ww)Por default é u, mudando para e resolve o problema :)
-
Pessoal, tentem marcar a opção
Generate the index tree by file (on) e depois forçar o sarg gerar o relatório.
E também vejam se existe algo dentro da pasta /usr/local/www/sarg-reports/
No console execute ls /usr/local/www/sarg-reports/ para verificação.
Valeu a dica ccesario!
Já nao exibe a mensagem de erro, mas também nao mostra reporte algum mesmo depois de forcar o UPDATE:
Verifiquei também e tem algumas pastas e arquivos na pasta sarg-reports
–
Esta mensagem de erro já tem um tratamento melhor e o pacote agora verifica a existencia do arquivo de log.
Reinstala o pacote, volta na gui e aplica novamente as configurações.
Veja em system -> logs se o sarg está retornando erro na execução.
Ultimo ponto: você já criou e conferiu o agendamento(schedule) do report?
Verifiquei se gera erro a execucao do SARG e nao sai nenhum erro no LOG.
Vou remover e voltar a instalar o sarg e testar… aviso os resultados.Obrigado!
-
Tenta mais duas coisas:
Rodar o sarg na console
Limpar a pasta de report e rodar o sarg novamente. -
Você já tem isso funcionando no sarg? O cino me pediu a mesma coisa no forum internacional.
Vou olhar isso hoje a noite se tiver tempo.
Sim eu tenho, e acabei de testar aqui no pfsense :)
Porém estou utilizando para efeitos de teste o arquivo direto do site do desenvolvedor, o interessante é colcar esse .js no pacote :)
Veja as imagens em anexo.
-
Marcello
Segue abaixo um novo patch, incluindo as mesmas alterações mencionadas anteriormente e mais duas opções:
- opção date_format
- sorttable
(o sorttable está buscando direto do site do desenvolvedor. Por favor faça as devidas alterações necessárias)
Quem puder testar, fique a vontade :)
Lembrando que o código está baseado na ultima atualização do pacote.
(segue anexo os patches e a imagem da tela)
-
Não tinha entendido que o js já fazia parte das configurações do sarg.
Publiquei a versão 0.3 com as ultimas atualizações.
Deve estar disponível daqui a uns 15 minutos.
-
Fiz atualizaçao.. selecionei.. o padrão europeu..
no relatório realtime.. ficou com caracteres estranhos no campo data.. estou usando o chrome..
-
pessoal, o sarg esta "funcionando" aqui. só q esta meio estranho. conseguir gerar os relatorios, so que ta mostrando os acessos de hj as 17:00, como?? pelo q eu vi são acessos de hj mesmo, mas com a data e horario diferente. ja ate atualizei ele com a ultima versão. ele viaja no futuro é?? kkkkkkkkkkkkkkkk
tava aqui pensando em apagar esse relatorio, ai como faço isso?
outra coisa, como funciona esse agendamento? eu coloquei aqui de 1h, ai quer dizer q a cada 1h ele vai atualizando o relatorio do dia é? na opção "Action after sarg qual a opção marcar?
tem problema ficar o sarg e lightsquid juntos?
e por fim, na opção que ve os sites q foram bloqueados, aparece uns 9 links, e depois diz q tem mais uns 34 sites q nao podem ser mostrados, sera q nao teria como colocar um link com a opção de mostrar esses outros.
abraços… e desculpa pelo o incomodo.
-
Marcello,
O XML contem um erro
Está assim
<option><name>American mm/dd/yy (default)</name><value>e</value></option>
<option><name>European dd/mm/yy</name><value>a</value></option>
<option><name>Weekly yy.ww</name><value>w</value></option>O correto é
<option><name>American mm/dd/yy (default)</name><value>u</value></option>
<option><name>European dd/mm/yy</name><value>e</value></option>
<option><name>Weekly yy.ww</name><value>w</value></option>:)
-
Valeu ccesario, já estou corrigindo. :)
Encontrou mais algum problema?
-
Marcello, estou validando a questão do rotacionamento dos logs e restart do serviço.
Parece que tem algo estranho, eu ainda não consegui identificar. (vou testar mais aqui e lhe comunico)
Outra coisa é quando é escolhido o formato de Data "Weekly" o Realtime parece não tratar esse tipo de formato. (n\Ainda não tive tempo de investigar)
Veja a imagem em anexo.
-
olha pessoal como ta estranho sarg. ontem eu tava com um problema q não estava atualizando os relatorios. ai deixe, pra ve o q acontecia hj. ai hj deu um force update, ai fui em view report e ainda tava aparecendo so o de ontem (04-04), ai começei a atualizar apertando F5 ai mostrou o de hj (05-04), so q parece q o do dia 04 foi tbm alterado.
oq pode ser isso, ou não estou sabendo configurar ele?
abraços
-
olha pessoal como ta estranho sarg. ontem eu tava com um problema q não estava atualizando os relatorios. ai deixe, pra ve o q acontecia hj. ai hj deu um force update, ai fui em view report e ainda tava aparecendo so o de ontem (04-04), ai começei a atualizar apertando F5 ai mostrou o de hj (05-04), so q parece q o do dia 04 foi tbm alterado.
oq pode ser isso, ou não estou sabendo configurar ele?
abraços
Seguinte, não sei se entendi bem, mas segue minhas dicas.
- Verifique o agendador (cron) e veja quando está sendo executado o sarg.
- Verifique se a opção "Overwrite Report" está marcada, isso vai fazer diferença no seu relatório.
- Verifique se os logs não estão sendo "rotacionados" antes do sarg se executado.
att
-
olha pessoal como ta estranho sarg. ontem eu tava com um problema q não estava atualizando os relatorios. ai deixe, pra ve o q acontecia hj. ai hj deu um force update, ai fui em view report e ainda tava aparecendo so o de ontem (04-04), ai começei a atualizar apertando F5 ai mostrou o de hj (05-04), so q parece q o do dia 04 foi tbm alterado.
oq pode ser isso, ou não estou sabendo configurar ele?
abraços
Seguinte, não sei se entendi bem, mas segue minhas dicas.
- Verifique o agendador (cron) e veja quando está sendo executado o sarg.
- Verifique se a opção "Overwrite Report" está marcada, isso vai fazer diferença no seu relatório.
- Verifique se os logs não estão sendo "rotacionados" antes do sarg se executado.
att
esse cron é o schudule ou tenho q instalar o pacote cron? ta assim as minhas configurações, veja a imagem
esse Overwrite Report tava marcado, mais desmarquei ele, agora ta assim as configurações, veja a imagem
abraços.
-
Verifique a partir de agora se o relatório estará OK.
-
Valeu ccesario, já estou corrigindo. :)
Encontrou mais algum problema?
Marcello,
Com relação ao rotacionamento e restart dos serviços, tudo tudo funcionando sem problemas.
Apenas para efeito de registro e acompanhamento dos testes, inclui uma entrada pra o LOG (util para monitoramento)diff -uNr sarg.inc.ORI sarg.inc --- sarg.inc.ORI 2012-04-04 16:12:58.000000000 -0300 +++ sarg.inc 2012-04-05 10:07:54.000000000 -0300 @@ -107,8 +107,10 @@ mwexec('squid -k rotate'); } if ($action =="both" || $action=="restart"){ - if (file_exists($sarg_proxy['squid_rc'])) - mwexec_bg($sarg_proxy['squid_rc'].' restart'); + if (file_exists($sarg_proxy['squid_rc'])){ + log_error('restarting squid after sarg.'); + mwexec_bg($sarg_proxy['squid_rc'].' restart'); + } } break; case "dansguardian":
Acho que só falta a a questão do Realtime + Weekly
att,
-
ccserio, eu fiz as coisas q vc pediu, mais olha como ficou. pelo q eu entendir, a cada 1h (horario q eu definir) vai criar um novo relatorio do dia. o interessando é a cada N hora q vc definir ele vai acresentando (atualizando) os relatorios.
agora, para nao ficar criando a cada 1h um novo relatorio, tenho q marcar aquela opção de Overwrite Report? e sobre essa mesma opção, ele vai atualizar os relatorios ou vai "apagar" mesmo e depois criar um novo?
no agendamento na opção action after sarg, é pra colocar colocar rotate logs ou deixar no default?
outra coisa, quando acesso os relatorios, ai vou no redirector, ta mostrando a data do dia anterior, se liga na imagem.
abraços.
-
O overwrite faz exatamente o que a palavra diz, ele grava o novo relatório sobre o outro.
Se você não rotacionar os logs, acredito que o report das 13hs tenha a navegação do dia todo.
Se o sarg funcionar assim, crie um agendamento para rodar de hora em hora sem rodar os logs e outro uma vez por dia com o rotate.
Desta forma acredito que durante o dia o log vai incrementando e as 00:00 ele le pela ultima vez o log do dia anterior e gera um novo arquivo para o dia seguinte.No arquivo de configuração do sarg, existe a opção de gerar uma especie de base de dados para os relatórios. Ainda não testei nem implementei no código.
-
blz marcello, só uma ultima pergunta, eu ja estou com alguns relatórios aqui, só q estão meio bagunçado, tem como excluir isso nao??
abraços.
-
marcelloc, boa tarde.
Estou recebendo o seguinte erro ao tentar acessar o relatorio do sarg.
Error: Could not find report index file.
Check sarg settings and try to force sarg schedule.