Sampel PowerShell Azure Monitor

Artikel ini menunjukkan kepada Anda perintah PowerShell sampel untuk membantu Anda mengakses fitur Azure Monitor.

Catatan

Azure Monitor adalah nama baru untuk yang dulu disebut "Azure Insights" hingga 25 Sep 2016. Namun, namespace layanan dan dengan demikian perintah berikut masih berisi kata wawasan.

Catatan

Artikel ini menggunakan modul Azure Az PowerShell, yang merupakan modul PowerShell yang direkomendasikan untuk berinteraksi dengan Azure. Untuk mulai menggunakan modul Az PowerShell, lihat Menginstal Azure PowerShell. Untuk mempelajari cara bermigrasi ke modul Az PowerShell, lihat Memigrasikan Azure PowerShell dari AzureRM ke Az.

Menyiapkan PowerShell

Jika belum, siapkan PowerShell untuk berjalan di komputer Anda. Untuk mengetahui informasi selengkapnya, lihat Cara memasang dan mengonfigurasi PowerShell.

Contoh dalam artikel ini

Contoh dalam artikel ini menggambarkan cara Anda dapat menggunakan cmdlet Azure Monitor. Anda juga dapat meninjau seluruh daftar cmdlet PowerShell Azure Monitor di Cmdlet Azure Monitor (Wawasan).

Masuk dan gunakan langganan

Pertama, masuk ke langganan Azure Anda.

Connect-AzAccount

Anda akan melihat layar masuk. Setelah masuk ke Akun, TenantID, dan ID Langganan default Anda akan ditampilkan. Semua cmdlet Azure berfungsi dalam konteks langganan default Anda. Untuk melihat daftar langganan yang dapat Anda akses, gunakan perintah berikut ini:

Get-AzSubscription

Untuk melihat konteks kerja Anda (langganan mana yang dijalankan oleh perintah Anda), gunakan perintah berikut:

Get-AzContext

Untuk mengubah konteks kerja Anda ke langganan lain, gunakan perintah berikut:

Set-AzContext -SubscriptionId <subscriptionid>

Ambil log Aktivitas

Gunakan cmdlet Get-AzLog. Berikut ini adalah beberapa contoh umum. Log Aktivitas menyimpan operasi selama 90 hari terakhir. Menggunakan tanggal sebelum waktu ini menghasilkan pesan kesalahan.

Lihat tanggal/waktu saat ini untuk memverifikasi jam berapa yang digunakan dalam perintah di bawah ini:

Get-Date

Dapatkan entri log dari waktu/tanggal ini hingga sekarang:

Get-AzLog -StartTime 2019-03-01T10:30

Dapatkan entri log di antara rentang waktu/tanggal:

Get-AzLog -StartTime 2019-01-01T10:30 -EndTime 2015-01-01T11:30

Dapatkan entri log dari grup sumber daya tertentu:

Get-AzLog -ResourceGroup 'myrg1'

Dapatkan entri log dari penyedia sumber tertentu di antara rentang waktu/tanggal:

Get-AzLog -ResourceProvider 'Microsoft.Web' -StartTime 2015-01-01T10:30 -EndTime 2015-01-01T11:30

Dapatkan semua entri log dengan pemanggil tertentu:

Get-AzLog -Caller 'myname@company.com'

Perintah berikut mengambil 1000 kejadian terakhir dari log aktivitas:

Get-AzLog -MaxRecord 1000

Get-AzLog mendukung banyak parameter lainnya. Lihat referensi Get-AzLog untuk mengetahui informasi selengkapnya.

Catatan

