你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

监视公共 IP 地址

当你的关键应用程序和业务流程依赖于 Azure 资源时,你需要监视这些资源的可用性、性能和操作。

本文介绍公共 IP 地址生成的监视数据。 公共 IP 地址使用 Azure Monitor。 如果你不熟悉使用此功能的所有 Azure 服务通用的 Azure Monitor 功能,请参阅使用 Azure Monitor 监视 Azure 资源

公共 IP 地址见解

Azure 中的某些服务在 Azure 门户中具有一个特殊且醒目的预生成仪表板,可以从此仪表板着手监视服务。 这些特殊仪表板称为“见解”。

公共 IP 地址见解提供:

  • 流量数据

  • DDoS 信息

监视数据

公共 IP 地址收集与监视来自 Azure 资源的数据中所述的其他 Azure 资源相同类型的监视数据。

有关公共 IP 地址创建的指标和日志指标的详细信息,请参阅监视公共 IP 地址数据参考

收集和路由

平台指标和活动日志会自动收集和存储,但可以使用诊断设置将其路由到其他位置 。

在创建诊断设置并将其路由到一个或多个位置之前,不会收集和存储资源日志。

如需常规指导,请参阅创建诊断设置以收集 Azure 中的平台日志和指标,了解使用 Azure 门户、CLI 或 PowerShell 创建诊断设置的过程。 创建诊断设置时,请指定要收集的日志类别。 监视公共 IP 地址数据参考中列出了公共 IP 地址类别。

创建诊断设置

可以使用 Azure 门户、PowerShell 或 Azure CLI 来创建诊断设置。

门户

  1. 登录 Azure 门户

  2. 在门户顶部的搜索框中,输入“公共 IP 地址”。 在搜索结果中,选择“公共 IP 地址”。

  3. 选择要为其启用设置的公共 IP 地址。 在本例中,将使用 myPublicIP。

  4. 在公共 IP 地址的“监视”部分,选择“诊断设置”。

  5. 选择“+ 添加诊断设置”。

  6. 在“诊断设置”中,输入或选择以下信息。

    设置
    诊断设置名称 为诊断设置输入一个名称。
    日志
    类别 选择 DDoSProtectionNotifications、DDoSMitigationFlowLogs 和 DDoSMitigationReports。
    度量值
    选择“AllMetrics”。
  7. 选择“目标详细信息”。 一些目标选项为:

    • 发送到 Log Analytics 工作区

      • 选择“订阅”和“Log Analytics 工作区” 。
    • 存档到存储帐户

      • 选择“订阅”和“存储帐户”。
    • 流式传输到事件中心

      • 选择“订阅”、“事件中心命名空间”、“事件中心名称(可选)”和“事件中心策略名称” 。
    • 发送到合作伙伴解决方案

      • 选择“订阅”和“目标”。
  8. 选择“保存”。

PowerShell

登录到 Azure PowerShell:

Connect-AzAccount 

Log Analytics 工作区

若要将资源日志发送到 Log Analytics 工作区,请输入以下命令。 在此示例中,资源值中使用了 myResourceGroup、myLogAnalyticsWorkspace 和 myPublicIP。 将这些值替换为自己的值。

## Place the public IP in a variable. ##
$ippara = @{
    ResourceGroupName = 'myResourceGroup'
    Name = 'myPublicIP'
}
$ip = Get-AzPublicIPAddress @ippara
    
## Place the workspace in a variable. ##
$wspara = @{
    ResourceGroupName = 'myResourceGroup'
    Name = 'myLogAnalyticsWorkspace'
}
$ws = Get-AzOperationalInsightsWorkspace @wspara
    
## Enable the diagnostic setting. ##
$diag = @{
	ResourceId = $ip.id
	Name = 'myDiagnosticSetting'
	Enabled = $true
	WorkspaceId = $ws.ResourceId
}
Set-AzDiagnosticSetting @diag

存储帐户

若要将资源日志发送到存储帐户,请输入以下命令。 在此示例中,资源值中使用了 myResourceGroup、mystorageaccount8675 和 myPublicIP。 将这些值替换为自己的值。

## Place the public IP in a variable. ##
$ippara = @{
    ResourceGroupName = 'myResourceGroup'
    Name = 'myPublicIP'
}
$lb = Get-AzPublicIPAddress @ippara
    
## Place the storage account in a variable. ##
$storpara = @{
    ResourceGroupName = 'myResourceGroup'
    Name = 'mystorageaccount8675'
}
$storage = Get-AzStorageAccount @storpara
    
## Enable the diagnostic setting. ##
$diag = @{
	ResourceId = $ip.id
	Name = 'myDiagnosticSetting'
	StorageAccountId = $storage.id
  Enabled = $true
}
Set-AzDiagnosticSetting @diag

事件中心

若要将资源日志发送到事件中心命名空间,请输入以下命令。 在此示例中,资源值中使用了 myResourceGroup、myeventhub8675 和 myPublicIP。 将这些值替换为自己的值。

## Place the public IP in a variable. ##
$ippara = @{
    ResourceGroupName = 'myResourceGroup'
    Name = 'myPublicIP'
}
$lb = Get-AzPublicIPAddress @ippara
    
## Place the event hub in a variable. ##
$hubpara = @{
    ResourceGroupName = 'myResourceGroup'
    Name = 'myeventhub8675'
}
$eventhub = Get-AzEventHubNamespace @hubpara

## Place the event hub authorization rule in a variable. ##    
$hubrule = @{
    ResourceGroupName = 'myResourceGroup'
    Namespace = 'myeventhub8675'
}
$eventhubrule = Get-AzEventHubAuthorizationRule @hubrule

