Azure 模块

编辑

Azure Monitor 功能从各种来源收集和聚合日志和指标到一个通用数据平台,可以在其中用于分析、可视化和警报。

Azure Monitor 指标是在特定时间点描述系统某些方面的数值。它们以定期间隔收集,并使用时间戳、名称、值和一个或多个定义标签进行标识。

Azure 模块将定期使用 Azure REST API 以 MetricList 的形式检索 Azure Monitor 指标。为了检索用户目标资源的相关信息,将执行其他 Azure API 调用。

此模块可能会生成有关指标查询的额外 Azure 费用。有关更多详细信息,请参阅 有关指标和费用的其他说明

仪表盘

编辑

Azure 模块附带了几个预定义的仪表盘,用于虚拟机、VM 来宾指标和虚拟机规模集。

VM 概述仪表盘显示有关 CPU、内存、磁盘使用情况以及每秒操作的信息。两个可用的过滤器有助于将仪表盘缩小到特定区域和/或资源组。例如

metricbeat azure vm overview

如果启用了 VM 来宾指标,则来宾指标概述仪表盘可以帮助监控 ASP.NET 应用程序和 SQL Server 指标。例如

metricbeat azure vm guestmetrics overview

虚拟机规模集仪表盘类似于 VM 仪表盘,并显示有关正在运行的 VM 规模集的相关运行状况信息。例如

metricbeat azure vmss overview

Azure 存储仪表盘显示 Blob、文件、表和队列存储服务的所有相关指标

metricbeat azure storage overview

Azure 账单仪表盘显示相关的使用情况和预测信息

metricbeat azure billing overview

Azure app_state 仪表盘显示相关的应用程序见解信息

metricbeat azure app state overview

模块特定配置说明

编辑

针对 Azure Monitor REST API 执行的所有任务都将使用 Azure 资源管理器身份验证模型。因此,所有请求都必须使用 Azure Active Directory (Azure AD) 进行身份验证。一种对客户端应用程序进行身份验证的方法是创建 Azure AD 服务主体并检索身份验证 (JWT) 令牌。有关更详细的分步指南,请查看使用 Azure PowerShell 创建服务主体以访问资源 https://docs.microsoft.com/en-us/powershell/azure/create-azure-service-principal-azureps?view=azps-2.7.0。也可以通过 Azure 门户创建服务主体 https://docs.microsoft.com/en-us/azure/active-directory/develop/howto-create-service-principal-portal。用户必须确保分配给应用程序的角色至少包含对监视数据的读取权限,有关角色的更多信息,请参阅此处 https://docs.microsoft.com/en-us/azure/role-based-access-control/built-in-roles

azure 模块所需的凭据

client_id
应用程序的唯一标识符(也称为应用程序 ID)
client_secret
客户端/应用程序密钥/密钥
subscription_id
Azure 订阅的唯一标识符
tenant_id
Azure Active Directory 实例的唯一标识符

如果配置了 AZURE_CLIENT_IDAZURE_CLIENT_SECRETAZURE_TENANT_IDAZURE_SUBSCRIPTION_ID,则可以使用 azure 凭据密钥。

resource_manager_endpoint
字符串 可选,默认情况下将使用 Azure 公共环境,要覆盖,用户可以提供特定的资源管理器端点以使用不同的 Azure 环境。例如:https://management.chinacloudapi.cn 用于 Azure 中国云 https://management.microsoftazure.de 用于 Azure 德国云 https://management.azure.com 用于 Azure 公共云 https://management.usgovcloudapi.net 用于 Azure 美国政府云
active_directory_endpoint
字符串 可选,默认情况下将使用与资源管理器端点关联的 Active Directory 端点,要覆盖,用户可以提供特定的 Active Directory 端点以使用不同的 Azure 环境。例如:https://login.microsoftonline.com 用于 Azure 中国云 https://login.microsoftonline.us 用于 Azure 德国云 https://login.chinacloudapi.cn 用于 Azure 公共云 https://login.microsoftonline.de 用于 Azure 美国政府云
resource_manager_audience
字符串 可选,默认情况下我们使用 Azure 公共环境,要覆盖,用户可以提供特定的资源管理器受众以使用不同的 Azure 环境。例如:https://management.chinacloudapi.cn/ 用于 Azure 中国云 https://management.microsoftazure.de/ 用于 Azure 德国云 https://management.azure.com/ 用于 Azure 公共云 https://management.usgovcloudapi.net/ 用于 Azure 美国政府云用户还可以在混合云模型中使用此功能,在混合云模型中,用户可以定义自己的受众。

度量集

编辑

monitor

编辑

此度量集允许用户从指定的资源检索指标。添加的过滤器可以应用于此处,例如检索这些指标的间隔、指标名称、聚合列表、命名空间和指标维度。监视器指标将具有至少 5 分钟的时间粒度,因此 monitor 度量集的 period 应为 300s300s 的倍数。

compute_vm

编辑

此度量集将从虚拟机收集指标,这些指标将每 5 分钟具有一个时间粒度,因此 compute_vm 度量集的 period 应为 300s300s 的倍数。

compute_vm_scaleset

编辑

此度量集将从虚拟机规模集收集指标,这些指标将每 5 分钟具有一个时间粒度,因此 compute_vm_scaleset 度量集的 period 应为 300s300s 的倍数。

storage

编辑

此度量集将从存储帐户收集指标,这些指标将每 5 分钟具有一个时间粒度,因此 storage 度量集的 period 应为 300s300s 的倍数。

container_instance

编辑

此度量集将从指定的容器组收集指标,这些指标将每 5 分钟具有一个时间粒度,因此 container_instance 度量集的 period 应为 300s300s 的倍数。

container_registry

编辑

此度量集将从容器注册表收集指标,这些指标将每 5 分钟具有一个时间粒度,因此 container_registry 度量集的 period 应为 300s300s 的倍数。

container_service

编辑

此度量集将从容器服务收集指标,这些指标将每 5 分钟具有一个时间粒度,因此 container_service 度量集的 period 应为 300s300s 的倍数。

database_account

编辑

此度量集将从指定的数据库帐户收集相关指标,这些指标将每 5 分钟具有一个时间粒度,因此 database_account 度量集的 period 应为 300s300s 的倍数。

billing

编辑

此度量集将从特定订阅收集相关的使用情况数据和预测信息,这些指标将每 24 小时具有一个时间粒度,因此 billing 度量集的 period 应为 24h24h 的倍数。

app_insights

编辑

此度量集将收集应用程序见解指标,app-insights 度量集的 period(间隔)默认设置为 300s

app_state

编辑

此度量集专注于最相关的应用程序见解指标,并提供仪表盘进行可视化,app_state 度量集的 period(间隔)默认设置为 300s

有关指标和费用的其他说明

编辑

成本:指标查询根据标准 API 调用次数计费。有关定价的更多信息,请访问此处 https://azure.microsoft.com/id-id/pricing/details/monitor/

身份验证:我们负责处理身份验证(创建/续订身份验证令牌),因此我们建议用户仅为 Metricbeat 使用专用凭据。

配置示例

Azure 模块支持在模块中描述的标准配置选项。以下是一个配置示例

metricbeat.modules:
- module: azure
  metricsets:
  - monitor
  enabled: true
  period: 300s
  client_id: '${AZURE_CLIENT_ID:""}'
  client_secret: '${AZURE_CLIENT_SECRET:""}'
  tenant_id: '${AZURE_TENANT_ID:""}'
  subscription_id: '${AZURE_SUBSCRIPTION_ID:""}'
  resources:
    - resource_query: "resourceType eq 'Microsoft.DocumentDb/databaseAccounts'"
      metrics:
      - name: ["DataUsage", "DocumentCount", "DocumentQuota"]
        namespace: "Microsoft.DocumentDb/databaseAccounts"

- module: azure
  metricsets:
  - compute_vm
  enabled: true
  period: 300s
  client_id: '${AZURE_CLIENT_ID:""}'
  client_secret: '${AZURE_CLIENT_SECRET:""}'
  tenant_id: '${AZURE_TENANT_ID:""}'
  subscription_id: '${AZURE_SUBSCRIPTION_ID:""}'

- module: azure
  metricsets:
  - compute_vm_scaleset
  enabled: true
  period: 300s
  client_id: '${AZURE_CLIENT_ID:""}'
  client_secret: '${AZURE_CLIENT_SECRET:""}'
  tenant_id: '${AZURE_TENANT_ID:""}'
  subscription_id: '${AZURE_SUBSCRIPTION_ID:""}'

- module: azure
  metricsets:
  - storage
  enabled: true
  period: 300s
  client_id: '${AZURE_CLIENT_ID:""}'
  client_secret: '${AZURE_CLIENT_SECRET:""}'
  tenant_id: '${AZURE_TENANT_ID:""}'
  subscription_id: '${AZURE_SUBSCRIPTION_ID:""}'

- module: azure
  metricsets:
  - container_instance
  enabled: true
  period: 300s
  client_id: '${AZURE_CLIENT_ID:""}'
  client_secret: '${AZURE_CLIENT_SECRET:""}'
  tenant_id: '${AZURE_TENANT_ID:""}'
  subscription_id: '${AZURE_SUBSCRIPTION_ID:""}'

- module: azure
  metricsets:
  - container_service
  enabled: true
  period: 300s
  client_id: '${AZURE_CLIENT_ID:""}'
  client_secret: '${AZURE_CLIENT_SECRET:""}'
  tenant_id: '${AZURE_TENANT_ID:""}'
  subscription_id: '${AZURE_SUBSCRIPTION_ID:""}'

- module: azure
  metricsets:
  - container_registry
  enabled: true
  period: 300s
  client_id: '${AZURE_CLIENT_ID:""}'
  client_secret: '${AZURE_CLIENT_SECRET:""}'
  tenant_id: '${AZURE_TENANT_ID:""}'
  subscription_id: '${AZURE_SUBSCRIPTION_ID:""}'

- module: azure
  metricsets:
  - database_account
  enabled: true
  period: 300s
  client_id: '${AZURE_CLIENT_ID:""}'
  client_secret: '${AZURE_CLIENT_SECRET:""}'
  tenant_id: '${AZURE_TENANT_ID:""}'
  subscription_id: '${AZURE_SUBSCRIPTION_ID:""}'

- module: azure
  metricsets:
    - billing
  enabled: true
  period: 24h
  client_id: '${AZURE_CLIENT_ID:""}'
  client_secret: '${AZURE_CLIENT_SECRET:""}'
  tenant_id: '${AZURE_TENANT_ID:""}'
  subscription_id: '${AZURE_SUBSCRIPTION_ID:""}'

- module: azure
  metricsets:
    - app_insights
  enabled: true
  period: 300s
  application_id: ''
  api_key: ''
  metrics:
    - id: ["requests/count", "requests/duration"]

- module: azure
  metricsets:
    - app_state
  enabled: true
  period: 300s
  application_id: ''
  api_key: ''

指标集

以下指标集可用