Get-AzLog hanya memberikan riwayat 15 hari. Dengan parameter -MaxRecords, Anda dapat meminta peristiwa N terakhir yang telah lebih dari 15 hari. Untuk mengakses peristiwa yang lebih lama dari 15 hari, gunakan REST API atau SDK (sampel C# yang menggunakan SDK). Jika Anda tidak menyertakan StartTime, nilai default-nya adalah EndTime dikurangi satu jam. Jika Anda tidak menyertakan EndTime, nilai default-nya adalah saat ini. Semua waktu berada dalam UTC.

Mengambil riwayat pemberitahuan

Untuk melihat semua kejadian pemberitahuan, Anda bisa mengkueri log Azure Resource Manager menggunakan contoh berikut.

Get-AzLog -Caller "Microsoft.Insights/alertRules" -DetailedOutput -StartTime 2015-03-01

Untuk melihat riwayat untuk aturan pemberitahuan tertentu, Anda dapat menggunakan cmdlet Get-AzAlertHistory, meneruskan ID sumber daya aturan pemberitahuan.

Get-AzAlertHistory -ResourceId /subscriptions/s1/resourceGroups/rg1/providers/microsoft.insights/alertrules/myalert -StartTime 2016-03-1 -Status Activated

Cmdlet Get-AzAlertHistory mendukung berbagai parameter. Informasi selengkapnya, lihat Get-AlertHistory.

Mengambil informasi tentang aturan pemberitahuan

Semua perintah berikut bertindak pada Grup Sumber Daya bernama "montest".

Melihat semua properti aturan pemberitahuan:

Get-AzAlertRule -Name simpletestCPU -ResourceGroup montest -DetailedOutput

Mengambil semua pemberitahuan pada grup sumber daya:

Get-AzAlertRule -ResourceGroup montest

Mengambil semua aturan pemberitahuan yang diatur untuk sumber daya target. Misalnya, semua aturan pemberitahuan diatur pada komputer virtual.

Get-AzAlertRule -ResourceGroup montest -TargetResourceId /subscriptions/s1/resourceGroups/montest/providers/Microsoft.Compute/virtualMachines/testconfig

Get-AzAlertRule mendukung parameter lainnya. Lihat Get-AlertRule untuk mengetahui informasi selengkapnya.

Membuat pemberitahuan metrik

Anda dapat menggunakan cmdlet Add-AlertRule untuk membuat, memperbarui, atau menonaktifkan aturan pemberitahuan.

Anda dapat membuat properti surel dan webhook masing-masing menggunakan New-AzAlertRuleEmail dan New-AzAlertRuleWebhook. Di cmdlet aturan Peringatan, tetapkan properti ini sebagai tindakan ke properti Tindakan dari Aturan Pemberitahuan.

Tabel berikut menjelaskan parameter dan nilai yang digunakan untuk membuat pemberitahuan menggunakan metrik.

parameter nilai
Nama simpletestdiskwrite
Lokasi aturan pemberitahuan ini US Timur
ResourceGroup montest
TargetResourceId /subscriptions/s1/resourceGroups/montest/providers/Microsoft.Compute/virtualMachines/testconfig
MetricName pemberitahuan yang dibuat \PhysicalDisk(_Total)\Disk Writes/sec. Lihat cmdlet Get-MetricDefinitions tentang cara mengambil nama metrik yang tepat
operator GreaterThan
Nilai ambang (hitungan/detik untuk metrik ini) 1
WindowSize (format hh:mm:ss) 00:05:00
agregator (statistik metrik, yang menggunakan jumlah Rata-Rata, dalam hal ini) Rata-rata
surel kustom (array untai (karakter)) 'foo@example.com','bar@example.com'
mengirim surel ke pemilik, kontributor, dan pembaca -SendToServiceOwners

Membuat tindakan Surel

$actionEmail = New-AzAlertRuleEmail -CustomEmail myname@company.com

Membuat tindakan Webhook

$actionWebhook = New-AzAlertRuleWebhook -ServiceUri https://example.com?token=mytoken

Membuat aturan pemberitahuan pada metrik CPU% pada komputer virtual klasik

Add-AzMetricAlertRule -Name vmcpu_gt_1 -Location "East US" -ResourceGroup myrg1 -TargetResourceId /subscriptions/s1/resourceGroups/myrg1/providers/Microsoft.ClassicCompute/virtualMachines/my_vm1 -MetricName "Percentage CPU" -Operator GreaterThan -Threshold 1 -WindowSize 00:05:00 -TimeAggregationOperator Average -Action $actionEmail, $actionWebhook -Description "alert on CPU > 1%"

Mengambil aturan pemberitahuan

Get-AzAlertRule -Name vmcpu_gt_1 -ResourceGroup myrg1 -DetailedOutput

Tambahkan cmdlet pemberitahuan juga memperbarui aturan jika aturan pemberitahuan sudah ada untuk properti yang diberikan. Untuk menonaktifkan aturan pemberitahuan, sertakan parameter -DisableRule.

Mendapatkan daftar metrik yang tersedia untuk pemberitahuan

Anda dapat menggunakan cmdlet Get-AzMetricDefinition untuk melihat daftar semua metrik untuk sumber daya tertentu.

Get-AzMetricDefinition -ResourceId <resource_id>

Contoh berikut menghasilkan tabel dengan Nama metrik dan Unit untuk tabel tersebut.

Get-AzMetricDefinition -ResourceId <resource_id> | Format-Table -Property Name,Unit

Daftar lengkap opsi yang tersedia untuk Get-AzMetricDefinition tersedia di Get-MetricDefinitions.

Membuat dan mengelola pemberitahuan Log Aktivitas

Anda dapat menggunakan cmdlet Set-AzActivityLogAlert untuk mengatur pemberitahuan Log Aktivitas. Pemberitahuan Log Aktivitas mengharuskan Anda menentukan kondisi Anda sebagai kamus kondisi terlebih dahulu, lalu membuat pemberitahuan yang menggunakan kondisi tersebut.


$condition1 = New-AzActivityLogAlertCondition -Field 'category' -Equal 'Administrative'
$condition2 = New-AzActivityLogAlertCondition -Field 'operationName' -Equal 'Microsoft.Compute/virtualMachines/write'
$additionalWebhookProperties = New-Object "System.Collections.Generic.Dictionary``2[System.String,System.String]"
$additionalWebhookProperties.Add('customProperty', 'someValue')
$actionGrp1 = New-AzActionGroup -ActionGroupId '/subscriptions/<subid>/providers/Microsoft.Insights/actiongr1' -WebhookProperty $additionalWebhookProperties
Set-AzActivityLogAlert -Location 'Global' -Name 'alert on VM create' -ResourceGroupName 'myResourceGroup' -Scope '/subscriptions/<subid>' -Action $actionGrp1 -Condition $condition1, $condition2

Properti webhook tambahan bersifat opsional. Anda bisa mendapatkan kembali konten Pemberitahuan Log Aktivitas menggunakan Get-AzActivityLogAlert.

Membuat dan mengelola pengaturan AutoScale

Catatan

Untuk Azure Cloud Services (Microsoft.ClassicCompute), skala otomatis mendukung butir waktu 5 menit (PT5M). Untuk layanan lain skala otomatis mendukung butir waktu minimal 1 menit (PT1M)

Sumber daya (Aplikasi web, Komputer Virtual, Layanan Awan, atau Set Skala Komputer Virtual) hanya dapat memiliki satu pengaturan skala otomatis yang dikonfigurasi untuk sumber daya. Namun, setiap pengaturan skala otomatis dapat memiliki beberapa profil. Misalnya, satu untuk profil skala berbasis performa dan profil kedua untuk profil berbasis jadwal. Setiap profil dapat memiliki beberapa aturan yang dikonfigurasi di dalamnya. Untuk mengetahui informasi selengkapnya tentang Skala otomatis, lihat Cara Menskalakan Otomatis Aplikasi.

Berikut adalah langkah-langkah untuk digunakan:

  1. Membuat aturan.
  2. Membuat profil yang memetakan aturan yang Anda buat sebelumnya ke profil.
  3. Opsional: Membuat pemberitahuan untuk Skala otomatis dengan mengonfigurasi properti webhook dan surel.
  4. Membuat pengaturan skala otomatis dengan nama pada sumber daya target dengan memetakan profil dan pemberitahuan yang Anda buat di langkah-langkah sebelumnya.

Contoh berikut menunjukkan kepada Anda cara membuat pengaturan Skala otomatis untuk Set Skala Komputer Virtual untuk sistem operasi Windows yang berbasis dengan menggunakan metrik penggunaan CPU.

Pertama, buat aturan untuk peluasan skala dengan peningkatan jumlah instans.

$rule1 = New-AzAutoscaleRule -MetricName "Percentage CPU" -MetricResourceId /subscriptions/s1/resourceGroups/big2/providers/Microsoft.Compute/virtualMachineScaleSets/big2 -Operator GreaterThan -MetricStatistic Average -Threshold 60 -TimeGrain 00:01:00 -TimeWindow 00:10:00 -ScaleActionCooldown 00:10:00 -ScaleActionDirection Increase -ScaleActionValue 1

Selanjutnya, buat aturan untuk menskalakan, dengan jumlah instans berkurang.

$rule2 = New-AzAutoscaleRule -MetricName "Percentage CPU" -MetricResourceId /subscriptions/s1/resourceGroups/big2/providers/Microsoft.Compute/virtualMachineScaleSets/big2 -Operator GreaterThan -MetricStatistic Average -Threshold 30 -TimeGrain 00:01:00 -TimeWindow 00:10:00 -ScaleActionCooldown 00:10:00 -ScaleActionDirection Decrease -ScaleActionValue 1

Kemudian, buat profil untuk aturan.

$profile1 = New-AzAutoscaleProfile -DefaultCapacity 2 -MaximumCapacity 10 -MinimumCapacity 2 -Rules $rule1,$rule2 -Name "My_Profile"

Membuat properti webhook.

$webhook_scale = New-AzAutoscaleWebhook -ServiceUri "https://example.com?mytoken=mytokenvalue"

Buat properti notifikasi untuk pengaturan skala otomatis, termasuk surel dan webhook yang Anda buat sebelumnya.

$notification1= New-AzAutoscaleNotification -CustomEmails ashwink@microsoft.com -SendEmailToSubscriptionAdministrators SendEmailToSubscriptionCoAdministrators -Webhooks $webhook_scale

Terakhir, buat pengaturan skala otomatis untuk menambahkan profil yang Anda buat sebelumnya.

Add-AzAutoscaleSetting -Location "East US" -Name "MyScaleVMSSSetting" -ResourceGroup big2 -TargetResourceId /subscriptions/s1/resourceGroups/big2/providers/Microsoft.Compute/virtualMachineScaleSets/big2 -AutoscaleProfiles $profile1 -Notifications $notification1

Untuk mengetahui informasi selengkapnya tentang mengelola pengaturan Skala otomatis, lihat Get-AutoscaleSetting.

Riwayat skala otomatis

Contoh berikut menunjukkan kepada Anda cara melihat kejadian skala otomatis dan pemberitahuan terbaru. Menggunkan pencarian log aktivitas untuk melihat riwayat skala otomatis.

Get-AzLog -Caller "Microsoft.Insights/autoscaleSettings" -DetailedOutput -StartTime 2015-03-01

Anda dapat menggunakan cmdlet Get-AzAutoScaleHistory untuk mengambil riwayat AutoScale.

Get-AzAutoScaleHistory -ResourceId /subscriptions/s1/resourceGroups/myrg1/providers/microsoft.insights/autoscalesettings/myScaleSetting -StartTime 2016-03-15 -DetailedOutput

Untuk mengetahui informasi selengkapnya, lihat Get-AutoscaleHistory.

Melihat detail untuk pengaturan skala otomatis

Anda dapat menggunakan cmdlet Get-Autoscalesetting untuk mengambil informasi lebih lanjut tentang pengaturan skala otomatis.

Contoh berikut menunjukkan detail tentang semua pengaturan skala otomatis di grup sumber daya 'myrg1'.

Get-AzAutoscalesetting -ResourceGroup myrg1 -DetailedOutput

Contoh berikut menunjukkan detail tentang semua pengaturan skala otomatis di grup sumber daya 'myrg1' dan khususnya pengaturan skala otomatis bernama 'MyScaleVMSSSetting'.

Get-AzAutoscalesetting -ResourceGroup myrg1 -Name MyScaleVMSSSetting -DetailedOutput

Menghapus pengaturan skala otomatis

Anda dapat menggunakan cmdlet Remove-Autoscalesetting untuk menghapus pengaturan skala otomatis.

Remove-AzAutoscalesetting -ResourceGroup myrg1 -Name MyScaleVMSSSetting

Mengelola profil log untuk log aktivitas

Anda dapat membuat log profil dan mengekspor data dari log aktivitas ke akun penyimpanan dan Anda dapat mengonfigurasi retensi data untuk akun. Secara opsional, Anda juga dapat melakukan mengalirkan data ke Hub Kejadian. Fitur ini saat ini berada di Pratinjau dan Anda hanya dapat membuat satu profil log per langganan. Anda dapat menggunakan cmdlet berikut dengan langganan Anda saat ini untuk membuat dan mengelola profil log. Anda juga dapat memilih langganan tertentu. Meskipun PowerShell default ke langganan saat ini, Anda selalu dapat mengubahnya menggunakan Set-AzContext. Anda dapat mengonfigurasi log aktivitas untuk merutekan data ke akun penyimpanan atau Hub Kejadian apa pun dalam langganan tersebut. Data ditulis sebagai file blob dalam format JSON.

Dapatkan profil log

Untuk mengambil profil log yang ada, gunakan cmdlet Get-AzLogProfile.

Tambahkan profil log tanpa retensi data

Add-AzLogProfile -Name my_log_profile_s1 -StorageAccountId /subscriptions/s1/resourceGroups/myrg1/providers/Microsoft.Storage/storageAccounts/my_storage -Location global,westus,eastus,northeurope,westeurope,eastasia,southeastasia,japaneast,japanwest,northcentralus,southcentralus,eastus2,centralus,australiaeast,australiasoutheast,brazilsouth,centralindia,southindia,westindia

Hapus profil log

Remove-AzLogProfile -name my_log_profile_s1

Tambahkan profil log dengan retensi data

Anda dapat menetapkan properti -RetentionInDays dengan jumlah hari sebagai bilangan bulat positif, tempat data ditahan.

Add-AzLogProfile -Name my_log_profile_s1 -StorageAccountId /subscriptions/s1/resourceGroups/myrg1/providers/Microsoft.Storage/storageAccounts/my_storage -Location global,westus,eastus,northeurope,westeurope,eastasia,southeastasia,japaneast,japanwest,northcentralus,southcentralus,eastus2,centralus,australiaeast,australiasoutheast,brazilsouth,centralindia,southindia,westindia -RetentionInDays 90

Menambahkan profil log dengan retensi dan EventHub

Selain merutekan data ke akun penyimpanan, Anda juga dapat mengalirkan data ke Hub Kejadian. Dalam rilis pratinjau ini konfigurasi akun penyimpanan wajib tetapi konfigurasi Hub Kejadian bersifat opsional.

Add-AzLogProfile -Name my_log_profile_s1 -StorageAccountId /subscriptions/s1/resourceGroups/myrg1/providers/Microsoft.Storage/storageAccounts/my_storage -serviceBusRuleId /subscriptions/s1/resourceGroups/Default-ServiceBus-EastUS/providers/Microsoft.ServiceBus/namespaces/mytestSB/authorizationrules/RootManageSharedAccessKey -Location global,westus,eastus,northeurope,westeurope,eastasia,southeastasia,japaneast,japanwest,northcentralus,southcentralus,eastus2,centralus,australiaeast,australiasoutheast,brazilsouth,centralindia,southindia,westindia -RetentionInDays 90

Konfigurasikan log diagnostik

Banyak layanan Azure menyediakan log dan telemetri tambahan yang dapat melakukan satu atau beberapa hal berikut ini:

  • Dikonfigurasi untuk menyimpan data di akun Azure Storage Anda
  • dikirim ke Azure Event Hubs
  • dikirim ke ruang kerja Analitik Log.

Operasi hanya dapat dilakukan pada tingkat sumber daya. Akun penyimpanan atau hub kejadian harus ada di wilayah yang sama dengan sumber daya target tempat pengaturan diagnostik dikonfigurasi.

Dapatkan pengaturan diagnostik

Get-AzDiagnosticSetting -ResourceId /subscriptions/s1/resourceGroups/myrg1/providers/Microsoft.Logic/workflows/andy0315logicapp

Nonaktifkan pengaturan diagnostik

Set-AzDiagnosticSetting -ResourceId /subscriptions/s1/resourceGroups/myrg1/providers/Microsoft.Logic/workflows/andy0315logicapp -StorageAccountId /subscriptions/s1/resourceGroups/Default-Storage-WestUS/providers/Microsoft.Storage/storageAccounts/mystorageaccount -Enable $false

Aktifkan pengaturan diagnostik tanpa retensi

Set-AzDiagnosticSetting -ResourceId /subscriptions/s1/resourceGroups/myrg1/providers/Microsoft.Logic/workflows/andy0315logicapp -StorageAccountId /subscriptions/s1/resourceGroups/Default-Storage-WestUS/providers/Microsoft.Storage/storageAccounts/mystorageaccount -Enable $true

Aktifkan pengaturan diagnostik dengan retensi

Set-AzDiagnosticSetting -ResourceId /subscriptions/s1/resourceGroups/myrg1/providers/Microsoft.Logic/workflows/andy0315logicapp -StorageAccountId /subscriptions/s1/resourceGroups/Default-Storage-WestUS/providers/Microsoft.Storage/storageAccounts/mystorageaccount -Enable $true -RetentionEnabled $true -RetentionInDays 90

Aktifkan pengaturan diagnostik dengan retensi untuk kategori log tertentu

Set-AzDiagnosticSetting -ResourceId /subscriptions/s1/resourceGroups/insights-integration/providers/Microsoft.Network/networkSecurityGroups/viruela1 -StorageAccountId /subscriptions/s1/resourceGroups/myrg1/providers/Microsoft.Storage/storageAccounts/sakteststorage -Categories NetworkSecurityGroupEvent -Enable $true -RetentionEnabled $true -RetentionInDays 90

Aktifkan pengaturan diagnostik untuk Azure Event Hubs

Set-AzDiagnosticSetting -ResourceId /subscriptions/s1/resourceGroups/insights-integration/providers/Microsoft.Network/networkSecurityGroups/viruela1 -serviceBusRuleId /subscriptions/s1/resourceGroups/Default-ServiceBus-EastUS/providers/Microsoft.ServiceBus/namespaces/mytestSB/authorizationrules/RootManageSharedAccessKey -Enable $true

Aktifkan setelan diagnostik untuk Analitik Log

Set-AzDiagnosticSetting -ResourceId /subscriptions/s1/resourceGroups/insights-integration/providers/Microsoft.Network/networkSecurityGroups/viruela1 -WorkspaceId /subscriptions/s1/resourceGroups/insights-integration/providers/providers/microsoft.operationalinsights/workspaces/myWorkspace -Enabled $true

Perhatikan bahwa properti WorkspaceId mengambil ID sumber daya ruang kerja. Anda dapat memperoleh ID sumber daya ruang kerja Analitik Log Anda menggunakan perintah berikut:

(Get-AzOperationalInsightsWorkspace).ResourceId

Perintah ini dapat digabungkan untuk mengirim data ke beberapa tujuan.