## Enable the diagnostic setting. ##
$diag = @{
	ResourceId = $ip.id
	Name = 'myDiagnosticSetting'
	EventHubName = $eventhub.Name
  EventHubAuthorizationRuleId = $eventhubrule.Id
  Enabled = $true
}
Set-AzDiagnosticSetting @diag

Azure CLI

登录到 Azure CLI:

az login

Log Analytics 工作区

若要将资源日志发送到 Log Analytics 工作区,请输入以下命令。 在此示例中,资源值中使用了 myResourceGroup、myLogAnalyticsWorkspace 和 myPublicIP。 将这些值替换为自己的值。

ipid=$(az network public-ip show \
    --name myPublicIP \
    --resource-group myResourceGroup \
    --query id \
    --output tsv)

wsid=$(az monitor log-analytics workspace show \
    --resource-group myResourceGroup \
    --workspace-name myLogAnalyticsWorkspace \
    --query id \
    --output tsv)
    
az monitor diagnostic-settings create \
    --name myDiagnosticSetting \
    --resource $ipid \
    --logs '[{"category": "DDoSProtectionNotifications","enabled": true},{"category": "DDoSMitigationFlowLogs","enabled": true},{"category": "DDoSMitigationReports","enabled": true}]' \
    --metrics '[{"category": "AllMetrics","enabled": true}]' \
    --workspace $wsid

存储帐户

若要将资源日志发送到存储帐户,请输入以下命令。 在此示例中,资源值中使用了 myResourceGroup、mystorageaccount8675 和 myPublicIP。 将这些值替换为自己的值。

ipid=$(az network public-ip show \
    --name myPublicIP \
    --resource-group myResourceGroup \
    --query id \
    --output tsv)

storid=$(az storage account show \
        --name mystorageaccount8675 \
        --resource-group myResourceGroup \
        --query id \
        --output tsv)
    
az monitor diagnostic-settings create \
    --name myDiagnosticSetting \
    --resource $ipid \
    --logs '[{"category": "DDoSProtectionNotifications","enabled": true},{"category": "DDoSMitigationFlowLogs","enabled": true},{"category": "DDoSMitigationReports","enabled": true}]' \
    --metrics '[{"category": "AllMetrics","enabled": true}]' \
    --storage-account $storid

事件中心

若要将资源日志发送到事件中心命名空间,请输入以下命令。 在此示例中,资源值中使用了 myResourceGroup、myeventhub8675 和 myPublicIP。 将这些值替换为自己的值。

ipid=$(az network public-ip show \
    --name myPublicIP \
    --resource-group myResourceGroup \
    --query id \
    --output tsv)

az monitor diagnostic-settings create \
    --name myDiagnosticSetting \
    --resource $ipid \
    --event-hub myeventhub8675 \
    --event-hub-rule RootManageSharedAccessKey \
    --logs '[{"category": "DDoSProtectionNotifications","enabled": true},{"category": "DDoSMitigationFlowLogs","enabled": true},{"category": "DDoSMitigationReports","enabled": true}]' \
    --metrics '[{"category": "AllMetrics","enabled": true}]'

以下部分将讨论可以收集的指标和日志。

分析指标

可以从 Azure Monitor 菜单中打开“指标”,使用指标资源管理器根据来自其他 Azure 服务的指标分析公共 IP 地址的指标。 若要详细了解如何使用此工具,请参阅使用 Azure Monitor 指标资源管理器分析指标

如需获取为公共 IP 地址收集的平台指标列表,请参阅监视公共 IP 地址数据参考

若要参考,可以查看 Azure Monitor 中所有受支持的资源指标列表。

分析日志

Azure Monitor 日志中的数据以表形式存储,每个表具有自己独有的属性集。

Azure Monitor 中的所有资源日志都具有后跟服务特定字段的相同字段。 Azure Monitor 资源日志架构概述了常见架构。

活动日志是 Azure 中的一种平台日志,可用于深入了解订阅级别的事件。 你可以单独查看它或将它路由到 Azure Monitor 日志,然后便可以在其中使用 Log Analytics 执行复杂得多的查询。

如需获取为公共 IP 地址收集的资源日志类型列表,请参阅监视公共 IP 地址数据参考

有关 Azure Monitor 日志使用并可通过 Log Analytics 查询的表列表,请参阅监视公共 IP 地址数据参考

示例 Kusto 查询

重要

在“公共 IP”菜单中选择“日志”时,Log Analytics 随即打开,其查询范围设置为当前公共 IP 地址。 这意味着日志查询只包含来自该资源的数据。 如果要运行的查询包含来自他资源或其他 Azure 服务的数据,请从“Azure Monitor”菜单中选择“日志”。 有关详细信息,请参阅 Azure Monitor Log Analytics 中的日志查询范围和时间范围

有关公共 IP 地址的常见查询列表,请参阅 Log Analytics 查询接口

下面是在 Azure 门户的 Log Analytics 查询接口中找到的公共 IP 地址的内置查询示例。

Screenshot of the built in queries for Public IP addresses.

警报

在监视数据中发现重要情况时,Azure Monitor 警报会主动通知你。 有了警报,你就可以在客户注意到你的系统中的问题之前确定和解决它们。 可以在指标日志活动日志上设置警报。 不同类型的警报各有优缺点。

下表列出了公共 IP 地址的常见和推荐使用的警报规则。

警报类型 条件 说明
是否遭到 DDoS 攻击 GreaterThan 0。
1 指示当前受到攻击
0 指示正常活动
作为 Azure 边缘保护的一部分,将会监视公共 IP 地址是否遭受 DDoS 攻击。 如果公共 IP 地址受到影响,警报会向你发出通知。

后续步骤