segunda-feira, 26 de janeiro de 2015
Empregar Powershell na análise de logs
Em um mundo perfeito teríamos sempre o ID da correlação, a data e o horário de um erro que facilitaria a análise de um determinado comportamento, porém a maioria dos erros de sistemas de informação tem origem em condições inesperadas pelos desenvolvedores.
Nesses casos, utilizamos logs, dumps e demais dados que foram capturados sobre esses eventos para descobrir a causa raiz do problema. A análise desses dados leva tempo, principalmente em sistemas distribuídos. O Powershell pode ajudar na filtragem dos logs, desde que você saiba o que está procurando.
SharePoint gera arquivos de logs do tipo "ULS" (Unified Logging System) a cada 30 minutos em todos os servidores no Farm com eventos categorizados por horário, severidade, processo, correlação, mensagem do evento, entre outros.
Aqui podemos empregar Powershell na análise - suponhamos que temos uma pasta x com n logs do SharePoint, a execução do script abaixo filtrará o conteúdo a partir da palavra chave definida:
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
## lugar dos logs.
$childs = get-childitem "C:\temp\logs
## o caminho dos logs
$logs = $childs.FullName
foreach ($log in $logs)
{
## a palavra chave, nesse caso acesso negado (0x80070005)
$content = Get-Content $log | ? { $_ -LIKE "*0x80070005*" }
## o log filtrado
add-content -path "C:\filtered.log" $content
}
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Obs.: O loop é necessário para não esgotar a memória do sistema.
Get-ChildItem
Get-Content
Assinar:
Postagens (Atom)