Dostosowywanie aparatu optymalizacji platformy Azure
Aparat optymalizacji platformy Azure (AOE) to zestaw elementów Runbook usługi Azure Automation, które zbierają, pozyskiwają i analizują dane dotyczące zużycia i wydajności platformy Azure w celu udostępnienia zaleceń dotyczących optymalizacji kosztów. Aparat został zaprojektowany tak, aby był elastyczny i dostosowywalny, co pozwala dostosować jego zachowanie w celu lepszego dopasowania do potrzeb organizacji. Ten artykuł zawiera wskazówki dotyczące dostosowywania ustawień aparatu. Obejmuje on dostosowywanie progów, zmienianie harmonogramów i rozszerzanie zakresu aparatu.
Poszerz zakres aparatu
Domyślnie tożsamość zarządzana usługi Azure Automation ma przypisaną rolę Czytelnik tylko w ramach odpowiedniej subskrypcji. Można jednak rozszerzyć zakres swoich rekomendacji, udzielając tej samej roli Czytelnik do innych subskrypcji lub, co jeszcze prostsze, do grupy zarządzania najwyższego poziomu.
W kontekście rekomendacji dotyczących odpowiedniego rozmiaru rozszerzonej maszyny wirtualnej możesz zgłaszać maszyny wirtualne do wielu obszarów roboczych. Jeśli musisz uwzględnić inne obszary robocze — oprócz głównego, którego używa usługa AOE — w zakresie zaleceń wystarczy dodać identyfikatory obszarów roboczych do AzureOptimization_RightSizeAdditionalPerfWorkspaces
zmiennej (zobacz więcej szczegółów w temacie Konfigurowanie obszarów roboczych).
Jeśli jesteś klientem wielodostępnym, możesz rozszerzyć zasięg AOE na dzierżawę inną niż ta, w której została wdrożona. Aby osiągnąć to rozszerzenie, należy upewnić się, że spełnione są następujące wymagania wstępne:
- Utwórz jednostkę usługi (rejestrację aplikacji) i wpis tajny w dzierżawie pomocniczej.
- Przyznaj wymagane uprawnienia jednostce usługi w dzierżawie pomocniczej, a mianowicie Czytelnik w subskrypcjach/grupach zarządzania platformy Azure i Czytelnik globalny w identyfikatorze Entra firmy Microsoft.
- Utwórz poświadczenie automatyzacji na koncie usługi Automation WOE. Ustaw identyfikator klienta jednostki usługi jako nazwę użytkownika i wpis tajny jako hasło.
Register-MultitenantAutomationSchedules.ps1
Wykonaj skrypt (dostępny w folderze głównym AOE) w kontekście subskrypcji, w której wdrożono usługę AOE. Ten skrypt tworzy nowe harmonogramy zadań dla każdego elementu Runbook eksportu i konfiguruje je do wykonywania zapytań w dzierżawie pomocniczej. Wystarczy wywołać skrypt przy użyciu następującej składni:
./Register-MultitenantAutomationSchedules.ps1 -AutomationAccountName <AOE automation account> -ResourceGroupName <AOE resource group> -TargetSchedulesSuffix <suffix to append to every new job schedules, e.g., Tenant2> -TargetTenantId <secondary tenant GUID> -TargetTenantCredentialName <name of the Automation credential created in the previous step> [-TargetSchedulesOffsetMinutes <offset in minutes relative to original schedules, defaults to 0>] [-TargetAzureEnvironment <AzureUSGovernment|AzureGermanCloud|AzureCloud>] [-ExcludedRunbooks <An array of runbook names to exclude from the process>] [-IncludedRunbooks <An array of runbook names to include in the process>]
Dostosowywanie harmonogramów
Domyślnie czas bazowy harmonogramów automatyzacji AOE jest ustawiany jako czas wdrożenia. Wkrótce po zakończeniu początkowego wdrożenia eksporty, pozyskiwanie i rekomendacje elementów Runbook są uruchamiane zgodnie z domyślnymi harmonogramami aparatu. Jeśli na przykład wdrożysz AOE w poniedziałek o godzinie 11:00, otrzymasz nowe zalecenia co poniedziałek o godzinie 23:30. Jeśli ten harmonogram, z jakiegoś powodu, nie pasuje do Twoich potrzeb, możesz zresetować go do czasu, który lepiej ci odpowiada, używając skryptu Reset-AutomationSchedules.ps1
(dostępnego w folderze głównym AOE). Wystarczy wywołać następujący skrypt. Postępuj zgodnie ze składnią i odpowiadaj na żądania wejściowe:
./Reset-AutomationSchedules.ps1 -AutomationAccountName <AOE automation account> -ResourceGroupName <AOE resource group> [-AzureEnvironment <AzureUSGovernment|AzureGermanCloud|AzureCloud>]
Wybrana godzina podstawowa musi znajdować się w formacie UTC i musi być zdefiniowana zgodnie z dniem tygodnia i godziną generowania zaleceń. Musisz wyjmować 3h30m od wybranego czasu. Jest to spowodowane tym, że czas podstawowy definiuje harmonogramy dla wszystkich zależnych elementów Runbook automatyzacji, które muszą być uruchamiane przed wygenerowaniem zaleceń. Załóżmy na przykład, że zalecenia mają być generowane co poniedziałek o godzinie 8:30; godzina podstawowa to kolejna data kalendarza przypada w poniedziałek, o 5h00 AM. Format wybranej daty musi mieć wartość RRRR-MM-dd HH:mm:ss, na przykład 2022-01-03 05:00:00
.
Skrypt prosi również o wprowadzenie w razie potrzeby hybrydowej grupy procesów roboczych, w której mają być uruchamiane elementy Runbook (zobacz następną podsekcję).
Skalowanie elementów Runbook AOE przy użyciu hybrydowego procesu roboczego
Domyślnie elementy Runbook usługi AOE Automation są wykonywane w kontekście piaskownicy usługi Azure Automation. Problemy z wydajnością mogą wystąpić z powodu limitów pamięci piaskownicy usługi Automation. Możesz też zdecydować się na zaimplementowanie prywatnych punktów końcowych dla konta magazynu lub usługi SQL Database w celu zabezpieczenia zabezpieczeń AOE. W obu przypadkach należy wykonać elementy Runbook z hybrydowego procesu roboczego. Jest to maszyna wirtualna platformy Azure lub lokalna z rozszerzeniem hybrydowego procesu roboczego usługi Automation. Aby zmienić kontekst wykonywania elementów Runbook AOE, należy użyć skryptu Reset-AutomationSchedules.ps1
. Zobacz, jak używać skryptu w poprzedniej podsekcji. Po ustawieniu czasu podstawowego wykonywania elementów Runbook wprowadź nazwę grupy hybrydowych procesów roboczych, w której mają być uruchamiane elementy Runbook.
Ważne
- Maszyna hybrydowego procesu roboczego musi mieć zainstalowane wymagane moduły programu PowerShell. Plik
upgrade-manifest.json
zawiera listę wymaganych modułów. - Po zmianie kontekstu wykonywania elementu Runbook na hybrydowy proces roboczy należy zawsze używać
DoPartialUpgrade
flagi za każdym razem, gdy uaktualnisz usługę AOE lub utracisz ustawienia harmonogramu elementu Runbook i przywrócisz domyślną konfigurację piaskownicy. - Tożsamość zarządzana używana do uwierzytelniania na platformie Azure, identyfikatorze Entra firmy Microsoft i zakresach konta rozliczeniowego jest nadal używana przez usługę Azure Automation. Jest on używany nawet wtedy, gdy maszyna hybrydowego procesu roboczego ma przypisaną tożsamość zarządzaną (zobacz szczegóły). Tożsamości zarządzane przypisane przez użytkownika są obsługiwane w kontekście hybrydowych procesów roboczych tylko wtedy, gdy:
- Konto usługi Automation nie ma żadnej skojarzonej tożsamości zarządzanej, czyli tylko maszyna hybrydowego procesu roboczego może mieć tożsamość zarządzaną przypisaną przez użytkownika.
- Wszystkie elementy Runbook działają w kontekście hybrydowego procesu roboczego. W takim przypadku należy utworzyć zmienną
AzureOptimization_UAMIClientID
automatyzacji z identyfikatorem klienta tożsamości zarządzanej przypisanej przez użytkownika jako wartością. AzureOptimization_AuthenticationOption
Wartość zmiennej automatyzacji jest aktualizowana doUserAssignedManagedIdentity
.
Dostosowywanie progów
W przypadku zaleceń dotyczących kosztów usługi Advisor domyślna konfiguracja AOE generuje agregacje metryk maszyny wirtualnej 99. percentyla, ale można je dostosować tak, aby były mniej konserwatywne. Istnieją również regulowane progi metryk, które są używane do obliczania oceny dopasowania. Wartości progów domyślnych to 30% dla procesora CPU (5% dla zaleceń dotyczących zamykania), 50% dla pamięci (100% w przypadku zamknięcia) i 750 Mb/s dla przepustowości sieci (10 Mb/s do zamknięcia). Wszystkie regulowane konfiguracje są dostępne jako zmienne usługi Azure Automation. Informacje w następnej tabeli zawierają najważniejsze zmienne konfiguracji. Aby uzyskać do nich dostęp, przejdź do opcji menu Udostępnione zasoby konta usługi Automation — zmienne .
Zmienna | opis |
---|---|
AzureOptimization_AdvisorFilter |
Jeśli nie interesuje Cię uzyskanie zaleceń dla wszystkich filarów usługi Non-Cost Advisor, możesz określić filtr na poziomie filaru (lista rozdzielona przecinkami z co najmniej jedną z następujących wartości: HighAvailability,Security,Performance,OperationalExcellence ). Domyślnie wszystkie filary. |
AzureOptimization_AuthenticationOption |
Domyślną metodą uwierzytelniania elementów Runbook usługi Automation jest RunAsAccount . Możesz jednak zmienić wartość na ManagedIdentity , jeśli używasz hybrydowego procesu roboczego na maszynie wirtualnej platformy Azure. |
AzureOptimization_ConsumptionOffsetDays |
Element Runbook zbierania danych użycia platformy Azure codziennie wykonuje zapytania dotyczące zdarzeń rozliczeniowych, które miały miejsce siedem dni temu (ustawienie domyślne). Możesz zmienić przesunięcie na bliżej, ale należy pamiętać, że niektóre typy subskrypcji (na przykład MSDN) nie obsługują niższej wartości. |
AzureOptimization_PerfPercentileCpu |
Domyślny percentyl agregacji metryk procesora CPU to 99. Ponieważ percentyl obniża rozmiar maszyny wirtualnej, algorytm oceny dopasowania do rozmiaru maszyny wirtualnej dostosowuje się mniej konserwatywnie. |
AzureOptimization_PerfPercentileDisk |
Domyślny percentyl dla agregacji metryk we/wy dysku wynosi 99. Ponieważ percentyl obniża rozmiar maszyny wirtualnej, algorytm oceny dopasowania do rozmiaru maszyny wirtualnej dostosowuje się mniej konserwatywnie. |
AzureOptimization_PerfPercentileMemory |
Domyślny percentyl agregacji metryk pamięci to 99. Ponieważ percentyl obniża rozmiar maszyny wirtualnej, algorytm oceny dopasowania do rozmiaru maszyny wirtualnej dostosowuje się mniej konserwatywnie. |
AzureOptimization_PerfPercentileNetwork |
Domyślny percentyl agregacji metryk sieci to 99. Ponieważ percentyl obniża rozmiar maszyny wirtualnej, algorytm oceny dopasowania do rozmiaru maszyny wirtualnej dostosowuje się mniej konserwatywnie. |
AzureOptimization_PerfPercentileSqlDtu |
Domyślny percentyl, który ma być używany dla metryk jednostek DTU bazy danych SQL. W miarę obniżania percentylu algorytm rozmiaru bazy danych SQL Database dostosowuje się mniej konserwatywnie. |
AzureOptimization_PerfThresholdCpuPercentage |
Próg procesora (w % czasu procesora). Powyżej tego rozmiaru maszyny wirtualnej zmniejsza się współczynnik dopasowania do rozmiaru maszyny wirtualnej. Poniżej tego wyzwalane są zalecenia dotyczące odpowiedniego rozmiaru zestawu skalowania maszyn wirtualnych platformy Azure (zestawu skalowania). |
AzureOptimization_PerfThresholdCpuShutdownPercentage |
Próg procesora (w % czasu procesora). Powyżej tego rozmiaru maszyny wirtualnej zmniejsza się wskaźnik dopasowania do rozmiaru (tylko zalecenia dotyczące zamykania). |
AzureOptimization_PerfThresholdCpuDegradedMaxPercentage |
Próg procesora CPU (maksymalny obserwowany w % czasu procesora). Nad nim wyzwalane są zalecenia dotyczące wydajności odpowiedniego rozmiaru zestawu skalowania. |
AzureOptimization_PerfThresholdCpuDegradedAvgPercentage |
Próg procesora CPU (średnia obserwowana w % czasu procesora). Nad nim wyzwalane są zalecenia dotyczące wydajności odpowiedniego rozmiaru zestawu skalowania. |
AzureOptimization_PerfThresholdMemoryPercentage |
Próg pamięci (w % używanej pamięci). Powyżej tego rozmiaru maszyny wirtualnej zmniejsza się współczynnik dopasowania do rozmiaru maszyny wirtualnej. Poniżej zestawu skalowania wyzwalane są zalecenia dotyczące kosztów o odpowiednim rozmiarze. |
AzureOptimization_PerfThresholdMemoryShutdownPercentage |
Próg pamięci (w % używanej pamięci). Powyżej tego rozmiaru maszyny wirtualnej zmniejsza się wskaźnik dopasowania do rozmiaru (tylko zalecenia dotyczące zamykania). |
AzureOptimization_PerfThresholdMemoryDegradedPercentage |
Próg pamięci (w % używanej pamięci). Nad nim wyzwalane są zalecenia dotyczące wydajności odpowiedniego rozmiaru zestawu skalowania. |
AzureOptimization_PerfThresholdNetworkMbps |
Próg sieci (w mb/s). Powyżej tego rozmiaru maszyny wirtualnej zmniejsza się współczynnik dopasowania do rozmiaru maszyny wirtualnej. |
AzureOptimization_PerfThresholdNetworkShutdownMbps |
Próg sieci (w mb/s). Powyżej tego rozmiaru maszyny wirtualnej zmniejsza się wskaźnik dopasowania do rozmiaru (tylko zalecenia dotyczące zamykania). |
AzureOptimization_PerfThresholdDtuPercentage |
Próg procentowego użycia jednostek DTU. Poniżej wystąpienia usługi SQL Database jest uznawane za niedostatecznie wykorzystywane. |
AzureOptimization_RecommendAdvisorPeriodInDays |
Interwał w dniach wyszukiwania zaleceń usługi Advisor w repozytorium usługi Log Analytics — wartość domyślna to 7, ponieważ rekomendacje usługi Advisor są zbierane raz w tygodniu. |
AzureOptimization_RecommendationAADMaxCredValidityYears |
Maksymalna liczba lat ważności poświadczeń/certyfikatów jednostki usługi — każda ważność powyżej tego interwału generuje zalecenie dotyczące zabezpieczeń. Wartość domyślna to 2. |
AzureOptimization_RecommendationAADMinCredValidityDays |
Minimalna liczba dni dla poświadczenia/certyfikatu jednostki usługi przed jego wygaśnięciem — każda ważność poniżej tego interwału generuje zalecenie dotyczące doskonałości operacyjnej. Wartość domyślna to 30. |
AzureOptimization_RecommendationLongDeallocatedVmsIntervalDays |
Liczba kolejnych dni cofnięcia przydziału maszyny wirtualnej przed zaleceniem usunięcia (przydział maszyny wirtualnej został cofnięty przez długi czas, a dyski nadal generują koszty). Wartość domyślna to 30. |
AzureOptimization_RecommendationVNetSubnetMaxUsedPercentageThreshold |
Maksymalna wartość procentowa tolerowana dla użycia miejsca w adresach IP podsieci. Wartość domyślna to 80. |
AzureOptimization_RecommendationVNetSubnetMinUsedPercentageThreshold |
Minimalny procent użycia miejsca w adresach IP podsieci — każde użycie poniżej tej wartości oznacza odpowiednią podsieć jako małą ilość miejsca na adresy IP. Wartość domyślna to 5. |
AzureOptimization_RecommendationVNetSubnetEmptyMinAgeInDays |
Minimalny wiek w dniach, w którym ma być oflagowana pusta podsieć, co pozwala uniknąć flagowania nowo utworzonych podsieci. Wartość domyślna to 30. |
AzureOptimization_RecommendationVNetSubnetUsedPercentageExclusions |
Rozdzielona przecinkami lista nazw podsieci, które muszą zostać wykluczone z zaleceń dotyczących procentowego użycia podsieci, na przykład 'gatewaysubnet' ,'azurebastionsubnet' . Wartość domyślna to 'gatewaysubnet' . |
AzureOptimization_RecommendationRBACAssignmentsPercentageThreshold |
Maksymalny procent przydziałów RBAC ogranicza użycie. Wartość domyślna to 80. |
AzureOptimization_RecommendationResourceGroupsPerSubPercentageThreshold |
Maksymalna wartość procentowa liczby grup zasobów na użycie limitów subskrypcji. Wartość domyślna to 80. |
AzureOptimization_RecommendationRBACSubscriptionsAssignmentsLimit |
Maksymalny limit przypisań RBAC na subskrypcję. Obecnie ustawiono wartość 2000 (zgodnie z dokumentacją). |
AzureOptimization_RecommendationRBACMgmtGroupsAssignmentsLimit |
Maksymalny limit przypisań RBAC na grupę zarządzania. Obecnie ustawiono wartość 500 (zgodnie z dokumentacją). |
AzureOptimization_RecommendationResourceGroupsPerSubLimit |
Maksymalny limit liczby grup zasobów na subskrypcję. Obecnie ustawiono wartość 980 (zgodnie z dokumentacją). |
AzureOptimization_RecommendationStorageAcountGrowthThresholdPercentage |
Minimalna wartość procentowa wzrostu konta magazynu wymagana do flagowania magazynu jako braku zasad przechowywania. |
AzureOptimization_RecommendationStorageAcountGrowthMonthlyCostThreshold |
Minimalny miesięczny koszt (w walucie UMOWY EA/MCA) wymagany do flagowania magazynu jako braku zasad przechowywania. |
AzureOptimization_RecommendationStorageAcountGrowthLookbackDays |
Okres wyszukiwania (w dniach) do analizowania wzrostu konta magazynu. |
AzureOptimization_ReferenceRegion |
Region platformy Azure używany jako odwołanie do pobierania listy dostępnych jednostek SKU (domyślnie to westeurope ). |
AzureOptimization_RemediateRightSizeMinFitScore |
Minimalna ocena dopasowania maszyny wirtualnej musi mieć zalecenie dotyczące odpowiedniego rozmiaru, aby można było przeprowadzić korygowanie. |
AzureOptimization_RemediateRightSizeMinWeeksInARow |
Minimalna liczba tygodni w wierszu zalecenia dotyczącego odpowiedniego rozmiaru maszyny wirtualnej musi zostać ukończona, aby można było zastosować korygowanie. |
AzureOptimization_RemediateRightSizeTagsFilter |
Nazwa/wartość tagu paruje zalecenie dotyczące odpowiedniego rozmiaru maszyny wirtualnej, aby można było przeprowadzić korygowanie. Przykład: [ { "tagName": "a", "tagValue": "b" }, { "tagName": "c", "tagValue": "d" } ] |
AzureOptimization_RemediateLongDeallocatedVMsMinFitScore |
Minimalna ocena dopasowania do długiego cofnięcia przydziału maszyny wirtualnej musi być wymagana, aby korygowanie miało miejsce. |
AzureOptimization_RemediateLongDeallocatedVMsMinWeeksInARow |
Minimalna liczba tygodni w wierszu zalecenia dotyczącego długiego cofnięcia przydziału maszyny wirtualnej musi zostać ukończona, aby można było rozwiązać ten problem. |
AzureOptimization_RemediateLongDeallocatedVMsTagsFilter |
W przypadku par nazwa/wartość tagu zalecenie dotyczące długiego cofnięcia przydziału maszyny wirtualnej musi zostać wykonane w celu skorygowania. Przykład: [ { "tagName": "a", "tagValue": "b" }, { "tagName": "c", "tagValue": "d" } ] |
AzureOptimization_RemediateUnattachedDisksMinFitScore |
Minimalna ocena dopasowania zalecenia dotyczącego nieprzyłączonego dysku musi być wymagana, aby korygowanie miało miejsce. |
AzureOptimization_RemediateUnattachedDisksMinWeeksInARow |
Minimalna liczba tygodni w wierszu zalecenia dotyczącego dysku nieprzyłączonego musi zostać ukończona, aby można było przeprowadzić korygowanie. |
AzureOptimization_RemediateUnattachedDisksAction |
Akcja, która ma dotyczyć nieprzyłączonego zalecenia dotyczącego dysku korygowania (Delete lub Downsize ). |
AzureOptimization_RemediateUnattachedDisksTagsFilter |
W parach nazwa/wartość tagu musi wystąpić zalecenie dotyczące nieprzyłączonego dysku. Przykład: [ { "tagName": "a", "tagValue": "b" }, { "tagName": "c", "tagValue": "d" } ] |
AzureOptimization_RightSizeAdditionalPerfWorkspaces |
Rozdzielona przecinkami lista innych identyfikatorów obszarów roboczych usługi Log Analytics, gdzie szukać metryk maszyn wirtualnych (zobacz Konfigurowanie obszarów roboczych). |
AzureOptimization_PerfThresholdDiskIOPSPercentage |
Próg procentowego użycia operacji we/wy na sekundę dysku. Poniżej niego wyzwalane są zalecenia dotyczące niedostatecznie wykorzystanych dysków SSD w warstwie Premium. |
AzureOptimization_PerfThresholdDiskMBsPercentage |
Próg procentowego użycia przepływności dysku. Poniżej niego wyzwalane są zalecenia dotyczące niedostatecznie wykorzystanych dysków SSD w warstwie Premium. |
AzureOptimization_RecommendationsMaxAgeInDays |
Maksymalny wiek (w dniach) zalecenia, który ma być przechowywany w bazie danych SQL. Wartość domyślna: 365. |
AzureOptimization_RetailPricesCurrencyCode |
Kod waluty (na przykład EUR, USD itd.) używany do zbierania cen detalicznych rezerwacji. |
AzureOptimization_PriceSheetMeterCategories |
Kategorie mierników rozdzielane przecinkami używane do filtrowania arkusza cen w celu uniknięcia pozyskiwania niepotrzebnych danych. Wartość domyślna to "Virtual Machines,Storage" . |
AzureOptimization_ConsumptionScope |
Zakres eksportów zużycia: Subscription (wartość domyślna), BillingProfile (tylko MCA) lub BillingAccount (w przypadku umowy MCA) wymaga dodania roli Czytelnik konta rozliczeniowego do tożsamości zarządzanej usługi AOE. Zobacz więcej szczegółów. |
Powiązana zawartość
Powiązane produkty:
Powiązane rozwiązania: