Bagikan melalui


Menyesuaikan mesin pengoptimalan Azure

Mesin pengoptimalan Azure (AOE) adalah sekumpulan runbook Azure Automation yang mengumpulkan, menyerap, dan menganalisis data konsumsi dan performa Azure untuk memberikan rekomendasi pengoptimalan biaya. Mesin ini dirancang agar fleksibel dan dapat disesuaikan, memungkinkan Anda menyesuaikan perilakunya agar lebih sesuai dengan kebutuhan organisasi Anda. Artikel ini menyediakan panduan tentang cara menyesuaikan pengaturan mesin. Ini termasuk menyesuaikan ambang batas, mengubah jadwal, dan memperluas cakupan mesin.


Memperlebar cakupan mesin

Secara default, Identitas Terkelola Azure Automation hanya diberi peran Pembaca pada langganan masing-masing. Namun, Anda dapat memperlebar cakupan rekomendasinya hanya dengan memberikan peran Pembaca yang sama ke langganan lain atau, bahkan lebih sederhana, ke Grup Manajemen tingkat atas.

Dalam konteks rekomendasi ukuran tepat untuk mesin virtual yang diperluas (VM), Anda mungkin memiliki VM yang melapor ke banyak ruang kerja. Jika Anda perlu menyertakan ruang kerja lain - selain yang utama yang digunakan AOE - dalam cakupan rekomendasi, Anda hanya perlu menambahkan ID ruang kerja mereka ke AzureOptimization_RightSizeAdditionalPerfWorkspaces variabel (lihat detail selengkapnya di Mengonfigurasi ruang kerja).

Jika Anda memiliki beberapa direktori ID Entra (juga dikenal sebagai penyewa), Anda dapat memperluas jangkauan AOE ke penyewa lain selain tempat di mana AOE awalnya di-deploy. Untuk mencapai hal ini, Anda memiliki dua opsi, masing-masing dengan pro dan kontranya:

Perwakilan layanan di penyewa sekunder Penyebaran Azure Lighthouse
Menyediakan cakupan fitur terluas (lihat batasan di bawah) Menyediakan cakupan fitur yang hampir lengkap (lihat batasan di bawah)
Menggunakan opsi autentikasi yang kurang aman dan tidak dikelola, berdasarkan rahasia Menyediakan autentikasi yang kuat dengan memanfaatkan identitas terkelola dari mesin.
** Tidak mendukung penggunaan kembali metrik Perf dari workspaces Log Analytics di penyewa sekunder, ketika mengoptimalkan rekomendasi ukuran VM yang tepat. Tidak menyertakan dukungan untuk objek Microsoft Entra, yang memengaruhi kelengkapan buku kerja Identitas dan Peran dan rekomendasi terkait ID Microsoft Entra. Tab Gambaran Umum Buku Kerja Kepatuhan Kebijakan tidak membawa data dari penyewa sekunder; hanya Analisis Kebijakan terperinci yang didukung.
Implementasi didasarkan pada eksekusi skrip PowerShell pembantu Implementasi didasarkan pada penyebaran templat Azure Resource Manager
Cakupan tenant sekunder yang lebih skalabel, hanya dengan memberikan izin kepada prinsipal layanan pada tingkat cakupan yang lebih tinggi. Penyebaran dilakukan per langganan di penyewa sekunder; membutuhkan Azure Policy untuk menskalakan
Kurang hemat biaya, karena jadwal pekerjaan diduplikasi untuk penyewa sekunder Lebih hemat biaya, karena jadwal pekerjaan yang ada akan secara otomatis mencakup penyewa sekunder

Multipenyewa dengan perwakilan layanan di penyewa sekunder

Untuk memperlebar cakupan mesin menggunakan pendekatan berbasis prinsip layanan, Anda harus memastikan persyaratan prasyarat berikut:

  • Buat service principal (Pendaftaran aplikasi) dan kata sandi rahasia di penyewa sekunder.
  • Berikan izin yang diperlukan kepada perwakilan layanan di penyewa sekunder, yaitu Pembaca pada langganan atau grup manajemen Azure dan Pembaca Global di ID Microsoft Entra.
  • Buat kredensial Automation di Akun Otomasi AOE. Atur ID klien perwakilan layanan sebagai nama pengguna dan rahasia sebagai kata sandi.
  • Jalankan Register-MultitenantAutomationSchedules.ps1 skrip (tersedia di folder utama AOE) dalam konteks berlangganan tempat AOE telah diterapkan. Skrip ini membuat jadwal pekerjaan baru untuk setiap runbook ekspor dan mengonfigurasinya untuk mengkueri penyewa sekunder. Anda hanya perlu memanggil skrip menggunakan sintaks berikut:
./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>]

Fitur Multi-Penyewa menggunakan Azure Lighthouse

Untuk memperlebar cakupan mesin menggunakan pendekatan berbasis Azure Lighthouse, Anda harus memastikan prasyarat berikut:

  • Siapkan templat Azure Resource Manager untuk disebarkan di penyewa sekunder. Anda dapat menggunakan kembali as-is templat referensi di repositori kami ( filelighthouse-template.json tersedia di folder akar AOE ).
  • Jika Anda menyebarkan templat untuk satu langganan, Anda hanya perlu mengikuti langkah-langkah yang dijelaskan di sini, dengan menggunakan templat referensi di atas dan menentukan nilai parameter templat (sebagai file parameter terpisah atau langsung di antarmuka portal Microsoft Azure).
  • Jika Anda perlu menyebarkan dalam skala besar ke beberapa langganan, Anda dapat memanfaatkan Azure Policy, dengan mengikuti instruksi yang tersedia di sini dan menyesuaikan kode definisi kebijakan untuk mengikuti templat referensi di atas.
  • Tidak peduli pendekatan penyebaran, parameter templat yang harus Anda berikan adalah sebagai berikut:
    • managedByTenantId - ID penyewa Microsoft Entra dari penyewa tempat AOE diimplementasikan.
    • principalId - ID objek Microsoft Entra dari identitas terkelola sistem akun otomatisasi AOE.
    • principalIdDisplayName - Nama akun otomatisasi AOE.

Menyesuaikan jadwal

Secara bawaan, waktu dasar untuk jadwal AOE Automation diatur sebagai waktu penyebaran. Setelah penyebaran awal selesai, runbook ekspor, pengolahan, dan rekomendasi akan berjalan sesuai dengan jadwal default mesin. Misalnya, jika Anda menyebarkan AOE pada hari Senin pukul 11:00, Anda mendapatkan rekomendasi baru setiap hari Senin pukul 14:30. Jika jadwal ini, karena alasan tertentu, tidak sesuai dengan kebutuhan Anda, Anda dapat mengatur ulang ke waktu yang lebih sesuai dengan Anda, dengan menggunakan Reset-AutomationSchedules.ps1 skrip (tersedia di folder akar AOE). Anda hanya perlu memanggil skrip berikut. Ikuti sintaks dan jawab permintaan input:

./Reset-AutomationSchedules.ps1 -AutomationAccountName <AOE automation account> -ResourceGroupName <AOE resource group> [-AzureEnvironment <AzureUSGovernment|AzureGermanCloud|AzureCloud>]

Waktu dasar yang Anda pilih harus dalam UTC dan harus didefinisikan sesuai dengan hari dalam seminggu dan jam yang Anda inginkan untuk membuat rekomendasi. Anda harus mengurangi 3 jam 30 menit dari waktu yang Anda pilih. Ini karena waktu dasar menentukan jadwal untuk semua runbook otomatisasi dependen yang harus berjalan sebelum rekomendasi dibuat. Misalnya, Anda ingin rekomendasi dihasilkan setiap hari Senin pukul 8 jam30 pagi; waktu dasar adalah tanggal kalender berikutnya yang jatuh pada hari Senin, pukul 05.00. Format tanggal yang Anda pilih harus YYYY-MM-dd HH:mm:ss, misalnya, 2022-01-03 05:00:00.

Skrip juga meminta Anda untuk memasukkan, jika diperlukan, Grup Hybrid Worker yang Anda inginkan runbook dijalankan dalam (lihat sub bagian berikutnya).


Menskalakan runbook AOE menggunakan Hybrid Worker

Secara default, runbook AOE Automation dijalankan dalam konteks lingkungan eksperimental Azure Automation. Anda mungkin menghadapi masalah performa karena batas memori di lingkungan automation. Atau, Anda mungkin memutuskan untuk menerapkan titik akhir privat untuk Akun Penyimpanan atau SQL Database untuk memperkuat keamanan AOE. Dalam kedua kasus, Anda perlu menjalankan runbook dari Hybrid Worker. Ini adalah Azure atau Komputer Virtual lokal dengan ekstensi Automation Hybrid Worker. Untuk mengubah konteks eksekusi untuk runbook AOE, Anda harus menggunakan skrip Reset-AutomationSchedules.ps1. Lihat cara menggunakan skrip di sub bagian sebelumnya. Setelah mengatur waktu dasar eksekusi runbook, masukkan nama Grup Hybrid Worker tempat Anda ingin menjalankan runbook tersebut.

Penting

  • Komputer Hybrid Worker harus menginstal modul PowerShell yang diperlukan. File upgrade-manifest.json berisi daftar modul yang diperlukan.
  • Setelah Anda mengubah konteks eksekusi runbook menjadi Hybrid Worker, Anda harus selalu menggunakan flag DoPartialUpgrade setiap kali Anda memperbarui AOE, atau Anda akan kehilangan pengaturan jadwal runbook dan kembali ke konfigurasi kotak pasir default.
  • Identitas Terkelola yang digunakan untuk mengautentikasi terhadap Azure, ID Microsoft Entra, dan Lingkup Akun Penagihan masih merupakan identitas yang digunakan Azure Automation. Ini akan digunakan bahkan jika mesin Hybrid Worker memiliki Identitas Terkelola yang ditetapkan (lihat detail). Identitas Terkelola yang ditetapkan pengguna didukung dalam konteks Hybrid Worker hanya jika:
    • Akun Automation tidak memiliki Identitas Terkelola terkait, yaitu, hanya mesin Hybrid Worker yang dapat memiliki Identitas Terkelola yang Ditetapkan Pengguna.
    • Semua runbook berjalan dalam konteks Hybrid Worker. Dalam hal ini, Anda harus membuat AzureOptimization_UAMIClientID Variabel Automation dengan ID Klien Identitas Terkelola yang Ditetapkan Pengguna sebagai nilai.
    • Nilai AzureOptimization_AuthenticationOption variabel Automation diperbarui ke UserAssignedManagedIdentity.

Menyesuaikan ambang batas

Untuk rekomendasi biaya Advisor, konfigurasi default AOE menghasilkan agregasi metrik VM pada persentil ke-99, tetapi Anda dapat menyesuaikannya agar lebih tidak konservatif. Ada juga ambang batas metrik yang dapat disesuaikan yang digunakan untuk menghitung skor kecocokan. Nilai ambang default adalah 30% untuk CPU (5% untuk rekomendasi matikan), 50% untuk memori (100% untuk matikan) dan 750 Mbps untuk bandwidth jaringan (10 Mbps untuk matikan). Semua konfigurasi yang dapat disesuaikan tersedia sebagai variabel Azure Automation. Informasi dalam tabel berikutnya menyoroti variabel konfigurasi yang paling relevan. Untuk mengaksesnya, buka opsi menu Akun Otomasi Sumber Daya Bersama - Variabel.

