Esempi di PowerShell per Monitoraggio di Azure
Questo articolo illustra comandi di PowerShell di esempio per accedere rapidamente alle funzionalità di Monitoraggio di Azure.
Nota
Dal 25 settembre 2016 Monitoraggio di Azure è il nuovo nome di "Azure Insights". Tuttavia, gli spazi dei nomi e quindi i comandi seguenti contengono ancora il termine insights.
Nota
Questo articolo usa il modulo Azure Az PowerShell, che è il modulo PowerShell consigliato per l'interazione con Azure. Per iniziare a usare il modulo Az PowerShell, vedere Installare Azure PowerShell. Per informazioni su come eseguire la migrazione al modulo AZ PowerShell, vedere Eseguire la migrazione di Azure PowerShell da AzureRM ad Az.
Configurare PowerShell
Se non è ancora stato fatto, configurare PowerShell per l'esecuzione sul computer. Per altre informazioni, vedere Come installare e configurare PowerShell.
Esempi in questo articolo
Gli esempi in questo articolo illustrano come usare i cmdlet di Monitoraggio di Azure. È anche possibile esaminare l'elenco completo di cmdlet di PowerShell di Monitoraggio di Azure nell'argomento relativo ai cmdlet di Monitoraggio di Azure(Azure Insights).
Eseguire l'acccesso e usare le sottoscrizioni
Per prima cosa, accedere alla sottoscrizione di Azure.
Connect-AzAccount
Verrà visualizzata una schermata di accesso. Dopo aver effettuato l'accesso, vengono visualizzati l'account, l'ID tenant e l'ID della sottoscrizione predefinito. Tutti i cmdlet di Azure funzionano nel contesto della sottoscrizione predefinita. Per visualizzare l'elenco delle sottoscrizioni accessibili, usare il comando seguente:
Get-AzSubscription
Per vedere il contesto di lavoro (la sottoscrizione in cui vengono eseguiti i comandi), usare il comando seguente:
Get-AzContext
Per modificare il contesto di lavoro in una sottoscrizione diversa, usare il comando seguente:
Set-AzContext -SubscriptionId <subscriptionid>
Recuperare i log attività
Usare il cmdlet Get-AzLog. Di seguito sono riportati alcuni esempi comuni. Il log attività include gli ultimi 90 giorni di operazioni. L'uso di date precedenti a questo intervallo genera un messaggio di errore.
Vedere qual è la data/ora corrente per verificare quali orari usare nei comandi seguenti:
Get-Date
Ottenere le voci di log da questa data e ora fino a oggi:
Get-AzLog -StartTime 2019-03-01T10:30
Ottenere le voci di log in un intervallo di date e ore:
Get-AzLog -StartTime 2019-01-01T10:30 -EndTime 2015-01-01T11:30
Ottenere le voci di log da un gruppo di risorse specifico:
Get-AzLog -ResourceGroup 'myrg1'
Ottenere le voci di log da un provider di risorse specifico in un intervallo di date e ore:
Get-AzLog -ResourceProvider 'Microsoft.Web' -StartTime 2015-01-01T10:30 -EndTime 2015-01-01T11:30
Ottenere tutte le voci di log con un chiamante specifico:
Get-AzLog -Caller 'myname@company.com'
Il comando seguente recupera gli ultimi 1000 eventi dal registro attività:
Get-AzLog -MaxRecord 1000
Get-AzLog
supporta diversi altri parametri. Per altre informazioni, vedere il riferimento Get-AzLog
.
Nota
Get-AzLog
fornisce solo 15 giorni di cronologia. L'uso del parametro -MaxRecords consente di eseguire una query sugli ultimi N eventi, oltre i 15 giorni. Per accedere agli eventi precedenti ai 15 giorni, usare l'API REST o l'SDK (esempio di C# tramite il SDK). Se non si include StartTime, il valore predefinito è EndTime meno un'ora. Se non si include EndTime, il valore predefinito è l’ora corrente. Tutte le ore sono in formato UTC.
Recupero della cronologia di avvisi
Per visualizzare tutti gli eventi di avviso, è possibile eseguire query in Azure Resource Manager usando gli esempi seguenti.
Get-AzLog -Caller "Microsoft.Insights/alertRules" -DetailedOutput -StartTime 2015-03-01
Per visualizzare la cronologia per una regola avviso specifica, è possibile utilizzare il cmdlet Get-AzAlertHistory
passando l'ID risorsa della regola avvisi.
Get-AzAlertHistory -ResourceId /subscriptions/s1/resourceGroups/rg1/providers/microsoft.insights/alertrules/myalert -StartTime 2016-03-1 -Status Activated
Il cmdlet Get-AzAlertHistory
supporta diversi parametri. Per altre informazioni, vedere Get-AlertHistory.
Recupero delle informazioni sulle regole di avviso
Tutti i comandi seguenti agiscono su un gruppo di risorse chiamato "montest".
Visualizzare tutte le proprietà della regola di avviso:
Get-AzAlertRule -Name simpletestCPU -ResourceGroup montest -DetailedOutput
Recuperare tutti gli avvisi in un gruppo di risorse:
Get-AzAlertRule -ResourceGroup montest
Recuperare tutte le regole di avviso impostate per una risorsa di destinazione. Ad esempio, tutte le regole di avviso impostate su una VM.
Get-AzAlertRule -ResourceGroup montest -TargetResourceId /subscriptions/s1/resourceGroups/montest/providers/Microsoft.Compute/virtualMachines/testconfig
Get-AzAlertRule
supporta altri parametri. Per altre informazioni, vedere Get-AlertRule .
Creare avvisi delle metriche
È possibile usare il cmdlet Add-AlertRule
per creare, aggiornare o disabilitare una regola di avviso.
È possibile creare proprietà di posta elettronica e webhook rispettivamente usando New-AzAlertRuleEmail
e New-AzAlertRuleWebhook
. Nel cmdlet della regola di avviso assegnare queste proprietà come azioni alla proprietà Actions della regola di avviso.
La tabella seguente descrive i parametri e valori usati per creare un avviso tramite una metrica.
parametro | Valore |
---|---|
Nome | simpletestdiskwrite |
Posizione di questa regola di avviso | Stati Uniti orientali |
ResourceGroup | montest |
TargetResourceId | /subscriptions/s1/resourceGroups/montest/providers/Microsoft.Compute/virtualMachines/testconfig |
MetricName dell'avviso creato | \PhysicalDisk(_Total)\Disk Writes/sec. Vedere il cmdlet Get-MetricDefinitions per il recupero dei nomi esatti delle metriche |
operator | GreaterThan |
Valore soglia (conteggio al secondo per questa metrica) | 1 |
WindowSize (formato hh:mm:ss) | 00:05:00 |
aggregatore (statistica della metrica che usa il numero medio, in questo caso) | Media |
indirizzi di posta elettronica personalizzati (matrice di stringhe) | 'foo@example.com','bar@example.com' |
invio di messaggi di posta elettronica a proprietari, collaboratori e lettori | -SendToServiceOwners |
Creare un'azione Email
$actionEmail = New-AzAlertRuleEmail -CustomEmail myname@company.com
Creazione di un’azione Webhook
$actionWebhook = New-AzAlertRuleWebhook -ServiceUri https://example.com?token=mytoken
Creazione di una regola di avviso sulla metrica CPU% per una VM classica
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%"
Recupero di una regola di avviso
Get-AzAlertRule -Name vmcpu_gt_1 -ResourceGroup myrg1 -DetailedOutput
Il cmdlet Aggiungi avviso aggiorna anche la regola se esiste già una regola di avviso per le proprietà specificate. Per disabilitare una regola di avviso, includere il parametro -DisableRule.
Acquisizione di un elenco delle metriche disponibili per gli avvisi
Usare il cmdlet Get-AzMetricDefinition
per visualizzare l'elenco di tutte le metriche per una specifica risorsa.
Get-AzMetricDefinition -ResourceId <resource_id>
L'esempio seguente genera una tabella con la metrica Name e il relativo valore Unit.
Get-AzMetricDefinition -ResourceId <resource_id> | Format-Table -Property Name,Unit
Un elenco completo delle opzioni disponibili per Get-AzMetricDefinition
si trova in Get-MetricDefinitions.
Creare e gestire avvisi del log attività
È possibile usare il cmdlet Set-AzActivityLogAlert
per impostare un avviso del log attività. Per un avviso del log attività è prima necessario definire le proprie condizioni come dizionario di condizioni, quindi creare un avviso che usi tali condizioni.
$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
Le altre proprietà del webhook sono facoltative. È possibile ottenere il contenuto di un avviso del log attività usando Get-AzActivityLogAlert
.
Creazione e gestione delle impostazioni di scalabilità automatica
Nota
Per i servizi cloud (Microsoft.ClassicCompute), la scalabilità automatica supporta un intervallo di tempo di 5 minuti (PT5M). Per gli altri servizi, la scalabilità automatica supporta un intervallo di tempo minimo di 1 minuto (PT1M)
Una risorsa, ad esempio un'app Web, una macchina virtuale, un servizio cloud o un set di scalabilità di macchine virtuali, può avere una sola impostazione di scalabilità automatica configurata. Tuttavia, ogni impostazione di scalabilità automatica può includere diversi profili. Ad esempio, un profilo di scalabilità in base alle prestazioni e un altro profilo basato sulla pianificazione. Ogni profilo può avere più regole associate configurate. Per altre informazioni sulla scalabilità automatica, vedere Come configurare la scalabilità automatica di un servizio cloud.
Ecco i passaggi da seguire:
- Creare le regole.
- Creare i profili eseguendo il mapping delle regole create in precedenza.
- Facoltativo: Creare notifiche per la scalabilità automatica configurando le proprietà di webhook e di posta elettronica.
- Creare un'impostazione di scalabilità automatica con un nome per la risorsa di destinazione associando profili e notifiche creati nei passaggi precedenti.
Gli esempi seguenti illustrano come creare un'impostazione di scalabilità automatica per un set di scalabilità di macchine virtuali per un sistema operativo Windows in base alla metrica di utilizzo della CPU.
Per prima cosa, creare una regola per aumentare il numero di istanze, con un incremento del numero di istanze.
$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
Creare poi una regola per ridurre il numero di istanze, con una diminuzione del numero di istanze.
$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
A questo punto, creare un profilo per le regole.
$profile1 = New-AzAutoscaleProfile -DefaultCapacity 2 -MaximumCapacity 10 -MinimumCapacity 2 -Rules $rule1,$rule2 -Name "My_Profile"
Creare una proprietà webhook.
$webhook_scale = New-AzAutoscaleWebhook -ServiceUri "https://example.com?mytoken=mytokenvalue"
Creare la proprietà di notifica per l'impostazione di scalabilità automatica, tra cui posta elettronica e webhook create in precedenza.
$notification1= New-AzAutoscaleNotification -CustomEmails ashwink@microsoft.com -SendEmailToSubscriptionAdministrators SendEmailToSubscriptionCoAdministrators -Webhooks $webhook_scale
Infine, creare l'impostazione di scalabilità automatica da aggiungere al profilo creato in precedenza.
Add-AzAutoscaleSetting -Location "East US" -Name "MyScaleVMSSSetting" -ResourceGroup big2 -TargetResourceId /subscriptions/s1/resourceGroups/big2/providers/Microsoft.Compute/virtualMachineScaleSets/big2 -AutoscaleProfiles $profile1 -Notifications $notification1
Per altre informazioni sulla gestione delle impostazioni di scalabilità automatica, vedere Get-AutoscaleSetting.
Cronologia di scalabilità automatica
Il seguente esempio illustra come visualizzare gli eventi di scalabilità automatica e avviso recenti. Usare la ricerca dei registri attività per consultare la cronologia di scalabilità automatica.
Get-AzLog -Caller "Microsoft.Insights/autoscaleSettings" -DetailedOutput -StartTime 2015-03-01
È possibile usare il cmdlet Get-AzAutoScaleHistory
per recuperare la cronologia di scalabilità automatica.
Get-AzAutoScaleHistory -ResourceId /subscriptions/s1/resourceGroups/myrg1/providers/microsoft.insights/autoscalesettings/myScaleSetting -StartTime 2016-03-15 -DetailedOutput
Per altre informazioni, vedere Get-AutoscaleHistory.
Visualizzazione dei dettagli per un'impostazione di scalabilità automatica
È possibile usare il cmdlet Get-Autoscalesetting
per recuperare altre informazioni sull'impostazione di scalabilità automatica.
L'esempio seguente mostra dettagli su tutte le impostazioni di scalabilità automatica nel gruppo di risorse 'myrg1'.
Get-AzAutoscalesetting -ResourceGroup myrg1 -DetailedOutput
L'esempio seguente mostra i dettagli su tutte le impostazioni di scalabilità automatica nel gruppo di risorse 'myrg1' e in particolare l'impostazione di scalabilità automatica denominata 'MyScaleVMSSSetting'.
Get-AzAutoscalesetting -ResourceGroup myrg1 -Name MyScaleVMSSSetting -DetailedOutput
Rimozione di un'impostazione di scalabilità automatica
È possibile usare il cmdlet Remove-Autoscalesetting
per eliminare un'impostazione di scalabilità automatica.
Remove-AzAutoscalesetting -ResourceGroup myrg1 -Name MyScaleVMSSSetting
Gestione dei profili di log per i registri attività
È possibile creare un profilo di log ed esportare i dati dai registri attività in un account di archiviazione ed è possibile configurare la relativa conservazione dei dati. Facoltativamente, è inoltre possibile trasmettere i dati all'hub eventi. Questa funzionalità attualmente è in anteprima ed è possibile creare solo un profilo di log per ogni sottoscrizione. Per creare e gestire i profili di log, è possibile usare i cmdlet seguenti con la sottoscrizione corrente. È anche possibile scegliere una sottoscrizione specifica. Anche se PowerShell usa la sottoscrizione corrente per impostazione predefinita, è sempre possibile modificarla usando Set-AzContext
. È possibile configurare i registri attività per indirizzare i dati a qualsiasi account di archiviazione o all'hub eventi all'interno di tale sottoscrizione. I dati sono scritti come file di BLOB in formato JSON.
Acquisizione di un profilo di log
Per recuperare i profili di log esistenti, usare il cmdlet Get-AzLogProfile
.
Aggiunta di un profilo di log senza conservazione dei dati
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
Rimozione di un profilo di log
Remove-AzLogProfile -name my_log_profile_s1
Aggiunta di un profilo di log con conservazione dei dati
È possibile specificare la proprietà -RetentionInDays con il numero di giorni, sotto forma di numero intero positivo, per i quali i dati vengono conservati.
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
Aggiunta di un profilo di log con conservazione e hub di eventi
Oltre a instradare i dati a un account di archiviazione, è anche possibile trasmetterli all'hub eventi. In questa versione di anteprima, la configurazione dell'account di archiviazione è obbligatoria, mentre quella dell'hub di eventi è facoltativa.
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
Configurazione dei log di diagnostica
Molti servizi di Azure offrono log e dati di telemetria aggiuntivi che possono eseguire una o più delle operazioni seguenti:
- essere configurati per il salvataggio dei dati nell'account di Archiviazione di Azure
- essere inviati a Hub eventi
- essere inviati a un'area di lavoro Log Analytics.
L'operazione può essere eseguita solo a livello di risorse. L'account di archiviazione o l'hub eventi deve essere presente nella stessa area come risorsa di destinazione in cui viene configurata l'impostazione di diagnostica.
Acquisizione dell’impostazione di diagnostica
Get-AzDiagnosticSetting -ResourceId /subscriptions/s1/resourceGroups/myrg1/providers/Microsoft.Logic/workflows/andy0315logicapp
Disabilitazione dell’impostazione di diagnostica
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
Abilitazione dell'impostazione di diagnostica senza conservazione
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
Abilitazione dell'impostazione di diagnostica con conservazione
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
Abilitazione dell’impostazione di diagnostica con conservazione per una categoria di log specifica
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
Abilitazione dell'impostazione di diagnostica per hub eventi
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
Abilitazione dell'impostazione di diagnostica per Log Analytics
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
La proprietà WorkspaceId accetta il valore dell'ID risorsa dell'area di lavoro. È possibile ottenere l'ID risorsa dell'area di lavoro Log Analytics usando il comando seguente:
(Get-AzOperationalInsightsWorkspace).ResourceId
Questi comandi possono essere combinati per inviare dati a più destinazioni.