centralizacja dzienników systemu Windows

możesz użyć narzędzi z tego artykułu do centralizacji dzienników zdarzeń systemu Windows z wielu serwerów i komputerów stacjonarnych. Prawidłowo zarządzając dziennikami, możesz śledzić kondycję swoich systemów, zabezpieczać pliki dzienników i filtrować zawartość, aby znaleźć określone informacje.

Po Co Centralizować Logi?

centralizacja dzienników oszczędza czas i zwiększa niezawodność danych dziennika. Gdy pliki dziennika systemu Windows są przechowywane lokalnie na każdym serwerze, musisz indywidualnie zalogować się do każdego z nich, aby przejść przez nie i szukać błędów lub ostrzeżeń. Jeśli serwer nie odpowiada, możesz mieć pecha. Jeśli nie masz pewności, które serwery są dotknięte, musisz przeszukać każdy z nich, co może zająć dużo czasu w dużych sieciach. Pliki dzienników są również bezpieczniejsze w centralnej lokalizacji, ponieważ nawet po zakończeniu instancji lub usunięciu plików (celowo lub nieumyślnie), nie ma to wpływu na scentralizowane kopie zapasowe dzienników.

subskrypcja zdarzeń systemu Windows

serwer systemu Windows może przekazywać swoje zdarzenia do serwera kolektora. W tym scenariuszu serwer kolektora staje się centralnym repozytorium logów systemu Windows z innych serwerów (zwanych źródłami zdarzeń) w sieci. Strumień zdarzeń od źródła do kolekcjonera nazywany jest abonamentem.

ta procedura pokazuje, jak ją skonfigurować. Te kroki działają w systemach Windows Server 2008 R2, Windows Server 2012 i Windows Server 2019.

przykładowy System

korzystamy z dwóch systemów Windows Server 2012 połączonych domeną Active Directory. Nazwa domeny to mytestdomain.com i obie maszyny są zarejestrowane w domenie.

serwer źródłowy MYTESTSQL obsługuje instancję SQL Server 2014. Serwer Kolekcjonerski MYTESTSERVER działa jako subskrybent dziennika zdarzeń, aby scentralizować wszystkie logi związane z serwerem SQL z MYTESTSQL.

Konfiguracja

Włącz usługę zdalnego zarządzania Windows

Zdalne zarządzanie Windows (WinRM) to protokół do wymiany informacji między systemami w infrastrukturze. Musisz włączyć go na każdym komputerze źródłowym, aby wymieniać pliki dziennika.

  1. zdalnie Zaloguj się do komputera źródłowego (MYTESTSQL) jako administrator lokalny lub domeny.
  2. Włącz usługę zdalnego zarządzania Windows z wiersza polecenia:
    winrm quickconfig

    jeśli jest już uruchomiona, zostanie wyświetlony komunikat podobny do tego przykładu.

Skonfiguruj usługę kolektora zdarzeń systemu Windows

musisz włączyć usługę kolektora zdarzeń systemu Windows na serwerze kolektorów, aby umożliwić jej odbieranie dzienników ze źródeł.

  1. zdalnie Zaloguj się do komputera kolektora (MYTESTSERVER) jako administrator lokalny lub domeny.
  2. Skonfiguruj usługę Windows Event Collector z wiersza polecenia:
    wecutil qcin

    jeśli zostanie wyświetlony monit, jak w przykładzie, Naciśnij y

Skonfiguruj grupę czytników dziennika zdarzeń

domyślnie niektóre dzienniki są ograniczone do administratorów. Może to powodować problemy podczas odbierania logów z innych systemów. Aby tego uniknąć, można przyznać dostęp do komputera kolektora, dodając go do grupy czytników dziennika zdarzeń.

  1. wróć do komputera źródłowego (MYTESTSQL).
  2. Otwórz Menedżera Serwera.
  3. Otwórz Zarządzanie Komputerem.
  4. rozwiń węzeł użytkownicy lokalni i grupy z panelu nawigacji i wybierz Grupy.
  5. Kliknij dwukrotnie czytniki dziennika zdarzeń.
  6. kliknij Dodaj, aby otworzyć okno dialogowe Wybierz użytkowników, Komputery, konta usług lub grupy.
  7. Kliknij Typy Obiektów.
  8. Sprawdź Komputery i kliknij OK.
  9. wprowadź MYTESTSERVER jako nazwę obiektu i kliknij Sprawdź nazwy. Jeśli konto komputera zostanie znalezione, zostanie potwierdzone podkreśleniem.
  10. Kliknij dwukrotnie OK, aby zamknąć okna dialogowe.

