Udostępnij za pośrednictwem


Monitorowanie zaplanowanych zdarzeń dla maszyn wirtualnych z systemem Windows

Dotyczy: maszyny wirtualne z systemem Windows — elastyczne zestawy ✔️ ✔️ skalowania zestawów ✔️ skalowania

Aktualizacje są stosowane do różnych części platformy Azure każdego dnia, aby zapewnić bezpieczeństwo i aktualność usług. Oprócz planowanych aktualizacji mogą również wystąpić nieplanowane zdarzenia. Jeśli na przykład zostanie wykryta awaria sprzętu lub awaria, usługi platformy Azure mogą wymagać nieplanowanej konserwacji. Korzystanie z migracji na żywo, zachowywanie aktualizacji pamięci i utrzymywanie ścisłego limitu wpływu aktualizacji, pozwala na niemal przezroczystość tych zdarzeń dla klientów. Co najwyżej może to spowodować zablokowanie kilku sekund maszyn wirtualnych. Jednak w przypadku niektórych aplikacji nawet kilka sekund zamrożenia maszyny wirtualnej może mieć wpływ. Wiedza z wyprzedzeniem na temat nadchodzącej konserwacji platformy Azure jest ważna, aby zapewnić najlepsze środowisko dla tych aplikacji. Usługa Zaplanowane zdarzenia udostępnia interfejs programowy, który ma być powiadamiany o nadchodzącej konserwacji i umożliwia bezproblemowe obsługę konserwacji.

W tym artykule pokazano, jak za pomocą zaplanowanych zdarzeń otrzymywać powiadomienia o zdarzeniach konserwacji, które mogą mieć wpływ na maszyny wirtualne i utworzyć podstawową automatyzację, która może pomóc w monitorowaniu i analizie.

Routing zaplanowanych zdarzeń do usługi Log Analytics

Zaplanowane zdarzenia są dostępne w ramach usługi Azure Instance Metadata Service, która jest dostępna na każdej maszynie wirtualnej platformy Azure. Klienci mogą zapisywać automatyzację w celu wykonywania zapytań dotyczących punktu końcowego maszyn wirtualnych, aby znaleźć powiadomienia o zaplanowanej konserwacji i wykonać środki zaradcze, takie jak zapisywanie stanu i poza rotacją maszyny wirtualnej. Zalecamy utworzenie automatyzacji w celu zarejestrowania zaplanowanych zdarzeń, aby można było mieć dziennik inspekcji zdarzeń konserwacji platformy Azure.

W tym artykule przedstawiono sposób przechwytywania zaplanowanych zdarzeń konserwacji w usłudze Log Analytics. Następnie wyzwalamy kilka podstawowych akcji powiadomień, takich jak wysyłanie wiadomości e-mail do zespołu i uzyskiwanie historycznego widoku wszystkich zdarzeń, które miały wpływ na maszyny wirtualne. W przypadku agregacji zdarzeń i automatyzacji używamy usługi Log Analytics, ale możesz użyć dowolnego rozwiązania do monitorowania, aby zebrać te dzienniki i automatyzację wyzwalacza.

Diagram przedstawiający cykl życia zdarzenia

Wymagania wstępne

W tym przykładzie należy utworzyć maszynę wirtualną z systemem Windows w zestawie dostępności. Zdarzenia zaplanowane udostępniają powiadomienia o zmianach, które mogą mieć wpływ na dowolną maszynę wirtualną w zestawie dostępności, usłudze w chmurze, zestawie skalowania maszyn wirtualnych lub autonomicznych maszynach wirtualnych. Usługa jest uruchamiana, która sonduje zaplanowane zdarzenia na jednej z maszyn wirtualnych, które działają jako moduł zbierający, aby pobierać zdarzenia dla wszystkich innych maszyn wirtualnych w zestawie dostępności.

Nie usuwaj grupy zasobów na końcu samouczka.

Należy również utworzyć obszar roboczy usługi Log Analytics używany do agregowania informacji z maszyn wirtualnych w zestawie dostępności.

Konfigurowanie środowiska

W zestawie dostępności powinno być teraz 2 początkowe maszyny wirtualne. Teraz musimy utworzyć maszynę wirtualną o nazwie myCollectorVM, w tym samym zestawie dostępności.

