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.
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
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
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.
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
Otwórz witrynę Azure Portal.
Na pasku wyszukiwania u góry wpisz Obszary robocze usługi Log Analytics i wybierz je z wyników wyszukiwania.
Wybierz utworzony obszar roboczy, aby otworzyć jego stronę.
W obszarze Ustawienia wybierz pozycję Agenci , a następnie kliknij pozycję Maszyny wirtualne.
Na karcie Serwery z systemem Windows kliknij pozycję Reguły zbierania danych.
Wprowadź kartę Zbieranie i dostarczanie , a następnie kliknij pozycję Dodaj źródło danych
Na karcie Źródło danych wybierz pozycję Dzienniki zdarzeń systemu Windows z listy rozwijanej.
Wybierz dzienniki zdarzeń, które chcesz zebrać. Upewnij się, że wybrano pozycję BŁĄD, OSTRZEŻENIE i INFORMACJE .
Kliknij przycisk Dalej: Miejsce docelowe >
Na karcie Miejsce docelowe kliknij pozycję Dodaj miejsce docelowe.
Wypełnij sekcje Typ docelowy, Subskrypcja i Szczegóły miejsca docelowego na maszynie wirtualnej modułu zbierającego i jej subskrypcji.
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.
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
Wybierz pozycję Zapisz, a następnie wpisz nazwę, pozostaw pole
ogQuery
Zapytanie jako typ, wpiszVMLogs
kategorię, a następnie wybierz pozycję Zapisz.Wybierz przycisk Nowa reguła alertu.
Na stronie Tworzenie reguły pozostaw
collectorworkspace
wartość Zasób.W obszarze Warunek wybierz wpis Za każdym razem, gdy wyszukiwanie dziennika klienta jest <niezdefiniowane>. Zostanie otwarta strona Konfigurowanie logiki sygnału .
W obszarze Wartość progowa wprowadź wartość 0 , a następnie wybierz pozycję Gotowe.
W obszarze Akcje wybierz pozycję Utwórz grupę akcji. Zostanie otwarta strona Dodawanie grupy akcji.
W polu Nazwa grupy akcji wpisz myActionGroup.
W polu Krótka nazwa wpisz myActionGroup.
W obszarze Grupa zasobów wybierz pozycję myResourceGroupAvailability.
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 .
Wybierz pozycję Adres e-mail, wpisz swój adres e-mail, a następnie wybierz przycisk OK.
Na stronie Dodawanie grupy akcji wybierz przycisk OK.
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.
Po zakończeniu wybierz pozycję Utwórz regułę alertu.
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.