Skonfiguruj Zaporę systemu Windows

jeśli na komputerze źródłowym działa Zapora systemu Windows, upewnij się, że umożliwia zdalne zarządzanie dziennikami zdarzeń i zdalne monitorowanie ruchu zdarzeń.

Utwórz subskrypcję

subskrypcje definiują relację między kolektorem a źródłem. Można skonfigurować kolektor do odbierania zdarzeń z dowolnej liczby źródeł (subskrypcja inicjowana przez źródło) lub określić ograniczony zestaw źródeł (subskrypcja inicjowana przez kolektor). W tym przykładzie tworzymy subskrypcję zainicjowaną przez kolekcjonera, ponieważ wiemy, które logi komputerowe chcemy otrzymywać.

  1. Uruchom aplikację Event Viewer na serwerze kolekcjonerskim mytestserver.
  2. Wybierz subskrypcje z panelu nawigacji
  3. kliknij Utwórz subskrypcję w panelu Operacje.
  4. we właściwościach subskrypcji wprowadź następujące informacje, jak pokazano w przykładzie:
    Nazwa subskrypcji: MYTESTSQL_EVENTS
    opis: zdarzenia ze zdalnego serwera źródłowego mytestsql
    Dziennik miejsca docelowego: Przekazywane zdarzenia
    Wybierz kolektor zainicjowany i kliknij Wybierz komputery, aby otworzyć okno dialogowe Komputery.
  5. Kliknij Dodaj Komputery Domeny.
  6. wprowadź MYTESTSQL jako nazwę obiektu i kliknij Sprawdź nazwy. Jeśli komputer zostanie znaleziony, zostanie on potwierdzony podkreśleniem.
  7. kliknij OK.
  8. kliknij OK, aby powrócić do Właściwości subskrypcji.
  9. kliknij Wybierz zdarzenia, aby otworzyć filtr zapytań i wprowadź następujące, aby ustawić zdalny serwer, aby przesyłał wszystkie zdarzenia aplikacji z ostatnich 24 godzin:
    zalogowany: Ostatnie 24 godziny
    sprawdź wszystkie poziomy zdarzeń
    wybierz według dziennika
    dzienniki zdarzeń: wybierz aplikację z rozwijanej listy
  10. kliknij OK, aby powrócić do Właściwości subskrypcji.
  11. kliknij Zaawansowane, aby otworzyć Zaawansowane ustawienia subskrypcji i wprowadź następujące dane:
    wybierz konto Maszyny
    Wybierz Minimalizuj opóźnienie
    protokół: HTTP
    Port: 5985
  12. kliknij OK, aby powrócić do Właściwości subskrypcji.
  13. kliknij OK, aby zamknąć.

węzeł subskrypcji w przeglądarce zdarzeń komputera kolektora pokazuje teraz nową subskrypcję.

Sprawdź zdarzenia na komputerze kolektora

Wybierz przekierowane zdarzenia z panelu nawigacji na komputerze kolektora.

kolumna komputer w okienku SZCZEGÓŁY wskazuje, że zdarzenia pochodzą z komputera zdalnego MYTESTSQL.MYTESTDOMAIN.COM.możesz włączyć lub wyłączyć subskrypcję kolekcjonerską, klikając prawym przyciskiem myszy subskrypcję i wybierając Wyłącz. Status subskrypcji jest następnie wyświetlany jako Wyłączony w głównym oknie. Aktywna subskrypcja kolektora nie oznacza, że się powiedzie. Aby sprawdzić, czy kolektor może połączyć się ze źródłem, kliknij prawym przyciskiem myszy subskrypcję i wybierz status Runtime. W tym przykładzie kolektor nie może połączyć się ze źródłem. Domyślnie próbuje co pięć minut.

jeśli wszystko jest w porządku, stan środowiska wykonawczego subskrypcji pokazuje zielony znacznik z aktywnym statusem.

Tworzenie widoku niestandardowego (Opcjonalnie)

po przesłaniu zdarzeń można utworzyć widoki niestandardowe, aby zobaczyć skonsolidowane zdarzenia. Na przykład możesz utworzyć niestandardowy widok zdarzeń błędów. Ten przykład tworzy własny widok dla wiadomości związanych z serwerem SQL. Komputer Kolekcjonerski może hostować tysiące rekordów z dziesiątek serwerów. Korzystanie z widoku niestandardowego umożliwia tworzenie porządku z nadmiaru informacji. Szczegółowe kroki znajdują się w sekcji Tworzenie niestandardowego widoku W Podstawy logowania systemu Windows.

