Udostępnij przez


Konfigurowanie menedżera komunikacji usługi Azure Kubernetes Service

Menedżer komunikacji usługi Azure Kubernetes Service (AKS) usprawnia powiadomienia dotyczące wszystkich zadań konserwacji usługi AKS przy użyciu usług Azure Resource Notifications i Azure Resource Graph. Menedżer komunikacji zapewnia terminowe alerty dotyczące wyzwalaczy zdarzeń i wyników, dzięki czemu można ściśle monitorować uaktualnienia.

Jeśli konserwacja nie powiedzie się, menedżer komunikacji powiadomi Cię o przyczynach awarii. Te informacje zmniejszają problemy operacyjne związane z obserwowanością i kontynuacją.

Wykonując kroki opisane w tym artykule, możesz skonfigurować powiadomienia dotyczące wszystkich typów automatycznych uaktualnień korzystających z okien obsługi.

Wymagania wstępne

Konfigurowanie menedżera komunikacji

  1. W portalu Azure przejdź do zasobu.

  2. Wybierz pozycję Monitorowanie>Alerty>Reguły alertów, a następnie wybierz pozycję Utwórz.

  3. Na karcie Warunek dla Nazwa sygnału wybierz Niestandardowe wyszukiwanie logu.

    Zrzut ekranu przedstawiający wybór niestandardowego wyszukiwania dzienników w okienku tworzenia reguły alertu.

  4. W polu Zapytanie wyszukiwania wklej jedno z następujących zapytań niestandardowych. Pamiętaj, aby zaktualizować ścieżkę where id contains, aby odwoływała się do zasobów z identyfikatorem subskrypcji, nazwą grupy zasobów i nazwą klastra.

    Następujące zapytanie dotyczy powiadomień o automatycznych uaktualnieniach klastrów:

    arg("").containerserviceeventresources
    | where type == "microsoft.containerservice/managedclusters/scheduledevents"
    | where id contains "/subscriptions/<subid>/resourcegroups/<rgname>/providers/Microsoft.ContainerService/managedClusters/<clustername>"
    | where properties has "eventStatus"
    | extend status = substring(properties, indexof(properties, "eventStatus") + strlen("eventStatus") + 3, 50)
    | extend status = substring(status, 0, indexof(status, ",") - 1)
    | where status != ""
    | where properties has "eventDetails"
    | extend upgradeType = case(
                               properties has "K8sVersionUpgrade",
                               "K8sVersionUpgrade",
                               properties has "NodeOSUpgrade",
                               "NodeOSUpgrade",
                               ""
                           )
    | extend details = parse_json(tostring(properties.eventDetails))
    | where properties has "lastUpdateTime"
    | extend eventTime = substring(properties, indexof(properties, "lastUpdateTime") + strlen("lastUpdateTime") + 3, 50)
    | extend eventTime = substring(eventTime, 0, indexof(eventTime, ",") - 1)
    | extend eventTime = todatetime(tostring(eventTime))
    | where eventTime >= ago(30m) // Ensure this matches aggregation granularity & frequency
    | where upgradeType == "K8sVersionUpgrade"
    | project
        eventTime,
        upgradeType,
        status,
        properties,
        name,
        details
    | order by eventTime asc
    

    Następujące zapytanie dotyczy powiadomień o automatycznych uaktualnieniach dla systemu NodeOS:

    arg("").containerserviceeventresources
    | where type == "microsoft.containerservice/managedclusters/scheduledevents"
    | where id contains "/subscriptions/<subid>/resourcegroups/<rgname>/providers/Microsoft.ContainerService/managedClusters/<clustername>"
    | where properties has "eventStatus"
    | extend status = substring(properties, indexof(properties, "eventStatus") + strlen("eventStatus") + 3, 50)
    | extend status = substring(status, 0, indexof(status, ",") - 1)
    | where status != ""
    | where properties has "eventDetails"
    | extend upgradeType = case(
                               properties has "K8sVersionUpgrade",
                               "K8sVersionUpgrade",
                               properties has "NodeOSUpgrade",
                               "NodeOSUpgrade",
                               ""
                           )
    | extend details = parse_json(tostring(properties.eventDetails))
    | where properties has "lastUpdateTime"
    | extend eventTime = substring(properties, indexof(properties, "lastUpdateTime") + strlen("lastUpdateTime") + 3, 50)
    | extend eventTime = substring(eventTime, 0, indexof(eventTime, ",") - 1)
    | extend eventTime = todatetime(tostring(eventTime))
    | where eventTime >= ago(30m) // Ensure this matches aggregation granularity & frequency
    | where upgradeType == "NodeOSUpgrade"
    | project
        eventTime,
        upgradeType,
        status,
        properties,
        name,
        details
    | order by eventTime asc
    
  5. Przejdź do karty Warunek . Skonfiguruj warunki alertu przy użyciu następujących ustawień:

    • Pomiar: wybierz Wiersze tabeli.
    • Typ agregacji: wybierz pozycję Liczba.
    • Stopień szczegółowości agregacji: wybierz 30 minut.
    • Wartość progowa: zachowaj wartość 0.
    • Podziel na podstawie wymiarów: dla nazwa wymiaru wybierz status. Następnie zaznacz pole wyboru Uwzględnij wszystkie przyszłe wartości .

    Zrzut ekranu przedstawiający opcje konfiguracji warunków alertu.

  6. W obszarze Podział według wymiarów w polu Wartości wymiarów wybierz wartość. Ponieważ wybrano stan jako nazwę wymiaru, dostępne wartości to Zaplanowane, Rozpoczęte, Ukończone, Anulowane i Niepowodzenie.

    Uwaga

    Te wartości stanu są wyświetlane tylko wtedy, gdy klaster wcześniej wykonał operacje automatycznego uaktualniania. W przypadku nowych klastrów lub klastrów, które nie przeszły jeszcze automatycznych uaktualnień, lista rozwijana może być pusta lub nie ma dostępnych wymiarów. Po wykonaniu pierwszego automatycznego uaktualnienia klastra te wartości stanu staną się dostępne do wyboru.

    Zrzut ekranu przedstawiający pola listy rozwijanej w obszarze podziału według wymiarów.

  7. Przejdź do karty Akcje . Upewnij się, że istnieje grupa akcji z poprawnym adresem e-mail, aby można było otrzymywać powiadomienia:

    1. Wybierz Użyj grup akcji>Utwórz grupę akcji.

    2. W polu typ powiadomienia wybierz pozycję E-mail/SMS_message/Push/Głos.

    3. Zaznacz pole wyboru Adres e-mail , a następnie wprowadź adres e-mail w polu Adres e-mail .

      Zrzut ekranu przedstawiający okienko służące do wprowadzania informacji e-mail dla grupy akcji.

  8. Przejdź do karty Szczegóły . Przypisz tożsamość zarządzaną, aby można było udzielić dostępu do niezbędnych zasobów. W obszarze Tożsamość wybierz pozycję Tożsamość zarządzana przypisana przez system.

    Zrzut ekranu przedstawiający opcje przypisywania tożsamości zarządzanej przypisanej przez system.

  9. Przejdź do karty Przeglądanie i tworzenie , a następnie wybierz pozycję Utwórz.

  10. Po utworzeniu reguły alertu możesz przypisać odpowiednie role dla tożsamości zarządzanej:

    1. W regule alertu przejdź do pozycji Ustawienia>Tożsamość>Zarządzana tożsamość przypisana przez system>Przypisania ról platformy Azure.
    2. Wybierz pozycję Dodaj przypisanie roli, wybierz rolę Czytelnik i przypisz ją do grupy zasobów.
    3. Ponownie wybierz pozycję Dodaj przypisanie roli , wybierz rolę Czytelnik i przypisz ją do subskrypcji.

    Wskazówka

    Jeśli nie widzisz opcji Tożsamość , upewnij się, że utworzono regułę alertu i że masz niezbędne uprawnienia.

Po skonfigurowaniu menedżera komunikacji wysyła powiadomienia z wyprzedzeniem tydzień przed rozpoczęciem konserwacji i jeden dzień przed rozpoczęciem konserwacji. Wysyła również alerty na czas podczas przeprowadzania konserwacji.

Sprawdzanie konfiguracji

Aby uaktualnić klaster, poczekaj na uruchomienie automatycznego uaktualniania. Następnie sprawdź, czy powiadomienia są wyświetlane natychmiast na adresie e-mail skonfigurowanym do odbierania powiadomień.

Sprawdź bazę danych usługi Azure Resource Graph w celu znalezienia zaplanowanego rekordu powiadomień. Każde zaplanowane powiadomienie o zdarzeniu powinno być wyświetlane jako jeden rekord w ContainerServiceEventResources tabeli.

Zrzut ekranu przedstawiający rekord powiadomień w usłudze Azure Resource Graph.