Google Cloud Platform 模块
编辑Google Cloud Platform 模块
编辑此模块使用 Stackdriver 监控 API 定期获取 Google Cloud Platform 中的监控指标,适用于 Google Cloud Platform 服务。
此模块可能会生成 Stackdriver 监控 API 请求的额外 GCP 费用。请参阅 API 调用次数的大致估算,了解更多详细信息。
模块配置和参数
编辑这是您可以调整的可能模块参数的列表
-
zone:一个包含您要监控的区域的字符串,例如
us-central1-a
。或者,您可以指定部分区域名称,例如us-central1-
或us-central1-*
,这将监控以us-central1-
开头的所有区域:us-central1-a
、us-central1-b
、us-central1-c
和us-central1-f
。请参阅 GCP 区域,了解 GCP 中可用的区域。 -
region:一个包含您要监控的区域的字符串,例如
us-central1
。这将启用对该区域下所有区域的监控。或者,您可以指定部分区域名称,例如us-east
或us-east*
,这将监控以us-east
开头的所有区域:us-east1
和us-east4
。如果同时配置了区域和区域,则仅使用区域。请参阅 GCP 区域,了解 GCP 中可用的区域。如果未指定region
和zone
,则将从所有区域/区域收集指标。 - project_id:包含您的 GCP 项目 ID 的字符串。
- credentials_file_path:指向 Metricbeat 可访问的 JSON 文件路径的字符串,该文件是您使用 IAM 创建的。
-
exclude_labels:(
true
/false
默认值为false
) 不要从度量集中提取额外的标签和元数据信息,只获取指标。目前,仅在compute
度量集中支持标签和元数据提取。 - period:为此模块集合频率指定的一个时间持续时间。
- endpoint:用于 GCP API 调用的自定义端点。如果未指定,将使用默认端点。
示例配置
编辑-
compute
度量集已启用,用于从elastic-observability
项目中的us-central1-a
区域收集指标。- module: gcp metricsets: - compute zone: "us-central1-a" project_id: "elastic-observability" credentials_file_path: "your JSON credentials file path" exclude_labels: false period: 60s
-
compute
和pubsub
度量集已启用,用于从elastic-observability
项目中us-central1
区域下的所有区域收集指标。- module: gcp metricsets: - compute - pubsub region: "us-central1" project_id: "elastic-observability" credentials_file_path: "your JSON credentials file path" exclude_labels: false period: 60s
-
compute
度量集已启用,用于从elastic-observability
项目中以us-west
开头的所有区域收集指标,其中包括us-west1
、us-west2
、us-west3
和us-west4
下的所有区域。- module: gcp metricsets: - compute - pubsub region: "us-west" project_id: "elastic-observability" credentials_file_path: "your JSON credentials file path" exclude_labels: false period: 60s
身份验证、授权和权限。
编辑Google Cloud Platform 中的身份验证和授权可以通过多种方式实现。对于 Metricbeat 的 Google Cloud Platform 模块的当前版本,唯一支持的方法是使用服务帐户 JSON 文件。一个典型的包含私钥的 JSON 文件如下所示
示例凭据
编辑{ "type": "service_account", "project_id": "your-project-id", "private_key_id": "a_private_key_id", "private_key": "-----BEGIN PRIVATE KEY-----your private key\n-----END PRIVATE KEY-----\n", "client_email": "[email protected]", "client_id": "123456", "auth_uri": "https://accounts.google.com/o/oauth2/auth", "token_uri": "https://oauth2.googleapis.com/token", "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/metricbeat-testing%40your-project-id.iam.gserviceaccount.com" }
通常,您必须创建一个服务帐户,并为其分配以下角色或每个角色中描述的权限(适用于所有度量集)
-
监控查看器
:-
monitoring.metricDescriptors.list
-
monitoring.timeSeries.list
-
-
计算查看器
:-
compute.instances.get
-
compute.instances.list
-
您可以在 IAM 中使用您的服务帐户和实例级访问权限来访问您的资源(例如,允许在实例中运行的所有内容都获权使用 Compute API)。该模块使用 Google Cloud Platform 库进行身份验证,因此许多可能性都是开放的,但该模块仅支持使用上述方法。
Google Cloud Platform 模块:幕后
编辑Google Cloud Platform 提供了 Stackdriver 监控 API,用于从其服务中获取指标。这些指标是逐个检索的。
如果您还想提取服务标签(通过将 exclude_labels
设置为 false,这是默认状态)。您还需要对相应的服务进行新的 API 检查。服务标签需要一个新的 API 调用来提取这些指标。在最坏的情况下,API 调用的数量将加倍。在最佳情况下,所有指标都来自同一个 GCP 实体,并且所需信息的 100% 包含在第一个 API 调用中(该调用被缓存以供后续调用使用)。
如果 period
值设置为 5 分钟,并且指标类型的采样周期为 60 秒,则此模块将每 5 分钟使用聚合从该指标类型收集一次数据。GCP 监控数据最多有 240 秒的延迟,这意味着最新的监控数据最多会延迟 4 分钟。请参阅 GCP 监控指标数据的延迟,了解更多详细信息。在 gcp
模块中,指标是根据此摄取延迟收集的,该延迟也是从 ListMetricDescriptors API 中获取的。
API 调用次数的大致估算
编辑Google Cloud Platform 的定价取决于您对 API 的请求次数。这里有一些信息,您可以使用这些信息来估算您应该预期的价格。例如,假设您启用了 Compute 度量集,并且不想排除标签。您在特定 GCP 项目、区域和区域中运行了总共 20 个实例。
例如,如果 Compute 度量集获取 14 个指标(这是早期测试版中获取的指标数量)。每个指标都将尝试对 Compute API 进行 API 调用以检索其元数据。因为您有 20 个不同的实例,所以在每个刷新周期中完成的 API 调用总数为:14 个指标 + 20 个实例 = 每 5 分钟 34 个 API 请求(如果这是您当前的周期)。每天 9792 个 API 请求,使用一个区域。如果您再添加 2 个具有相同实例数量的区域,您将获得每天 19584 个 API 请求(每个区域 9792 个)或每月大约 587520 个,用于 Compute 度量集。此数学运算必须针对每个不同的度量集进行,并略有差异。
度量集
编辑目前,我们在 gcp
模块中拥有 billing
、compute
、gke
、loadbalancing
、pubsub
、metrics
和 storage
度量集。
billing
编辑此度量集从 GCP BigQuery 中获取账单指标。Cloud Billing 允许用户全天自动将账单数据导出到 BigQuery。此度量集定期访问每日成本详细信息表,以导出账单指标以进行进一步分析。
billing
度量集带有一个预定义的仪表板
compute
编辑此度量集从 Google Cloud Platform 中的 Compute Engine 虚拟机中获取指标。compute
度量集包含从 GCP Compute 监控 API 导出的某些指标。还使用 Compute API 提取额外的标签和元数据。这足以获取与指标关联的大多数信息,例如计算标签和元数据以及指标特定的标签。
compute
度量集带有一个预定义的仪表板
gke
编辑此度量集获取 Kubernetes Engine 的指标。
gke
度量集包含 Cloud Monitoring Kubernetes 指标 导出的所有 GA 指标。
还使用 Compute API 提取额外的标签和元数据。
gke
度量集带有一个预定义的仪表板
loadbalancing
编辑此度量集从 Google Cloud Platform 中的 负载均衡 获取指标。loadbalancing
度量集包含从 GCP 负载均衡监控 API 导出的所有指标。
loadbalancing
度量集带有两个预定义的仪表板
HTTPS
编辑对于 HTTPS 负载均衡:image::./images/metricbeat-gcp-load-balancing-https-overview.png[]
L3
编辑对于 L3 负载均衡:image::./images/metricbeat-gcp-load-balancing-l3-overview.png[]
TCP/SSL/代理
编辑对于 TCP/SSL/代理负载均衡:image::./images/metricbeat-gcp-load-balancing-tcp-ssl-proxy-overview.png[]
pubsub
编辑此度量集从 Google Cloud Platform 中的 Pub/Sub 主题和订阅中获取指标。pubsub
度量集包含从 GCP PubSub 监控 API 导出的所有 GA 阶段指标。
pubsub
度量集带有一个预定义的仪表板
metrics
编辑metrics
度量集使用 Google Cloud Operations/Stackdriver,它提供对云端应用程序的性能、正常运行时间和整体健康状况的可见性。它从 Google Cloud 的不同服务收集指标、事件和元数据。此度量集用于使用 ListTimeSeries
API 从 Google Cloud 收集 监控指标。
storage
编辑此度量集从 Google Cloud Platform 中的 存储 获取指标。 storage
度量集包含从 GCP 存储监控 API 导出的所有 GA 指标。
我们建议用户为该度量集定义 period: 5m
,因为在 Google Cloud 中,存储监控指标每 5 分钟采样周期写入一次,并有 10 分钟的摄取延迟。
storage
度量集附带一个预定义的仪表板。
Google Cloud Platform 模块支持在 模块 中描述的标准配置选项。以下是一个示例配置。
metricbeat.modules: - module: gcp metricsets: - compute region: "us-" project_id: "your project id" credentials_file_path: "your JSON credentials file path" exclude_labels: false period: 1m - module: gcp metricsets: - pubsub - loadbalancing - firestore - dataproc zone: "us-central1-a" project_id: "your project id" credentials_file_path: "your JSON credentials file path" exclude_labels: false period: 1m - module: gcp metricsets: - storage project_id: "your project id" credentials_file_path: "your JSON credentials file path" exclude_labels: false period: 5m - module: gcp metricsets: - metrics project_id: "your project id" credentials_file_path: "your JSON credentials file path" exclude_labels: false period: 1m metrics: - aligner: ALIGN_NONE service: compute metric_types: - "instance/cpu/reserved_cores" - "instance/cpu/usage_time" - "instance/cpu/utilization" - "instance/uptime" - module: gcp metricsets: - gke project_id: "your project id" credentials_file_path: "your JSON credentials file path" exclude_labels: false period: 1m - module: gcp metricsets: - billing period: 24h project_id: "your project id" credentials_file_path: "your JSON credentials file path" dataset_id: "dataset id" table_pattern: "table pattern" cost_type: "regular" - module: gcp metricsets: - carbon period: 24h project_id: "your project id" credentials_file_path: "your JSON credentials file path" endpoint: http://your-endpoint dataset_id: "dataset id" table_pattern: "table pattern"
以下度量集可用