usługi rejestrowania systemu Windows

istnieje kilka usług systemu Windows, których można użyć do scentralizowania wszystkich danych rejestrowania do zewnętrznej usługi rejestrowania. Usługi te wysyłają dzienniki przez syslog do wieloplatformowego serwera dziennika lub usługi rejestrowania w chmurze, takiej jak SolarWinds® Loggly®.

polecamy NXLog, popularną, darmową usługę do pobrania, która działa w tle. Alternatywnie, istnieją syslog-ng i Snare, które są usługami, które zbierają pliki dziennika. Wszystkie te usługi zapewniają dodatkowe profesjonalne wsparcie za opłatą.

zainstaluj NXLog

ten przykład instaluje i konfiguruje NXlog do pakowania plików dziennika.

Pobierz i zainstaluj aktualną wersję NXlog. Pobieranie zawiera intuicyjny instalator. Po zakończeniu instalacji otwórz plik konfiguracyjny. Domyślnie plik konfiguracyjny NXLog znajduje się na C:/Program pliki (x86)/nxlog/conf / nxlog.conf

możesz tworzyć różne typy modułów konfiguracyjnych.

  • wejścia dla źródła Twoich dzienników
  • wyjścia do wysyłania dzienników
  • trasy mapowania wejść do wyjść

za każdym razem, gdy wprowadzasz zmiany w pliku konfiguracyjnym NXlog, musisz ponownie uruchomić usługę NXlog.

Konfiguracja NXLog

ten przykład modyfikuje plik konfiguracyjny NXLog, aby scentralizować dzienniki zdarzeń systemu Windows. Dodanie poniższego fragmentu kodu na końcu nxlog.plik conf włącza moduł i nadaje mu nazwę „eventlog”. Moduł wejściowy im_msvistalog wysyła nowe wpisy do dziennika zdarzeń systemu Windows, w tym zdarzenia systemowe, sprzętowe, aplikacyjne i związane z bezpieczeństwem.

# Windows Event Log<Input eventlog># Uncomment im_msvistalog for Windows Vista/2008 and laterModule im_msvistalog# Uncomment im_mseventlog for Windows XP/2000/2003# Module im_mseventlog# If you prefer to send events as JSON dataExec $Message = to_json();</Input>

dzienniki plików

NXLog może być używany do odczytu plików dzienników zapisanych na dysku. W tym przykładzie nazwa pliku to FILE1. SavePos TRUE oznacza, że NXLog będzie śledził swoją bieżącą lokalizację w pliku dziennika przy wyjściu. Exec $Message = $ raw_event oznacza, że NXLog pobierze surową wiadomość dziennika bez stosowania dodatkowego formatowania. Nazwa pliku może również zawierać katalogi lub dzikie karty.

<Input FILE1>Module im_fileFile "FILE1"SavePos TRUEExec $Message = $raw_event;</Input>

dzienniki usług IIS

jak omówiliśmy w sekcji podstawy logowania systemu Windows, dzienniki usług IIS zawierają dzienniki dostępu zapisane w formacie W3C. Zalecamy przekonwertowanie ich na format JSON w celu łatwego przetwarzania za pomocą narzędzia do zarządzania dziennikami. Nxlog może wykonać tę konwersję za pomocą rozszerzenia W3C. Upewnij się, że używasz odpowiedniego formatu w pliku konfiguracyjnym, aby parsowanie odbywało się poprawnie i włączałeś pliki dziennika ze wszystkich witryn.

<Extension w3c>Module xm_csvFields $date, $time, $s-ip, $cs-method, $cs-uri-stem, $cs-uri-query, $s-port, $cs-username, $c-ip, $csUser-Agent, $cs-Referer, $sc-status, $sc-substatus, $sc-win32-status, $time-takenFieldTypes string, string, string, string, string, string, integer, string, string, string, string, integer, integer, integer, integerDelimiter ' 'QuoteChar '"'EscapeControl FALSEUndefValue -</Extension># Convert the IIS logs to JSON and use the original event time<Input IIS_Site1>Module im_fileFile "C:/inetpub/logs/LogFiles/W3SVC1/u_ex*"SavePos TRUEExec if $raw_event =~ /^#/ drop();else{w3c->parse_csv();$SourceName = "IIS";$Message = to_json();}</Input>

dzienniki błędów SQL Server

