Monitorowanie zaplanowanych zdarzeń dla maszyn wirtualnych platformy Azure

Dotyczy: Maszyny wirtualne z systemem Windows — elastyczne zestawy ✔️ ✔️ ✔️ skalowania jednolite zestawy 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 degradacja sprzętu lub awaria, usługi platformy Azure mogą wymagać przeprowadzenia nieplanowanej konserwacji. Korzystanie z migracji na żywo, zachowywanie aktualizacji w pamięci i zwykle utrzymywanie ścisłego paska wpływu aktualizacji, w większości przypadków te zdarzenia są prawie niewidoczne dla klientów i nie mają wpływu ani nie powodują co najwyżej kilku sekund zamrożenia maszyny wirtualnej. 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 zapewnia interfejs programistyczny, który ma być powiadamiany o nadchodzącej konserwacji i umożliwia bezproblemowe obsługę konserwacji.

W tym artykule pokażemy, jak można użyć zaplanowanych zdarzeń do powiadamiania 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ę, aby wysyłać zapytania do punktu końcowego swoich maszyn wirtualnych, aby znaleźć powiadomienia o zaplanowanej konserwacji i wykonywać środki zaradcze, takie jak zapisywanie stanu i wykluczanie maszyny wirtualnej z rotacji. Zalecamy utworzenie automatyzacji w celu zarejestrowania zaplanowanych zdarzeń, aby można było mieć dziennik inspekcji zdarzeń konserwacji platformy Azure.

W tym artykule opisano sposób przechwytywania zaplanowanych zdarzeń konserwacji do usługi Log Analytics. Następnie wyzwolimy pewne podstawowe akcje powiadomień, takie 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żyjemy usługi Log Analytics, ale możesz użyć dowolnego rozwiązania do monitorowania, aby zebrać te dzienniki i wyzwolić automatyzację.

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. Uruchomimy usługę , która sonduje zaplanowane zdarzenia na jednej z maszyn wirtualnych, która będzie działać 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 , który będzie 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

Pobierz plik .zip instalacji projektu z usługi GitHub.

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

Uruchom usługę.

.\SchService.ps1 -Start

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

Zweryfikuj stan usługi i upewnij się, że jest ona uruchomiona.

.\SchService.ps1 -status  

Powinno to zwrócić wartość Running.

Usługa rozpocznie sondowanie co 10 sekund dla wszystkich 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ę Schedule Event Service, 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 zlokalizować 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 zlokalizować 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 obszaru pracy 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.

Na potrzeby 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

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 zostanie zapisany jako dziennik aplikacji przez naszą usługę, musisz połączyć maszynę wirtualną z obszarem roboczym usługi Log Analytics.

  1. Otwórz stronę utworzonego obszaru roboczego.

  2. W obszarze Połącz ze źródłem danych wybierz pozycję Maszyny wirtualne platformy Azure.

    Nawiązywanie połączenia z maszyną wirtualną jako źródłem danych

  3. Wyszukaj i wybierz pozycję myCollectorVM.

  4. Na nowej stronie maszyny myCollectorVM wybierz pozycję Połącz.

Spowoduje to zainstalowanie agenta microsoft monitoring na maszynie wirtualnej. Połączenie maszyny wirtualnej z obszarem roboczym i zainstalowanie rozszerzenia potrwa kilka minut.

Skonfiguruj obszar roboczy

  1. Otwórz stronę obszaru roboczego i wybierz pozycję Ustawienia zaawansowane.

  2. Wybierz pozycję Dane z menu po lewej stronie, a następnie wybierz pozycję Dzienniki zdarzeń systemu Windows.

  3. W obszarze Zbierz z następujących dzienników zdarzeń rozpocznij wpisywanie aplikacji , a następnie wybierz pozycję Aplikacja z listy.

    Wybierz pozycję Ustawienia zaawansowane

  4. Pozostaw wybraną opcję BŁĄD, OSTRZEŻENIE i INFORMACJE , a następnie wybierz pozycję Zapisz , aby zapisać ustawienia.

Uwaga

Nastąpi 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 ogQueryZapytanie jako typ, wpisz VMLogskategorię, a następnie wybierz pozycję Zapisz.

    Zapisywanie zapytania

  3. Wybierz przycisk Nowa reguła alertu.

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

  5. W obszarze Warunek wybierz wpis Za każdym razem, gdy wyszukiwanie w dzienniku 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 Email, a następnie wybierz pozycję Email/SMS/Push/Voice. Zostanie otwarta strona Email/SMS/Push/Voice.

  12. Wybierz Email, 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 wartość myAlert jako nazwę reguły alertu, a następnie wpisz Email regułę alertu 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 witrynie GitHub.