Variabel Deskripsi
AzureOptimization_AdvisorFilter Jika Anda tidak tertarik untuk mendapatkan rekomendasi untuk semua pilar Non-Cost Advisor, Anda dapat menentukan filter tingkat pilar (daftar yang dipisahkan koma dengan setidaknya salah satu nilai berikut: HighAvailability,Security,Performance,OperationalExcellence). Beralih ke semua pilar.
AzureOptimization_AuthenticationOption Metode autentikasi default untuk Runbook Automation adalah RunAsAccount. Tetapi Anda dapat mengubah ke ManagedIdentity jika Anda menggunakan Hybrid Worker di Azure VM.
AzureOptimization_ConsumptionOffsetDays Runbook pengumpulan data Konsumsi Azure menjalankan kueri setiap hari untuk mencari peristiwa penagihan yang terjadi tujuh hari sebelumnya (default). Anda dapat mengubah ke offset yang lebih dekat, tetapi perlu diingat bahwa beberapa jenis langganan (misalnya, MSDN) tidak mendukung nilai yang lebih rendah.
AzureOptimization_PerfPercentileCpu Persentil default untuk agregasi metrik CPU adalah 99. Saat persentil menurun, algoritma skor kecocokan ukuran tepat VM menyesuaikan dengan pendekatan yang kurang konservatif.
AzureOptimization_PerfPercentileDisk Persentil bawaan yang digunakan untuk agregasi metrik IO/throughput disk adalah 99. Saat persentil menurun, algoritma skor kecocokan ukuran tepat VM menyesuaikan dengan pendekatan yang kurang konservatif.
AzureOptimization_PerfPercentileMemory Persentil default untuk agregasi metrik memori adalah 99. Saat persentil menurun, algoritma skor kecocokan ukuran tepat VM menyesuaikan dengan pendekatan yang kurang konservatif.
AzureOptimization_PerfPercentileNetwork Persentil default untuk agregasi metrik jaringan adalah 99. Saat persentil menurun, algoritma skor kecocokan ukuran tepat VM menyesuaikan dengan pendekatan yang kurang konservatif.
AzureOptimization_PerfPercentileSqlDtu Persentil default yang akan digunakan untuk metrik SQL DB DTU. Saat persentil lebih rendah, algoritma penentuan ukuran yang tepat SQL Database menyesuaikan dengan cara yang kurang konservatif.
AzureOptimization_PerfThresholdCpuPercentage Ambang CPU (dalam % Waktu Prosesor). Di atasnya, skor kecocokan ukuran yang sesuai VM berkurang. Di bawahnya, rekomendasi biaya Azure Virtual Machine Scale Set (set skala) untuk ukuran yang tepat memicu.
AzureOptimization_PerfThresholdCpuShutdownPercentage Ambang CPU (dalam % Waktu Prosesor). Di atasnya, skor kecocokan ukuran tepat VM menurun (hanya rekomendasi matikan).
AzureOptimization_PerfThresholdCpuDegradedMaxPercentage Ambang CPU (Maksimum yang diamati dalam Persentase Waktu Prosesor). Di atasnya, skala menetapkan pemicu rekomendasi performa ukuran yang tepat.
AzureOptimization_PerfThresholdCpuDegradedAvgPercentage Ambang CPU (Rata-rata diamati dalam % Waktu Prosesor). Di atasnya, skala menetapkan pemicu rekomendasi performa ukuran yang tepat.
AzureOptimization_PerfThresholdMemoryPercentage Ambang memori (dalam % Memori yang Digunakan). Di atasnya, skor kecocokan ukuran yang sesuai VM berkurang. Di bawahnya, skala menetapkan pemicu rekomendasi Biaya ukuran yang tepat.
AzureOptimization_PerfThresholdMemoryShutdownPercentage Ambang memori (dalam % Memori yang Digunakan). Di atasnya, skor kecocokan ukuran tepat VM menurun (hanya rekomendasi matikan).
AzureOptimization_PerfThresholdMemoryDegradedPercentage Ambang memori (dalam % Memori yang Digunakan). Di atasnya, skala menetapkan pemicu rekomendasi performa ukuran yang tepat.
AzureOptimization_PerfThresholdNetworkMbps Ambang batas jaringan (dalam Mbps Total). Di atasnya, skor kecocokan ukuran yang sesuai VM berkurang.
AzureOptimization_PerfThresholdNetworkShutdownMbps Ambang batas jaringan (dalam Mbps Total). Di atasnya, skor kecocokan ukuran tepat VM menurun (hanya rekomendasi matikan).
AzureOptimization_PerfThresholdDtuPercentage Batas persentase penggunaan DTU. Di bawahnya, instans SQL Database dianggap kurang digunakan.
AzureOptimization_RecommendAdvisorPeriodInDays Interval dalam hari untuk mencari rekomendasi Advisor di repositori Analitik Log - defaultnya adalah 7, karena rekomendasi Advisor dikumpulkan seminggu sekali.
AzureOptimization_RecommendationAADMaxCredValidityYears Jumlah maksimum tahun untuk kredensial/validitas sertifikat Perwakilan Layanan - validitas apa pun di atas interval ini menghasilkan rekomendasi Keamanan. Diatur secara default ke 2.
AzureOptimization_RecommendationAADMinCredValidityDays Jumlah hari minimum untuk kredensial/sertifikat Perwakilan Layanan sebelum kedaluwarsa - validitas apa pun di bawah interval ini menghasilkan rekomendasi Keunggulan Operasional. Secara otomatis diatur ke 30.
AzureOptimization_RecommendationLongDeallocatedVmsIntervalDays Jumlah hari berturut-turut VM dihentikan alokasinya sebelum direkomendasikan untuk penghapusan (Mesin Virtual telah dihentikan alokasinya untuk waktu yang lama dengan disk yang masih menimbulkan biaya). Secara otomatis diatur ke 30.
AzureOptimization_RecommendationVNetSubnetMaxUsedPercentageThreshold Persentase maksimum yang ditoleransi untuk penggunaan ruang IP subnet. Ditetapkan ke 80.
AzureOptimization_RecommendationVNetSubnetMinUsedPercentageThreshold Persentase minimum untuk penggunaan ruang IP subnet - penggunaan apa pun di bawah nilai ini menandai subnet masing-masing sebagai menggunakan ruang IP rendah. Secara default diatur menjadi 5.
AzureOptimization_RecommendationVNetSubnetEmptyMinAgeInDays Usia minimum dalam hitungan hari bagi subnet kosong untuk ditandai, sehingga mencegah penandaan pada subnet yang baru dibuat. Secara otomatis diatur ke 30.
AzureOptimization_RecommendationVNetSubnetUsedPercentageExclusions Daftar nama subnet yang diapit oleh tanda kutip tunggal dan dipisahkan oleh koma yang harus dikecualikan dari rekomendasi persentase penggunaan subnet, misalnya, 'gatewaysubnet','azurebastionsubnet'. Bawaan ke 'gatewaysubnet'.
AzureOptimization_RecommendationRBACAssignmentsPercentageThreshold Persentase maksimum penetapan RBAC membatasi penggunaan. Ditetapkan ke 80.
AzureOptimization_RecommendationResourceGroupsPerSubPercentageThreshold Persentase maksimum jumlah Grup Sumber Daya per langganan membatasi penggunaan. Ditetapkan ke 80.
AzureOptimization_RecommendationRBACSubscriptionsAssignmentsLimit Batas maksimum untuk penetapan RBAC per langganan. Saat ini diatur ke 2000 (seperti didokumentasikan).
AzureOptimization_RecommendationRBACMgmtGroupsAssignmentsLimit Batas maksimum untuk penugasan RBAC per grup manajemen. Saat ini diset ke 500 (seperti yang didokumentasikan).
AzureOptimization_RecommendationResourceGroupsPerSubLimit Batas maksimum untuk jumlah Grup Sumber Daya per langganan. Saat ini disetel ke 980 (seperti yang didokumentasikan).
AzureOptimization_RecommendationStorageAcountGrowthThresholdPercentage Persentase pertumbuhan Akun Penyimpanan minimum yang diperlukan untuk menandai Penyimpanan yang tidak memiliki kebijakan retensi.
AzureOptimization_RecommendationStorageAcountGrowthMonthlyCostThreshold Biaya bulanan minimum (dalam mata uang EA/MCA Anda) diperlukan untuk menandai Penyimpanan sebagai tidak memiliki kebijakan penyimpanan.
AzureOptimization_RecommendationStorageAcountGrowthLookbackDays Periode tinjauan (dalam hari) untuk menganalisis pertumbuhan akun penyimpanan.
AzureOptimization_ReferenceRegion Wilayah Azure digunakan sebagai referensi untuk mendapatkan daftar SKU yang tersedia (default ke westeurope).
AzureOptimization_RemediateRightSizeMinFitScore Skor kecocokan minimum yang harus dimiliki oleh rekomendasi penyesuaian ukuran VM agar remediasi dapat terjadi.
AzureOptimization_RemediateRightSizeMinWeeksInARow Jumlah minimum minggu berturut-turut di mana rekomendasi pengoptimalan ukuran VM harus diselesaikan agar remediasi dapat dilakukan.
AzureOptimization_RemediateRightSizeTagsFilter Nama/nilai tag harus ada pada rekomendasi ukuran tepat VM agar remediasi terjadi. Contoh: [ { "tagName": "a", "tagValue": "b" }, { "tagName": "c", "tagValue": "d" } ]
AzureOptimization_RemediateLongDeallocatedVMsMinFitScore Skor kecocokan minimum yang harus dimiliki rekomendasi VM yang tidak lagi dialokasikan lama diperlukan agar remediasi dapat berlangsung.
AzureOptimization_RemediateLongDeallocatedVMsMinWeeksInARow Jumlah minimum minggu berturut-turut rekomendasi VM yang tidak dialokasikan untuk waktu yang lama harus selesai untuk remediasi dapat dilakukan.
AzureOptimization_RemediateLongDeallocatedVMsTagsFilter "Pasangan nama/nilai tag yang harus dimiliki oleh rekomendasi VM yang telah lama tidak dialokasikan untuk memungkinkan terjadinya remediasi." Contoh: [ { "tagName": "a", "tagValue": "b" }, { "tagName": "c", "tagValue": "d" } ]
AzureOptimization_RemediateUnattachedDisksMinFitScore Skor kecocokan minimum yang harus dimiliki oleh rekomendasi disk yang tidak terikat untuk remediasi terjadi.
AzureOptimization_RemediateUnattachedDisksMinWeeksInARow Jumlah minimum minggu berturut-turut rekomendasi disk yang tidak terhubung harus diselesaikan agar remediasi dapat terjadi.
AzureOptimization_RemediateUnattachedDisksAction Tindakan untuk menerapkan remediasi rekomendasi disk yang tidak terpasang (Delete atau Downsize).
AzureOptimization_RemediateUnattachedDisksTagsFilter Pasangan nama/nilai tag yang harus dimiliki rekomendasi disk yang tidak terpasang agar remediasi dapat terjadi. Contoh: [ { "tagName": "a", "tagValue": "b" }, { "tagName": "c", "tagValue": "d" } ]
AzureOptimization_RightSizeAdditionalPerfWorkspaces A comma-separated list of other Log Analytics workspace IDs where to look for VM metrics (see Configuring workspaces). Daftar ID ruang kerja Log Analytics lainnya yang dipisahkan dengan koma untuk mencari metrik VM (lihat Mengonfigurasi ruang kerja).
AzureOptimization_PerfThresholdDiskIOPSPercentage Ambang persentase penggunaan IOPS disk. Rekomendasi disk Premium SSD yang kurang dimanfaatkan aktif di bawahnya.
AzureOptimization_PerfThresholdDiskMBsPercentage Ambang batas persentase penggunaan throughput disk. Rekomendasi disk Premium SSD yang kurang dimanfaatkan aktif di bawahnya.
AzureOptimization_RecommendationsMaxAgeInDays Usia maksimum (dalam hari) agar rekomendasi disimpan dalam database SQL. Default: 365.
AzureOptimization_RetailPricesCurrencyCode Kode mata uang (misalnya, EUR, USD, dan sebagainya) digunakan untuk mengumpulkan harga ritel Reservasi.
AzureOptimization_PriceSheetMeterCategories Untuk menghindari pengambilan data yang tidak perlu, kategori meter yang dipisahkan dengan koma digunakan untuk pemfilteran lembar harga. Bawaan ke "Virtual Machines,Storage".
AzureOptimization_ConsumptionScope Cakupan ekspor konsumsi: Subscription (default), BillingProfile (hanya MCA), atau BillingAccount (untuk MCA, memerlukan penambahan peran Pembaca Akun Penagihan ke identitas terkelola AOE). Lihat detail selengkapnya.

Produk terkait:

Solusi terkait: