Azure Monitor PowerShell 快速启动示例

本文说明可帮助访问 Azure Monitor 功能的示例 PowerShell 命令。 通过 Azure Monitor 可自动缩放云服务、虚拟机和 Web 应用。 还可根据配置的遥测数据的值调用 Web URL。

Note

“Azure Insights”在 2016 年 9 月 25 日后称为 Azure Monitor。 但是,命名空间及以下命令仍包含“insights”一词。

设置 PowerShell

如果尚未安装,请在计算机上安装要运行的 PowerShell。 有关详细信息,请参阅如何安装和配置 PowerShell

本文中的示例

本文中的示例演示如何使用 Azure Monitor cmdlet。 还可以在 Azure Monitor (Insights) Cmdlet 上查看 Azure Monitor PowerShell cmdlet 的完整列表。

登录并使用订阅

首先,登录 Azure 订阅。

Login-AzureRmAccount -Environment $(Get-AzureRmEnvironment -Name AzureChinaCloud)

会出现登录界面。 登录帐户后,会出现 TenantID 和默认订阅 ID。 所有 Azure cmdlet 都可用于默认订阅的上下文。 若要查看有权访问的订阅的列表,请使用以下命令:

Get-AzureRmSubscription

要将工作上下文更改为其他订阅,请使用以下命令。

Set-AzureRmContext -SubscriptionId <subscriptionid>

检索订阅的活动日志

使用 Get-AzureRmLog cmdlet。 下面是一些常见示例。

从此时间/日期中获取要显示的日志条目︰

Get-AzureRmLog -StartTime 2016-03-01T10:30

在一个时间/日期范围中获取日志条目︰

Get-AzureRmLog -StartTime 2015-01-01T10:30 -EndTime 2015-01-01T11:30

从特定资源组中获取日志条目︰

Get-AzureRmLog -ResourceGroup 'myrg1'

在一个时间/日期范围中从特定资源提供程序获取日志条目︰

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

获取特定调用方的所有日志项︰

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

以下命令从活动日志中检索最后 1000 个事件:

Get-AzureRmLog -MaxEvents 1000

Get-AzureRmLog 支持许多其他参数。 有关详细信息,请参阅 Get-AzureRmLog 参考文档。

Note

Get-AzureRmLog 仅提供 15 天的历史记录。 使用 -MaxEvents 参数可查询 15 天之外的最后 N 个事件。 若要访问超过 15 天的事件,请使用 REST API 或 SDK(使用 SDK 的 C# 示例)。 如果不包括 StartTime,则默认值为 EndTime 减去一小时。 如果不包括 EndTime,则默认值为当前时间。 所有时间均是 UTC 时间。

创建和管理自动缩放设置

资源(例如 Web 应用、VM、云服务或虚拟机规模集)只能有一种为其配置的自动缩放设置。 但是,每个自动缩放设置可具有多个配置文件。 例如,一个用于基于性能的缩放配置文件,另一个用于基于计划的配置文件。 每个配置文件可以为其配置多个规则。 有关自动缩放的详细信息,请参阅 如何自动缩放应用程序

请使用以下步骤:

  1. 创建规则。
  2. 创建配置文件,将之前创建的规则映射到这些配置文件。
  3. 可选︰通过配置 webhook 和电子邮件属性,创建自动缩放通知。
  4. 通过映射在前面步骤中创建的配置文件和通知,创建自动缩放设置,并使用目标资源上的名称。

以下示例演示了如何使用 CPU 使用率指标为基于 Windows 操作系统的虚拟机规模集创建自动缩放设置。

首先,创建向外扩展规则,实例计数增加。

$rule1 = New-AzureRmAutoscaleRule -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

随后,创建向内扩展规则,实例计数减少。

$rule2 = New-AzureRmAutoscaleRule -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

然后,为规则创建配置文件。

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

创建 webhook 属性。

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

创建自动缩放设置的通知属性,包括电子邮件和之前创建的 webhook。

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

最后,创建自动缩放设置以添加之前创建的配置文件。

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

有关管理自动缩放设置的详细信息,请参阅 Get AutoscaleSetting

自动缩放历史记录

以下示例演示了如何查看近期的自动缩放。 使用活动日志搜索来查看自动缩放历史记录。

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

可以使用 Get-AzureRmAutoScaleHistory cmdlet 来检索自动缩放历史记录。

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

有关详细信息,请参阅 Get-AutoscaleHistory

查看自动缩放设置的详细信息

可以使用 Get-Autoscalesetting cmdlet 来检索有关自动缩放设置的详细信息。

以下示例显示了关于资源组 myrg1 中所有自动缩放设置的详细信息。

Get-AzureRmAutoscalesetting -ResourceGroup myrg1 -DetailedOutput

以下示例显示了关于资源组 myrg1 中所有自动缩放设置的详细信息,特别是名为 MyScaleVMSSSetting 的自动缩放设置的详细信息。

Get-AzureRmAutoscalesetting -ResourceGroup myrg1 -Name MyScaleVMSSSetting -DetailedOutput

删除自动缩放设置

可以使用 Remove-Autoscalesetting cmdlet 来删除自动缩放设置。

Remove-AzureRmAutoscalesetting -ResourceGroup myrg1 -Name MyScaleVMSSSetting

管理活动日志的日志配置文件

可以创建日志配置文件并从活动日志中将数据导出到存储帐户,并且可以为其配置数据保留期。 也可以选择将数据流式传输到事件中心。 目前仅预览版中具有此功能,并且每个订阅只能创建一个日志配置文件。 可以通过当前订阅使用以下 cmdlet 来创建和管理日志配置文件。 也可以选择一个特定订阅。 虽然 PowerShell 默认使用当前订阅,但可以使用 Set-AzureRmContext随时更改。 可以配置活动日志将数据路由到该订阅中的任何存储帐户或事件中心。 以 JSON 格式将数据写为 blob 文件。

获取日志配置文件

若要提取现有日志配置文件,请使用 Get-AzureRmLogProfile cmdlet。

添加没有数据保留期的日志配置文件

Add-AzureRmLogProfile -Name my_log_profile_s1 -StorageAccountId /subscriptions/s1/resourceGroups/myrg1/providers/Microsoft.Storage/storageAccounts/my_storage -Locations chinaeast,chinanorth

删除日志配置文件

Remove-AzureRmLogProfile -name my_log_profile_s1

添加有数据保留期的日志配置文件

可以用天数将 -RetentionInDays 属性指定为一个正整数,将保留其中的数据。

Add-AzureRmLogProfile -Name my_log_profile_s1 -StorageAccountId /subscriptions/s1/resourceGroups/myrg1/providers/Microsoft.Storage/storageAccounts/my_storage -Locations chinaeast,chinanorth -RetentionInDays 90

添加具有保留期和 EventHub 的日志配置文件

除了将数据路由到存储帐户,还可以流式传输到事件中心。 在此预览版本中,存储帐户配置是必需的,但事件中心配置是可选的。

Add-AzureRmLogProfile -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 -Locations chinaeast,chinanorth -RetentionInDays 90