Azure 模块
编辑Azure 模块编辑
Azure Monitor 功能从各种来源收集和聚合日志和指标,并将它们整合到一个公共数据平台中,以便用于分析、可视化和警报。
Azure Monitor 指标是数值,它们描述了系统在特定时间点的某个方面。它们以固定时间间隔收集,并通过时间戳、名称、值和一个或多个定义标签来标识。
Azure 模块将定期使用 Azure REST API 作为 MetricList 来检索 Azure Monitor 指标。为了检索用户目标资源的信息,将执行额外的 Azure API 调用。
此模块可能会生成有关指标查询的额外 Azure 费用。有关更多详细信息,请参见 有关指标和费用的其他说明。
仪表盘编辑
Azure 模块附带了几个预定义的仪表盘,用于虚拟机、VM 来宾指标和虚拟机规模集。
VM 概述仪表盘显示有关 CPU、内存、磁盘使用情况以及每秒操作的信息。两个可用过滤器有助于将仪表盘缩小到特定区域和/或资源组。例如
如果启用了 VM 来宾指标,那么来宾指标概述仪表盘可以帮助监控 ASP.NET 应用程序和 SQL Server 指标。例如
虚拟机规模集仪表盘类似于 VM 仪表盘,并显示有关正在运行的 VM 规模集的相关运行状况信息。例如
Azure 存储仪表盘显示 Blob、文件、表和队列存储服务的相关指标。
Azure 计费仪表盘显示相关的使用情况和预测信息。
Azure app_state 仪表盘显示相关的应用程序洞察信息。
模块特定的配置说明编辑
针对 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_ID
、AZURE_CLIENT_SECRET
、AZURE_TENANT_ID
、AZURE_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
应为 300s
或 300s
的倍数。
compute_vm
编辑
此指标集将从虚拟机收集指标,这些指标的时间粒度为每 5 分钟,因此 compute_vm
指标集的 period
应为 300s
或 300s
的倍数。
compute_vm_scaleset
编辑
此指标集将从虚拟机规模集收集指标,这些指标的时间粒度为每 5 分钟,因此 compute_vm_scaleset
指标集的 period
应为 300s
或 300s
的倍数。
storage
编辑
此指标集将从存储帐户收集指标,这些指标的时间粒度为每 5 分钟,因此 storage
指标集的 period
应为 300s
或 300s
的倍数。
container_instance
编辑
此指标集将从指定的容器组收集指标,这些指标的时间粒度为每 5 分钟,因此 container_instance
指标集的 period
应为 300s
或 300s
的倍数。
container_registry
编辑
此指标集将从容器注册表收集指标,这些指标的时间粒度为每 5 分钟,因此 container_registry
指标集的 period
应为 300s
或 300s
的倍数。
container_service
编辑
此指标集将从容器服务收集指标,这些指标的时间粒度为每 5 分钟,因此 container_service
指标集的 period
应为 300s
或 300s
的倍数。
database_account
编辑
此指标集将从指定的数据库帐户收集相关指标,这些指标的时间粒度为每 5 分钟,因此 database_account
指标集的 period
应为 300s
或 300s
的倍数。
billing
编辑
此指标集将从特定订阅收集相关的使用情况数据和预测信息,这些指标的时间粒度为每 24 小时,因此 billing
指标集的 period
应为 24h
或 24h
的倍数。
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: ''
指标集
以下指标集可用