New-AzVm `
   -ResourceGroupName "myResourceGroupAvailability" `
   -Name "myCollectorVM" `
   -Location "East US" `
   -VirtualNetworkName "myVnet" `
   -SubnetName "mySubnet" `
   -SecurityGroupName "myNetworkSecurityGroup" `
   -OpenPorts 3389 `
   -PublicIpAddressName "myPublicIpAddress3" `
   -AvailabilitySetName "myAvailabilitySet" `
   -Credential $cred
  1. Pobierz plik .zip instalacji projektu z usługi GitHub.

  2. Połącz się z maszyną wirtualną myCollectorVM i skopiuj plik .zip do maszyny wirtualnej i wyodrębnij wszystkie pliki. Na maszynie wirtualnej otwórz wiersz polecenia programu PowerShell. Przenieś monit do folderu zawierającego SchService.ps1, na przykład: PS C:\Users\azureuser\AzureScheduledEventsService-master\AzureScheduledEventsService-master\Powershell>, i skonfiguruj usługę.

    .\SchService.ps1 -Setup
    
  3. Uruchom usługę.

    .\SchService.ps1 -Start
    
  4. Zweryfikuj stan usługi i upewnij się, że jest uruchomiony.

    .\SchService.ps1 -status  
    

    Polecenie weryfikacji powinno zwrócić wartość Running.

Usługa rozpocznie sondowanie co 10 sekund dla wszelkich zaplanowanych zdarzeń i zatwierdzi zdarzenia w celu przyspieszenia konserwacji. Blokowanie, ponowne uruchamianie, ponowne wdrażanie i wywłaszczenie to zdarzenia przechwycone przez zdarzenia harmonogramu. Skrypt można rozszerzyć, aby wyzwolić pewne środki zaradcze przed zatwierdzeniem zdarzenia.

Gdy dowolne z powyższych zdarzeń są przechwytywane przez usługę Harmonogramu zdarzeń, zostanie zarejestrowane w stanie zdarzenia dziennika zdarzeń aplikacji, typ zdarzenia, zasoby (nazwy maszyn wirtualnych) i NotBefore (minimalny okres powiadomienia). Zdarzenia o identyfikatorze 1234 można znaleźć w dzienniku zdarzeń aplikacji.

Po skonfigurowaniu i uruchomieniu usługi będą rejestrowane zdarzenia w dziennikach aplikacji systemu Windows. Aby to sprawdzić, uruchom ponownie jedną z maszyn wirtualnych w zestawie dostępności i powinno zostać wyświetlone zdarzenie rejestrowane w Podglądzie zdarzeń w dzienniku aplikacji dzienników > systemu Windows z wyświetlonym ponownym uruchomieniem maszyny wirtualnej.

Zrzut ekranu przedstawiający podgląd zdarzeń.

Gdy zdarzenia są przechwytywane przez usługę Schedule Event Service, zostanie zarejestrowane w aplikacji nawet w dzienniku ze stanem zdarzenia, typem zdarzenia, zasobami (nazwa maszyny wirtualnej) i NotBefore (minimalny okres powiadomienia). Zdarzenia o identyfikatorze 1234 można znaleźć w dzienniku zdarzeń aplikacji.

Uwaga

W tym przykładzie maszyny wirtualne znajdowały się w zestawie dostępności, co umożliwiło wyznaczenie jednej maszyny wirtualnej jako modułu zbierającego do nasłuchiwania i kierowania zaplanowanych zdarzeń do naszej analizy dzienników. Jeśli masz autonomiczne maszyny wirtualne, możesz uruchomić usługę na każdej maszynie wirtualnej, a następnie połączyć je indywidualnie z obszarem roboczym usługi Log Analytics.

Dla naszej konfiguracji wybraliśmy system Windows, ale możesz zaprojektować podobne rozwiązanie w systemie Linux.

W dowolnym momencie możesz zatrzymać/usunąć zaplanowaną usługę zdarzeń przy użyciu przełączników –stop i –remove.

Nawiązywanie połączenia z obszarem roboczym usługi Log Analytics

Teraz chcemy połączyć obszar roboczy usługi Log Analytics z maszyną wirtualną modułu zbierającego. Obszar roboczy usługi Log Analytics działa jako repozytorium i skonfigurujemy zbieranie dzienników zdarzeń w celu przechwycenia dzienników aplikacji z maszyny wirtualnej modułu zbierającego.

Aby skierować zaplanowane zdarzenia do dziennika zdarzeń, który jest zapisywany jako dziennik aplikacji przez naszą usługę, musisz połączyć maszynę wirtualną z obszarem roboczym usługi Log Analytics.

