Como eu iria sobre como fazer backup do log de aplicação do Windows em um intervalo regular?
-
22-08-2019 - |
Pergunta
Eu estou trabalhando com um aplicativo que toras para o Windows Application Log regularmente (visíveis através da ferramenta administrativa Visualizador de eventos), e eu estou procurando uma maneira de guardá-lo em uma base diária. Isto é importante porque, por vezes, descobrir um problema com a aplicação - e continuar a investigar informações que precisamos que foi registrado há uma semana. Os acontecimentos que estamos procurando não são necessariamente ainda ao redor ... Eu tentei aumentar o tamanho e tudo isso, mas eu acho que um backup automatizado facilitaria o processo. Nós não iria acabar com enormes troncos, mas sim, vários logs moderadamente porte.
eu preferem uma solução simples como arquivo de lote + do Windows Scheduler, mas também estaria interessado em outras abordagens.
Graças
Solução
Aqui está um script WMI que eu achei um tempo atrás. Este poderia ser o que você está procurando!
dim strComputer = "." 'Define here the Remote IP Address or Computername
dim objWMIService
dim colLogFiles
dim objLogfile
dim errBackupLog
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate,(Backup)}!\\" & strComputer & "\root\cimv2")
Call eventlogbackup("Application")
Call eventlogbackup("System")
Call eventlogbackup("Security")
Function eventlogbackup(logtype)
Set colLogFiles = objWMIService.ExecQuery ("SELECT * FROM Win32_NTEventLogFile WHERE LogFileName='" & logtype & "'")
For Each objLogfile in colLogFiles
errBackupLog = objLogFile.BackupEventLog("\\server\eventlogs\" & strComputer & "\" &logtype & ".evt")
If errBackupLog <> 0 Then
Wscript.Echo "The " & logtype &" event log could not be backed up."
Else
objLogFile.ClearEventLog()
Wscript.Echo "The " & logtype &" event log is backed up."
End If
Next
End Function
Apenas set-up este script em uma tarefa agendada e você está pronto para ir!
Outras dicas
Você pode usar o Windows Management Instrumentation (WMI) para ler o log de eventos e fazer o que quiser com o resultado. Aqui está um artigo que você pode ser capaz de ajustar a seus propósitos.
Saída todos os eventos no canal de Aplicação, para XML:
wevtutil.exe qe application
Para a saída de texto legível, use:
wevtutil.exe qe application /f:text
Você poderia facilmente tubo de qualquer uma destas saídas para um arquivo periodicamente para backup.
Você pode querer considerar a criação de uma das ferramentas para encaminhar eventos do Windows para um servidor syslog. Então, em vez de ter que executar um processo que faz o backup que você vai ter todas as entradas de log encaminhados para um segundo local quase ao mesmo tempo eles são adicionados ao log de eventos do Windows.
http://ntsyslog.sourceforge.net/ http://edoceo.com/creo/winlogd http://www.softpanorama.org/Logs/Syslog/syslog_for_windows.shtml
Dependendo do que servidor syslog você usa você pode filtros de configuração para ignorar alguns eventos ou enviá-los para diferentes arquivos. Você pode log configuração rolando no entanto você gosta.