quarta-feira, 17 de março de 2010

Relatórios de Acesso do ISA Server com o SARG

Boa tarde!

Atualização 02/01/2012: A solução funciona perfeitamente com o TMG 2010.

Bom, estou colocando esse post mais para eu mesmo não mais esquecer... Já havia implementado essa solução tempos atrás mas não documentei. Hoje fiquei puto da cara pois tive que refazer alguns testes até ficar tudo ok, ou seja, perdi tempo.

Em fim. Meu objetivo aqui é mostrar como posso gerar logs de acesso à WEB pelo proxy do ISA Server 2004/2006 (Outras versões não testei).

Por que?
Simplesmente porque o ISA Server é muito pobre na questão de relatórios. Nativamente conseguimos apenas gerar um Report com os 10 usuários que mais acessaram determinados protocolos e tal. Claro! Ele permite que guardamos os logs em banco de dados (adivinha qual? SQLServer) e isso possibilitaria fazermos uma ferramenta que consulte esse banco e nos monte um relatório descente. Porém isso demanda tempo e trabalho.
Como muito admins não têm tempo sobrando para isso, a Microsoft tem uma série de partners que disponibilizam uma ferramentinha prontinha para isso. Viu como é esse meio do Software Proprietário? E os preços dessas ferramentinhas não é nada amigável.

Em fim. Como já estudei TUDO relacionado ao ISA Server na época que me certifiquei na versão 2006, lembrei-me que ele tem uma forma de gerar logs em padrão aberto (W3C). Perfeito!! Se ele consegue gerar logs assim eu consigo manipulá-lo.

E depois?
Bom, a menos que eu esteja completamente maluco, jamais cairia nesse golpe comercial comprando uma ferramenta que faz algo tão simples: Gerar relatórios de acesso Web. Falando desse assunto, ninguém melhor que o SARG (Squid Analyst Report Generator). Há quem diga que o MySAR é melhor, mas o testei e só achei uma vantagem em relação ao SARG, que salvar os dados em Banco de Dados. Tirando isso o SARG tem muito mais recurso, é bem mais flexível e maduro. Contudo respeito outras opiniões.

Bom como o próprio nome já diz, o SARG foi feito para ler logs do squid (normalmente o access,log).

Raciocínio!
- Tenho um ótimo gerador de logs, que simplesmente lê o access.log e faz um relatório bem bonitinho.
- Tenho acesso ao access.log, logo sei de tudo que o SARG precisa ou não.
- Tenho acesso ao arquivo W3C do ISA Server, logo posso comparar com o access.log e deixá-los mais parecidos possível.
- Vou ajustando, testando, ajustando, testando até funcionar.

O grande segredo!
Bom, o grande segredo dessa mágina está na forma de gerar o Log do ISA Server. O arquivo w3c nativo tráz uma porrada de informação que acho que somente o ISA sabe para que servem. O segredo é ajustarmos para ele gerar logs somente com a informação necessária ao SARG.

Mas como?
Serei bem breve, pois quem deseja fazer essa loucura pressuponho que já saiba mexer no ISA Server.
Acesse a sessão "Monitoring", depois clique em "Configure Web Proxy Logging" no Painel de Tarefas.
Na janelinha que abrirá escolha "File" e "W3C extended log file format". Em "Options" defina a pasta dos logs, rotações, etc.
Depois dessa maracutaia vá para a aba "Fields" e desmarque uma porrada de opções.
Tem que ficar apenas as seguintes:
- Client IP;
- Client Username;
- Log Date;
- Log Time;
- Destination Host Name;
- Destination IP;
- Processing Time;
- Bytes Received;
- Bytes Sent;
- Protocol;
- HTTP Method;
- URL;
- HTTP Status Code.

Feito isso dê um ok em tudo que for janela do Windows, aplique as configurações do ISA Server e já pode testar os logs com o SARG.

FAQ:
P: Como passar o arquivo de log do ISA Server para o servidor Linux?
R: Ótima pergunta. Primeiro o lugar do SARG é no Linux. Tem versão Windows tenho minhas dúvidas. Seria como rodar um Internet Explorer no Linux! hehehe Para transferir o arquivo de um jeito.

P: Meu ISA é em português. Quais os nomes dos campos?
R: Você é completamente maluco!!!

P: É só isso?
R: Dessa forma vai funcionar, mas se você for uma pessoa criteriosa vai ver que da para fazer MUITAS melhorias nos relatórios simplesmente com uma configuração bem feita do sarg.conf.

Agora nunca mais vou esquecer!!! hehehehe

Referência sobre campos dos Arquivos de Log do Squid:
http://wiki.squid-cache.org/SquidFaq/SquidLogs

Abraço!

Nenhum comentário:

Postar um comentário