Konfigurowanie zbierania danych

  1. Otwórz witrynę Azure Portal.

  2. Na pasku wyszukiwania u góry wpisz Obszary robocze usługi Log Analytics i wybierz je z wyników wyszukiwania.

  3. Wybierz utworzony obszar roboczy, aby otworzyć jego stronę.

  4. W obszarze Ustawienia wybierz pozycję Agenci , a następnie kliknij pozycję Maszyny wirtualne.

  5. Na karcie Serwery z systemem Windows kliknij pozycję Reguły zbierania danych.

  6. Wprowadź kartę Zbieranie i dostarczanie , a następnie kliknij pozycję Dodaj źródło danychZrzut ekranu przedstawiający kartę

  7. Na karcie Źródło danych wybierz pozycję Dzienniki zdarzeń systemu Windows z listy rozwijanej.

  8. Wybierz dzienniki zdarzeń, które chcesz zebrać. Upewnij się, że wybrano pozycję BŁĄD, OSTRZEŻENIE i INFORMACJE . Zrzut ekranu przedstawiający kartę

  9. Kliknij przycisk Dalej: Miejsce docelowe >

  10. Na karcie Miejsce docelowe kliknij pozycję Dodaj miejsce docelowe.

  11. Wypełnij sekcje Typ docelowy, Subskrypcja i Szczegóły miejsca docelowego na maszynie wirtualnej modułu zbierającego i jej subskrypcji. Zrzut ekranu przedstawiający kartę Miejsce docelowe z informacjami o typie, subskrypcji i miejscu docelowym.

  12. Po wybraniu właściwej maszyny wirtualnej agent programu Microsoft Monitoring zostanie automatycznie zainstalowany na maszynie wirtualnej. Połączenie maszyny wirtualnej z obszarem roboczym i zainstalowanie rozszerzenia potrwa kilka minut.

Uwaga

Istnieje pewne opóźnienie i może upłynąć do 10 minut, zanim dziennik będzie dostępny.

Tworzenie reguły alertu za pomocą usługi Azure Monitor

Po wypchnięciu zdarzeń do usługi Log Analytics możesz uruchomić następujące zapytanie , aby wyszukać zdarzenia harmonogramu.

  1. W górnej części strony wybierz pozycję Dzienniki i wklej następujące elementy w polu tekstowym:

    Event
    | where EventLog == "Application" and Source contains "AzureScheduledEvents" and RenderedDescription contains "Scheduled" and RenderedDescription contains "EventStatus" 
    | project TimeGenerated, RenderedDescription
    | extend ReqJson= parse_json(RenderedDescription)
    | extend EventId = ReqJson["EventId"]
    ,EventStatus = ReqJson["EventStatus"]
    ,EventType = ReqJson["EventType"]
    ,NotBefore = ReqJson["NotBefore"]
    ,ResourceType = ReqJson["ResourceType"]
    ,Resources = ReqJson["Resources"]
    | project-away RenderedDescription,ReqJson
    
  2. Wybierz pozycję Zapisz, a następnie wpisz nazwę, pozostaw pole ogQuery Zapytanie jako typ, wpisz VMLogs kategorię, a następnie wybierz pozycję Zapisz.

    Zapisywanie zapytania

  3. Wybierz przycisk Nowa reguła alertu.

  4. Na stronie Tworzenie reguły pozostaw collectorworkspace wartość Zasób.

  5. W obszarze Warunek wybierz wpis Za każdym razem, gdy wyszukiwanie dziennika klienta jest <niezdefiniowane>. Zostanie otwarta strona Konfigurowanie logiki sygnału .

  6. W obszarze Wartość progowa wprowadź wartość 0 , a następnie wybierz pozycję Gotowe.

  7. W obszarze Akcje wybierz pozycję Utwórz grupę akcji. Zostanie otwarta strona Dodawanie grupy akcji.

  8. W polu Nazwa grupy akcji wpisz myActionGroup.

  9. W polu Krótka nazwa wpisz myActionGroup.

  10. W obszarze Grupa zasobów wybierz pozycję myResourceGroupAvailability.

  11. W obszarze Akcje w polu NAZWA AKCJI wpisz Adres e-mail, a następnie wybierz pozycję Poczta e-mail/wiadomość SMS/wypychanie/głos. Zostanie otwarta strona Email/SMS/Push/Voice .

  12. Wybierz pozycję Adres e-mail, wpisz swój adres e-mail, a następnie wybierz przycisk OK.

  13. Na stronie Dodawanie grupy akcji wybierz przycisk OK.

  14. Na stronie Tworzenie reguły w obszarze SZCZEGÓŁY ALERTU wpisz myAlert jako nazwę reguły alertu, a następnie wpisz Reguła alertu e-mail w polu Opis.

  15. Po zakończeniu wybierz pozycję Utwórz regułę alertu.

  16. Uruchom ponownie jedną z maszyn wirtualnych w zestawie dostępności. W ciągu kilku minut powinna zostać wyświetlona wiadomość e-mail z powiadomieniem o wyzwoleniu alertu.

Aby zarządzać regułami alertów, przejdź do grupy zasobów, wybierz pozycję Alerty z menu po lewej stronie, a następnie wybierz pozycję Zarządzaj regułami alertów w górnej części strony.

Następne kroki

Aby dowiedzieć się więcej, zobacz stronę usługi Zaplanowane zdarzenia w usłudze GitHub.