SQL Server to flagowa Platforma bazodanowa firmy Microsoft klasy korporacyjnej. Jest dostępny w pakiecie narzędzi bazodanowych i hurtowni danych. SQL Server zazwyczaj ma własne dzienniki zapisane w katalogu instalacyjnym aplikacji w systemie plików Windows. Domyślna lokalizacja dla SQL Server 2012 to C:/Program Files / Microsoft SQL Server / MSSQL11.MSSQLSERVER/MSSQL / Log. Wpisy dziennika są również wysyłane do dziennika zdarzeń aplikacji Windows.

operacje na serwerze SQL, takie jak tworzenie kopii zapasowych i przywracanie, limity czasu zapytań lub wolne wejścia/wyjścia są zatem łatwe do znalezienia w dzienniku zdarzeń aplikacji systemu Windows, podczas gdy wiadomości związane z bezpieczeństwem, takie jak nieudane próby logowania, są rejestrowane w dzienniku zdarzeń systemu Windows.

przekazywanie dzienników na serwer

NXLog może przekazywać dzienniki z dowolnego z opisanych powyżej wejść do zewnętrznego miejsca docelowego, takiego jak serwer dziennika lub usługa zarządzania dziennikami oparta na chmurze. Aby to zrobić, NXLog używa pojęć zwanych wyjściami i trasami. Wyjścia są modułami, które zapewniają funkcjonalność wysyłania dzienników do miejsca docelowego, takiego jak plik lub zdalny serwer. Trasy są ścieżkami, które wiadomość dziennika przyjmuje od wejścia (takiego jak moduł im_msvistalog) do wyjścia (takiego jak usługa zarządzania dziennikami).

aby przesłać logi, Dodaj moduł wyjściowy w swoim nxlog.plik konfiguracyjny conf. Następnie Dodaj moduł trasy, aby wysłać logi z wybranych wejść do wybranych wyjść. W tym przykładzie, wysyłamy logi jako syslog przez TCP do nazwy hosta przez domyślny port syslog 514. Tworzymy trasę, która pobiera logi z wejścia eventlog i wysyła je do nowego wyjścia (nazwanego):

<Output out>Module om_tcpHost HOSTNAMEPort 514</Output><Route 1>Path eventlog => out</Route>

kilka rozwiązań do zarządzania logami oferuje szczegółowe instrukcje konfiguracji rejestrowania systemu Windows. Loggly jest przykładem jednego dostawcy i zawiera bardziej szczegółowe informacje na temat konfigurowania NXLog do zbierania plików dziennika w przewodniku, Logowanie z systemu Windows.

Szyfrowanie dzienników za pomocą TLS

domyślnie dzienniki wysyłane przez Internet są przesyłane w jasnym tekście. Oznacza to, że osoby szpiegujące mogą przechwytywać i przeglądać dane dziennika. Najlepiej jest szyfrować dane dziennika, gdy są przesyłane, zwłaszcza jeśli zawierają poufne informacje, takie jak dane identyfikacyjne, dane regulowane przez rząd lub informacje finansowe. Najpopularniejszym protokołem szyfrowania komunikacji syslog jest TLS, czyli Transport Layer Security.

TLS szyfruje dzienniki, zapobiegając szpiegowaniu poufnych danych w dziennikach. Najlepszą praktyką nie jest rejestrowanie informacji, takich jak hasła, ale niektóre aplikacje robią to i tak. Szyfrowanie TLS pomaga chronić te dane. Szyfrowanie zapobiega odczytywaniu lub modyfikowaniu danych dziennika przez złośliwe strony znajdujące się między źródłami dziennika a miejscami docelowymi.

oto przykład konfigurowania konfiguracji NXLog z szyfrowaniem TLS dla Loggly.

  1. Pobierz certyfikat cyfrowy Loggly ze strony konfiguracji TLS NXLog.
  2. skopiuj plik certyfikatu cyfrowego do katalogu nxlog cert:
    skopiuj loggly_full.crt C:/Program pliki * / nxlog / cert
  3. Skonfiguruj moduł wyjściowy z om_ssl i lokalizacją certyfikatu. Domyślny port syslog dla zaszyfrowanych logów to 6514. AllowUntrusted FALSE uniemożliwia połączenie z serwerem, jeśli certyfikat jest niezaufany lub podpisany samodzielnie:
    <Output out>Module om_sslHost server.example.comPort 6514CAFile %CERTDIR%/example.crtAllowUntrusted FALSE<Output>



+