Logparser – logi z wielu serwer贸w do excela i prosto na biurko
Przegl膮danie dziennika zdarze艅 (eventlog) z jednego serwera nie jest problemem, trzeba tylko o tym pami臋ta膰 i od czasu do czasu zajrze膰 do dziennika zdarze艅. Jednak zwykle nie interesuj膮 nas informacje o pomy艣lnych wydrukach czy te偶 o tym, 偶e komu艣 uda艂o si臋 pomy艣lnie zalogowa膰. Jeszcze gorzej gdy powinni艣my przejrze膰 zdarzenia z kilku albo kilkunastu serwer贸w. Co zrobi膰 z dziennik贸w zdarze艅 wyci膮gn膮膰 te najbardziej interesuj膮ce administratora tak by m贸g艂 je sobie przejrze膰 przy porannej kawie?
Skorzystamy tutaj z dw贸ch darmowych narz臋dzi logparser (firmy Microsoft) i smtpsend (DataEnter). Pierwsze z nich聽pos艂u偶y do wy艂uskania zdarze艅 z plik贸w dziennika i wpisania do pliku CSV (cho膰 narz臋dzie pozwala te偶 na zasilanie zdarzeniami bazy danych czy syslog), drugie za艣 b臋dzie z tego pliku robi艂o za艂膮cznik do maila i wysy艂a艂o poczt膮 elektroniczn膮. Napiszemy te偶 samodzielnie do艣膰 prymitywne narz臋dzie (czyli plik batch), kt贸re dodamy do zaplanowanych zada艅 (scheduled tasks) by uruchamia艂o si臋 co rano. Dla wygody list臋 serwer贸w b臋dziemy trzyma膰 w oddzielnym pliku聽 serwery.txt. Dzi臋ki temu 艂atwe b臋dzie dodawanie i zmiany w tej liscie. Plik zawiera艂 b臋dzie nazw臋 serwera i typ log贸w np:
mars, System
mars,Applicaton
jowisz,System
neptun,System
Na pocz膮tku sprz膮tanie czyli usuwanie starego za艂膮cznika. Jako pierwsza w naszym pliku znajdzie si臋 wi臋c linia
del d:\logparser\evt-24.csv /q
Skoro ju偶 posprz膮tali艣my to pora na p臋tl臋 odczytuj膮c膮 list臋 log贸w do przerobienia:
for /f “tokens=1,2 delims=, ” %%1 in (d:\logparser\serwery.txt) do
pora na kolejn膮 lini臋聽 czyli w艂a艣ciwe polecenie:
@logparser -i:EVT “SELECT TimeGenerated, EventID, EventType, EventTypeName, EventCategory, EventCategoryName, SourceName, Strings, ComputerName, SID, Message FROM \\%%1\%%2 WHERE TimeGenerated > TO_TIMESTAMP(SUB(TO_INT(SYSTEM_TIMESTAMP()),86400)) AND EventType IN (1;2) ORDER BY TimeGenerated DESC” -o:CSV -q:ON -stats:OFF >> d:\logparser\evt-24.csv
Zmienne %%1 i %%2聽 zostan膮 w trakcie wykonania przetworzone na 艣cie偶k臋 do logu (czyli np. \\mars\System), za艣 jak wida膰 sk艂adnia samego logparsera przypomina troch臋 SQL. Pojawiaj膮 si臋 klauzule SELECT, FROM, WHERE. Je艣li zauwa偶ymy,聽偶e doba ma 86400 sekund, to ju偶 bez trudu si臋 domy艣limy, 偶e聽to聽dziwne zakl臋cie zaczynaj臋ce si臋 od TO_TIMESTAMP… odpowiada za wybieranie wiadomo艣ci z ostatnich 24 godzin (je艣li chcieliby艣my w ten spos贸b przetworzy膰 logi z ostatniej godziny wystarczy wpisa膰 liczb臋 3600). Warto艣ci 1 i 2 dla EventType odpowiadaj膮 za ostrze偶enia (warning) i b艂臋dy (error), dalej wybieramy sortowanie po czasie utworzenia wpisu i wskazujemy jako wyj艣cie format CSV. Dwie strza艂ki w prawo (>>) powoduj膮 dopisanie wyniku do pliku o wskazanej nazwie (jedna powodowa艂aby jego nadpisanie)
聽Skoro plik CSV zosta艂 ju偶 utworzony, pora na jego wys艂anie za pomoc膮 komendy:
smtpsend -fevtlogmonitor@naszadomena.pl -tadmin1@naszadomena.pl -tadmin2@naszadomena.pl -hNaszSerwer.SMTP.domena.pl -slog -aevt-24.csv -luloginSMTP -lphasloSMTP
聽Jeszcze tylko pozostaje zaplanowa膰 zadanie uruchamiaj膮ce聽co rano nasz plik batch i teraz ju偶 wystarczy otworzy膰 za艂膮cznik pod excelem, za艂o偶y膰 autofiltr i ju偶 mo偶emy 艂atwo przegl膮da膰 logi na wszystkie sposoby i 偶adne istotne wydarzenie nie ujdzie naszej uwagi.
wydrukuj

