Zentrale und automatisierte Bereitstellung aller Windows Logfiles
Hallo
vielleicht kann mir ja jemand weiterhelfen.
Ich suche eine Möglichkeit, ein Tool oder irgendetwas, mit dem ich automatisiert alle Windows-Server Logfiles zentral der Geschäftsführung zur Verfügung stellen kann.
Da die Jungs ein normales File nicht auslesen können und ich vielleicht auch noch Dinge filtern können muß wäre es ganz gut, wenn das Tool die Daten etwas aufbereitet und z.B als HTML-Seite darstellt.
Jedenfalls sollte ein normaler Nutzer an den Daten auch etwas erkennen können
Wenn ihr mir helfen könnt, wäre ich sehr dankbar und wenn ihr konkrete Fragen habt beantworte ich dies natürlich gerne.
Hilft mir ja im endeffekt weiter )
Gruß
vielleicht kann mir ja jemand weiterhelfen.
Ich suche eine Möglichkeit, ein Tool oder irgendetwas, mit dem ich automatisiert alle Windows-Server Logfiles zentral der Geschäftsführung zur Verfügung stellen kann.
Da die Jungs ein normales File nicht auslesen können und ich vielleicht auch noch Dinge filtern können muß wäre es ganz gut, wenn das Tool die Daten etwas aufbereitet und z.B als HTML-Seite darstellt.
Jedenfalls sollte ein normaler Nutzer an den Daten auch etwas erkennen können
Wenn ihr mir helfen könnt, wäre ich sehr dankbar und wenn ihr konkrete Fragen habt beantworte ich dies natürlich gerne.
Hilft mir ja im endeffekt weiter )
Gruß
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 63157
Url: https://administrator.de/contentid/63157
Ausgedruckt am: 05.11.2024 um 20:11 Uhr
6 Kommentare
Neuester Kommentar
Hi,
hier das Script, einfach kopieren und als read.vbs speichern. In den ersten paar Zeilen bitte die Einstellungen abändern. Aufruf über cmd oder Batch Datei mittels: "read.vbs Servername"
MfG
Phil
hier das Script, einfach kopieren und als read.vbs speichern. In den ersten paar Zeilen bitte die Einstellungen abändern. Aufruf über cmd oder Batch Datei mittels: "read.vbs Servername"
'--------------------------------------------------Settings-------------------------------------------------
'Gibt die Maximale Anzahl der zurückgelieferten Einträge an
'Werte für System Log
maxwert = 50
'Werte für Application Log
maxwert2 = 25
'gibt an wieviele Tage zurück gegangen werden soll
zeitsp = 7
'Email Settings
absender = "absender@domain.de"
mailserver = "mailserver.domain.de"
empfanger = "empfanger@domain.de"
'--------------------------------------------Settings End---------------------------------------------------
Set oArg = wscript.arguments
strServer = oArg(0)
mail = ""
mail2 = ""
ifertig = "False"
i2fertig = "False"
if isOnline(strServer) Then
Set objWMI = GetObject("winmgmts://" & strServer & "/root\cimv2")
Set objInstances = objWMI.ExecQuery ("Select * from Win32_NTLogEvent WHERE Logfile = 'System' and EventType = 1")
Set objInstances2 = objWMI.ExecQuery ("Select * from Win32_NTLogEvent WHERE Logfile = 'Application' and EventType = 1")
dim f
Else
wscript.quit
End if
mail = "<h1>System Events:</h1><br><TABLE Border=1>" & chr(13)
mail = mail & "<Tr>" & chr(13)
mail = mail & "<TD>ComputerName</TD>"& chr(13)
mail = mail & "<TD>EventCode</TD>"& chr(13)
mail = mail & "<TD>Message</TD>"& chr(13)
mail = mail & "<TD>SourceName </TD>"& chr(13)
mail = mail & "<TD>TimeGenerated </TD>"& chr(13)
mail = mail & "</TR>"& chr(13)
mail2 = "<br><h1>Application Events:</h1><br><TABLE border=1>" & chr(13)
mail2 = mail2 & "<Tr>" & chr(13)
mail2 = mail2 & "<TD>ComputerName</TD>"& chr(13)
mail2 = mail2 & "<TD>EventCode</TD>"& chr(13)
mail2 = mail2 & "<TD>Message</TD>"& chr(13)
mail2 = mail2 & "<TD>SourceName</TD>"& chr(13)
mail2 = mail2 & "<TD>TimeGenerated </TD>"& chr(13)
mail2 = mail2 & "</TR>"& chr(13)
dat = now() - zeitsp
i = 0
i2 = 0
For Each objInstance in objInstances
dat1 = objInstance.TimeGenerated
dat1 = dConvertWMItoVBSDate(dat1)
if i < maxwert and dat1 > dat Then
With objInstance
mail = mail & "<Tr>"& chr(13)
mail = mail & "<TD>" & .ComputerName & "</TD>"& chr(13)
mail = mail & "<TD>" & .EventCode & "</TD>"& chr(13)
mail = mail & "<TD>" & .Message & "</TD>"& chr(13)
mail = mail & "<TD>" & .SourceName & "</TD>"& chr(13)
mail = mail & "<TD>" & dConvertWMItoVBSDate(.TimeGenerated) & "</TD>"& chr(13)
mail = mail & "</TR>"& chr(13)
i = i +1
End With
On Error Goto 0
Elseif i > maxwert Then
ifertig="True"
exit for
Elseif dat1 < dat Then
ifertig="True"
exit for
end if
Next
For Each objInstance in objInstances2
dat1 = objInstance.TimeGenerated
dat1 = dConvertWMItoVBSDate(dat1)
if i2< maxwert2 and dat1 > dat Then
With objInstance
mail2 = mail2 & "<Tr>"& chr(13)
mail2 = mail2 & "<TD>" & .ComputerName & "</TD>"& chr(13)
mail2 = mail2 & "<TD>" & .EventCode & "</TD>"& chr(13)
mail2 = mail2 & "<TD>" & .Message & "</TD>"& chr(13)
mail2 = mail2 & "<TD>" & .SourceName & "</TD>"& chr(13)
mail2 = mail2 & "<TD>" & dConvertWMItoVBSDate(.TimeGenerated) & "</TD>"& chr(13)
mail2 = mail2 & "</TR>" & chr(13)
i2 = i2 +1
End With
On Error Goto 0
elseif i2 > maxwert2 Then
i2fertig = "True"
exit for
elseif dat1 < dat Then
ifertig="True"
exit for
End if
Next
mail = mail & "</Table>"& chr(13)
mail2 = mail2 & "</Table>"& chr(13)
Set objEmail = CreateObject("CDO.Message")
objEmail.From = absender
objEmail.To = empfanger
objEmail.Subject = "Logwatch " & strserver & " - System Items: " & i & " Application Items: " & i2
objEmail.HTMLbody = "<HTML><Body>" & mail & "<br>" & mail2 & "</body></html>"
objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = mailserver
objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
objEmail.Configuration.Fields.Update
objEmail.Send
wscript.quit
function IsOnline(host)
set WshShell = CreateObject("Wscript.Shell")
set temp = wshshell.Exec ("ping.exe -n 1 -w 100 "&host)
dummy = temp.StdOut.ReadAll
IF instr(1,dummy,"Antwort") >0 THEN
isonline = true
ELSE
isonline = false
END IF
end Function
Private Function dConvertWMItoVBSDate(sDate)
Dim sMonth, sDay, sYear, sHour, sMinutes, sSeconds
sMonth = Mid(sDate,5,2)
sDay = Mid(sDate,7,2)
sYear = Mid(sDate,1,4)
sHour = Mid(sDate,9,2)
sMinutes = Mid(sDate,11,2)
sSeconds = Mid(sDate,13,2)
dConvertWMItoVBSDate = DateSerial (sYear, sMonth, sDay) + TimeSerial (sHour, sMinutes, sSeconds)
End Function
MfG
Phil
Hi,
also zuerst kommen die Settings die du für deine Umgebung anpassen mußt. Am restlichen Script mußt du nichts mehr ändern.
Das script rufst du über script.vbs PCName auf. Das Script verbindet sich dann mit dem PC und liest das System und das Application Log aus. Das Script stopt bei 2 Dingen, erstens wenn der Maxwert erreicht ist die du in den Settings einstellst oder wenn der Eintrag älter als 7 Tage ist (auch das stellst du unter Settings ein).
Das script läuft ganz grob so ab:
- Prüft ob Rechner online ist
- Verbindet sich mit dem Eventlog des Rechners
- Es werden alle Items des System Logs ausgelesen und nach oben erklärtem Filter behandelt
- Es werden alle Items des Application Logs ausgelesen und nach oben erklärtem Filter behandelt
- Für jedes Item das auf die Filter passt wird eine Zeile einer HTML Tabelle geschrieben
- Alle geschriebenen Zeilen werden in eine HTML Datei eingefügt
- Die HTML Datei wird per Mail mit den Mail Einstellungen aus der Settings Sektion verschickt
MfG
Phil
also zuerst kommen die Settings die du für deine Umgebung anpassen mußt. Am restlichen Script mußt du nichts mehr ändern.
Das script rufst du über script.vbs PCName auf. Das Script verbindet sich dann mit dem PC und liest das System und das Application Log aus. Das Script stopt bei 2 Dingen, erstens wenn der Maxwert erreicht ist die du in den Settings einstellst oder wenn der Eintrag älter als 7 Tage ist (auch das stellst du unter Settings ein).
Das script läuft ganz grob so ab:
- Prüft ob Rechner online ist
- Verbindet sich mit dem Eventlog des Rechners
- Es werden alle Items des System Logs ausgelesen und nach oben erklärtem Filter behandelt
- Es werden alle Items des Application Logs ausgelesen und nach oben erklärtem Filter behandelt
- Für jedes Item das auf die Filter passt wird eine Zeile einer HTML Tabelle geschrieben
- Alle geschriebenen Zeilen werden in eine HTML Datei eingefügt
- Die HTML Datei wird per Mail mit den Mail Einstellungen aus der Settings Sektion verschickt
MfG
Phil