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 仪表盘,并显示有关正在运行的虚拟机规模集的相关运行状况信息。例如

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
string 可选,默认情况下将使用 azure 公共环境,要覆盖,用户可以提供特定的资源管理器端点,以便使用不同的 azure 环境。例如:https://management.chinacloudapi.cn 用于 azure ChinaCloud https://management.microsoftazure.de 用于 azure GermanCloud https://management.azure.com 用于 azure PublicCloud https://management.usgovcloudapi.net 用于 azure USGovernmentCloud
active_directory_endpoint
string 可选,默认情况下将使用与资源管理器端点关联的 active directory 端点,要覆盖,用户可以提供特定的 active directory 端点,以便使用不同的 azure 环境。例如:https://login.microsoftonline.com 用于 azure ChinaCloud https://login.microsoftonline.us 用于 azure GermanCloud https://login.chinacloudapi.cn 用于 azure PublicCloud https://login.microsoftonline.de 用于 azure USGovernmentCloud
resource_manager_audience
string 可选,默认情况下我们使用 azure 公共环境,要覆盖,用户可以提供特定的资源管理器受众,以便使用不同的 azure 环境。例如:https://management.chinacloudapi.cn/ 用于 azure ChinaCloud https://management.microsoftazure.de/ 用于 azure GermanCloud https://management.azure.com/ 用于 azure PublicCloud https://management.usgovcloudapi.net/ 用于 azure USGovernmentCloud。如果使用混合云模型(可以在其中定义自己的受众),用户也可以使用此项。

指标集

编辑

monitor

编辑

此指标集允许用户从指定的资源检索指标。添加的过滤器可以应用于此处的检索这些指标的间隔、指标名称、聚合列表、命名空间和指标维度。监控指标的最小 timegrain 为 5 分钟,因此 monitor 指标集的 period 应为 300s300s 的倍数。

compute_vm

编辑

此指标集将从虚拟机收集指标,这些指标的 timegrain 为每 5 分钟,因此 compute_vm 指标集的 period 应为 300s300s 的倍数。

compute_vm_scaleset

编辑

此指标集将从虚拟机规模集收集指标,这些指标的 timegrain 为每 5 分钟,因此 compute_vm_scaleset 指标集的 period 应为 300s300s 的倍数。

storage

编辑

此指标集将从存储帐户收集指标,这些指标的 timegrain 为每 5 分钟,因此 storage 指标集的 period 应为 300s300s 的倍数。

container_instance

编辑

此指标集将从指定的容器组收集指标,这些指标的 timegrain 为每 5 分钟,因此 container_instance 指标集的 period 应为 300s300s 的倍数。

container_registry

编辑

此指标集将从容器注册表收集指标,这些指标的 timegrain 为每 5 分钟,因此 container_registry 指标集的 period 应为 300s300s 的倍数。

container_service

编辑

此指标集将从容器服务收集指标,这些指标的 timegrain 为每 5 分钟,因此 container_service 指标集的 period 应为 300s300s 的倍数。

database_account

编辑

此指标集将从指定的数据库帐户收集相关指标,这些指标的 timegrain 为每 5 分钟,因此 database_account 指标集的 period 应为 300s300s 的倍数。

billing

编辑

此指标集将从特定订阅收集相关的使用情况数据和预测信息,这些指标的 timegrain 为每 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: ''

指标集

以下指标集可用