练习 - 使用指标警报对 Azure 环境中的性能问题发出警报

已完成

你就职的运输公司想要避免在 Azure 平台上更新其应用程序时出现任何问题。 为了改进 Azure 中的警报功能,你选择了使用 Azure 指标警报。

在本练习中,你将创建 Linux 虚拟机 (VM)。 此 VM 将运行一个应用,后者将以 100% 的利用率运行 CPU。 你将在 Azure 门户和 Azure CLI 中创建监视规则,以便在 CPU 使用率过高时向你发出警报。

创建 VM

此 VM 将运行一个特定的配置,该配置强调 CPU 并生成触发警报所需的指标监视数据。

  1. 首先创建配置脚本。 若要使用 VM 的配置创建 cloud-init.txt 文件,请在 Azure Cloud Shell 中运行以下命令:

    cat <<EOF > cloud-init.txt
    #cloud-config
    package_upgrade: true
    packages:
    - stress
    runcmd:
    - sudo stress --cpu 1
    EOF
    
  2. 若要设置 Ubuntu Linux VM,请运行下面的 az vm create 命令。 此命令将使用在上一步中创建的 cloud-init.txt 文件配置新创建的 Ubuntu Linux VM。

    az vm create \
        --resource-group "<rgn>[sandbox resource group name]</rgn>" \
        --name vm1 \
        --location eastUS \
        --image Ubuntu2204 \
        --custom-data cloud-init.txt \
        --generate-ssh-keys
    

使用 Azure 门户创建指标警报

注意

请等待直到 VM 成功创建,然后再继续练习。 当在 Azure Cloud Shell 窗口中看到完成的 JSON 输出时,VM 创建过程就已完成。

可以使用 Azure 门户或 CLI 来创建指标警报。 在本练习中,我们将从 Azure 门户开始介绍这两种方法。

  1. 使用激活沙盒时所用的同一帐户登录到 Azure 门户

  2. 在 Azure 门户中搜索并选择“监视器”。 在“监视器概述”页面上,选择“警报”。

  3. 打开“+ 创建”菜单,然后选择“预警规则”

  4. 在“选择资源”窗格中,设置预警规则的范围。 可以按订阅、资源类型或资源位置进行筛选。

  5. 在“资源类型”下拉列表中,输入“虚拟机”,然后选择“虚拟机”。

  6. 选中“vm1”旁边的框,然后在窗格底部选择“应用”。

    显示“选择资源”窗格的屏幕截图,其中选择了“vm1”。

  7. 选择页面底部的“下一步: 条件”。

  8. 在“信号名称”下拉列表中,选择“CPU 百分比”。

  9. 在“警报逻辑”部分,为每个设置输入(或确认)以下值。

    设置
    警报逻辑
    阈值 静态
    聚合类型 最大值
    运算符 大于
    阈值 90
    何时进行评估
    检查间隔 1 分钟
    回溯期间 1 分钟

    显示指标条件逻辑设置的屏幕截图。

  10. 选择页面顶部的“详细信息”选项卡。 在“预警规则详细信息”部分,为每个设置输入以下值。

    设置
    严重性 2 - 警告
    警报规则名称 Cpu90PercentAlert
    说明 虚拟机的 CPU 使用率达到或超过 90%
  11. 展开“高级选项”部分,并确认以下每个设置的值。

    设置
    创建时启用 是(已选中)
    自动解决警报 是(已选中)

    显示“警报规则详细信息”部分已完成设置的屏幕截图。

  12. 选择“查看 + 创建”以验证输入,然后选择“创建”。

你已成功创建指标警报规则,该规则将在 VM 上的 CPU 百分比超过 90% 时触发警报。 该规则每分钟检查一次,并查看一分钟的数据。 指标警报规则可能需要 10 分钟才能激活。

通过 CLI 创建指标警报

还可以使用 CLI 设置指标警报。 此过程可能比使用门户更快,尤其是在计划设置多个警报的情况下。

让我们创建一个新的指标警报,类似于在 Azure 门户中设置的警报。

  1. 在 Cloud Shell 中运行以下命令,以获得之前创建的虚拟机的资源 ID:

    VMID=$(az vm show \
            --resource-group "<rgn>[sandbox resource group name]</rgn>" \
            --name vm1 \
            --query id \
            --output tsv)
    
  2. 运行以下命令创建新的指标警报。 当 VM CPU 大于 80% 时,将触发警报。

    az monitor metrics alert create \
        -n "Cpu80PercentAlert" \
        --resource-group "<rgn>[sandbox resource group name]</rgn>" \
        --scopes $VMID \
        --condition "max percentage CPU > 80" \
        --description "Virtual machine is running at or greater than 80% CPU utilization" \
        --evaluation-frequency 1m \
        --window-size 1m \
        --severity 3
    

在 Azure Monitor 中查看指标警报

在本练习中,你设置了一个 Ubuntu VM,并将其配置为对 CPU 进行压力测试。 还创建了一个指标规则来检测最大 CPU 百分比何时超过 80% 和 90%。

注意

可能需要等 10 分钟才能看到警报在 Azure 门户中显示。

  1. 返回到 Azure 门户

  2. 在 Azure 门户菜单上,选择“监视器”,然后在左侧菜单窗格中选择“警报”。

    此步骤显示“警报摘要”窗格,可以在其中查看警报计数。 如果未列出警报,请等待几分钟,然后选择“刷新”。

    显示“警报摘要”窗格的屏幕截图。

  3. 你已配置严重性为 2 和 3 的指标警报。 选择其中一个警报,以查看严重性级别。

  4. 选择其中一个警报以显示警报详细信息。