使用 AWS Observability Accelerator 设置 Amazon Managed Service for Prometheus - Amazon Managed Service for Prometheus

使用 AWS Observability Accelerator 设置 Amazon Managed Service for Prometheus

AWS 可为您的 Amazon Elastic Kubernetes Service(Amazon EKS)项目提供可观察性工具,包括监控、日志记录、警报和控制面板。这包括 Amazon Managed Service for Prometheus、Amazon Managed GrafanaAWS Distro for OpenTelemetry 以及其他工具。为了方便您结合使用这些工具,AWS 提供了用于通过这些服务配置可观察性的 Terraform 模块,名为 AWS Observability Accelerator

AWS Observability Accelerator 提供了监控基础设施、NGINX 部署和其他场景的示例。本部分举例说明了如何监控您 Amazon EKS 集群内的基础设施。

Terraform 模板和详细说明可以在 AWS Observability Accelerator for Terraform GitHub 页面上找到。您也可以阅读宣布推出 AWS Observability Accelerator 的博客文章

先决条件

要使用 AWS Observability Accerator,您必须具有现有 Amazon EKS 集群并满足以下先决条件:

  • AWS CLI – 用于从命令行调用 AWS 功能。

  • kubectl – 用于从命令行控制您的 EKS 集群。

  • Terraform – 用于自动为该解决方案创建资源。您必须使用有权在您的 AWS 账户中创建和管理 Amazon Managed Service for Prometheus、Amazon Managed Grafana 和 IAM 的 IAM 角色设置 AWS 提供商。有关如何为 Terraform 配置 AWS 提供商的更多信息,请参阅 Terraform 文档中的 AWS provider

使用基础设施监控示例

AWS Observability Accelerator 提供了示例模板,这些模板使用随附的 Terraform 模块为您的 Amazon EKS 集群设置和配置可观察性。此示例演示如何使用 AWS Observability Accelerator 来设置基础设施监控。有关使用此模板及其包含的其他功能的更多详细信息,请参阅 GitHub 上的 Existing Cluster with the AWS Observability Accelerator base and Infrastructure monitoring 页面。

使用基础设施监控 Terraform 模块
  1. 在要创建项目的文件夹中,使用以下命令克隆存储库。

    git clone https://github.com/aws-observability/terraform-aws-observability-accelerator.git
  2. 使用以下命令初始化 Terraform。

    cd examples/existing-cluster-with-base-and-infra terraform init
  3. 创建一个新 terraform.tfvars 文件,如以下示例所示。使用您 Amazon EKS 集群的 AWS 区域和集群 ID。

    # (mandatory) AWS Region where your resources will be located aws_region = "eu-west-1" # (mandatory) EKS Cluster name eks_cluster_id = "my-eks-cluster"
  4. 如果还没有要使用的 Amazon Managed Grafana 工作区,请创建一个。有关如何创建新工作区的信息,请参阅《Amazon Managed Grafana 用户指南》中的创建您的首个工作区

  5. 在命令行中运行以下命令,为 Terraform 创建两个变量以使用您的 Grafana 工作区。您需要将 grafana-workspace-id 替换为 Grafana 工作区中的 ID。

    export TF_VAR_managed_grafana_workspace_id=grafana-workspace-id export TF_VAR_grafana_api_key=`aws grafana create-workspace-api-key --key-name "observability-accelerator-$(date +%s)" --key-role ADMIN --seconds-to-live 1200 --workspace-id $TF_VAR_managed_grafana_workspace_id --query key --output text`
  6. [可选] 要使用现有的 Amazon Managed Service for Prometheus 工作区,请将 ID 添加到 terraform.tfvars 文件中,如以下示例所示,将 prometheus-workspace-id 替换为您的 Prometheus 工作区 ID。如果您未指定现有工作区,则将为您创建一个新的 Prometheus 工作区。

    # (optional) Leave it empty for a new workspace to be created managed_prometheus_workspace_id = "prometheus-workspace-id"
  7. 使用以下命令部署解决方案。

    terraform apply -var-file=terraform.tfvars

这将在您的 AWS 账户中创建资源,包括以下内容:

  • 一个新的 Amazon Managed Service for Prometheus 工作区(除非您选择使用现有工作区)。

  • 您 Prometheus 工作区中的警报管理器配置、警报和规则。

  • 您当前工作区中的全新 Amazon Managed Grafana 数据来源和控制面板。数据来源将命名为 aws-observability-accelerator。控制面板将列在 Observability Accelerator 控制面板下。

  • 在提供的 Amazon EKS 集群中设置的 AWS Distro for OpenTelemetry Operator,用于向您的 Amazon Managed Service for Prometheus 工作区发送指标。

要查看您的新控制面板,请在您的 Amazon Managed Grafana 工作区中打开特定的控制面板。有关使用 Amazon Managed Grafana 的更多信息,请参阅《Amazon Managed Grafana 用户指南》中的使用 Grafana 工作区