添加云元数据编辑

add_cloud_metadata 处理器使用来自机器托管提供商的实例元数据来丰富每个事件。在启动时,它将查询托管提供商列表并缓存实例元数据。

支持以下云提供商

  • Amazon Web Services (AWS)
  • Digital Ocean
  • Google Compute Engine (GCE)
  • 腾讯云 (QCloud)
  • 阿里云 (ECS)
  • 华为云 (ECS)
  • Azure 虚拟机
  • OpenStack Nova
  • Hetzner Cloud

huaweiopenstack 的别名。华为云运行在 OpenStack 平台上,从元数据 API 的角度来看,无法将其与 OpenStack 区分开来。如果您知道您的部署仅在华为云上运行,并且您希望将 cloud.provider 值设置为 huawei,则可以通过使用 add_fields 处理器覆盖该值来实现这一点。

默认情况下,阿里云和腾讯云提供商处于禁用状态,因为它们需要访问远程主机。providers 设置允许用户选择要查询的默认提供商列表。

以下简单配置启用了该处理器。

processors:
  - add_cloud_metadata: ~

add_cloud_metadata 处理器有三个可选的配置设置。第一个是 timeout,它指定在检测托管提供商时等待成功响应的最长时间。默认超时值为 3s

如果发生超时,则不会向事件添加任何实例元数据。这使得为所有部署(在云中或本地)启用此处理器成为可能。

第二个可选设置是 providersproviders 设置接受要使用的云提供商名称列表。如果未配置 providers,则默认情况下启用所有不访问远程端点的提供商。也可以通过将环境变量 BEATS_ADD_CLOUD_METADATA_PROVIDERS 设置为以逗号分隔的提供程序名称列表来配置提供程序列表。

providers 设置支持的名称列表

  • “alibaba” 或 “ecs” 用于阿里云提供商(默认禁用)。
  • “azure” 用于 Azure 虚拟机(默认启用)。如果虚拟机是 AKS 托管集群的一部分,则还可以检索字段 orchestrator.cluster.nameorchestrator.cluster.id。需要设置环境变量“TENANT_ID”、“CLIENT_ID”和“CLIENT_SECRET”用于身份验证。如果未设置,我们将回退到DefaultAzureCredential,并且用户可以选择不同的身份验证方法(例如,工作负载标识)。
  • “digitalocean” 用于 Digital Ocean(默认启用)。
  • “aws” 或 “ec2” 用于 Amazon Web Services(默认启用)。
  • “gcp” 用于 Google Compute Engine(默认启用)。
  • “openstack”、“nova” 或 “huawei” 用于 OpenStack Nova(默认启用)。
  • “openstack-ssl” 或 “nova-ssl” 用于启用了 SSL 元数据 API 的 OpenStack Nova(默认启用)。
  • “tencent” 或 “qcloud” 用于腾讯云(默认禁用)。
  • “hetzner” 用于 Hetzner Cloud(默认启用)。

第三个可选配置设置是 overwrite。当 overwritetrue 时,add_cloud_metadata 会覆盖现有的 cloud.* 字段(默认为 false)。

add_cloud_metadata 处理器支持 SSL 选项来配置用于查询云元数据的 http 客户端。有关更多信息,请参阅SSL

添加到事件中的元数据因托管提供商而异。以下是每个受支持提供商的示例。

AWS

{
  "cloud": {
    "account.id": "123456789012",
    "availability_zone": "us-east-1c",
    "instance.id": "i-4e123456",
    "machine.type": "t2.medium",
    "image.id": "ami-abcd1234",
    "provider": "aws",
    "region": "us-east-1"
  }
}

Digital Ocean

{
  "cloud": {
    "instance.id": "1234567",
    "provider": "digitalocean",
    "region": "nyc2"
  }
}

GCP

{
  "cloud": {
    "availability_zone": "us-east1-b",
    "instance.id": "1234556778987654321",
    "machine.type": "f1-micro",
    "project.id": "my-dev",
    "provider": "gcp"
  }
}

腾讯云

{
  "cloud": {
    "availability_zone": "gz-azone2",
    "instance.id": "ins-qcloudv5",
    "provider": "qcloud",
    "region": "china-south-gz"
  }
}

阿里云

仅当选择 VPC 作为 ECS 实例的网络类型时,此元数据才可用。

{
  "cloud": {
    "availability_zone": "cn-shenzhen",
    "instance.id": "i-wz9g2hqiikg0aliyun2b",
    "provider": "ecs",
    "region": "cn-shenzhen-a"
  }
}

Azure 虚拟机

{
  "cloud": {
    "provider": "azure",
    "instance.id": "04ab04c3-63de-4709-a9f9-9ab8c0411d5e",
    "instance.name": "test-az-vm",
    "machine.type": "Standard_D3_v2",
    "region": "eastus2"
  }
}

OpenStack Nova

{
  "cloud": {
    "instance.name": "test-998d932195.mycloud.tld",
    "instance.id": "i-00011a84",
    "availability_zone": "xxxx-az-c",
    "provider": "openstack",
    "machine.type": "m2.large"
  }
}

Hetzner Cloud

{
  "cloud": {
    "availability_zone": "hel1-dc2",
    "instance.name": "my-hetzner-instance",
    "instance.id": "111111",
    "provider": "hetzner",
    "region": "eu-central"
  }
}