

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 使用 AWS Observability Accelerator 设置 Amazon Managed Service for Prometheus
<a name="obs_accelerator"></a>

AWS 可为您的 Amazon Elastic Kubernetes Service（Amazon EKS）项目提供可观察性工具，包括监控、日志记录、警报和控制面板。这包括 Amazon Managed Service for Prometheus、[Amazon Managed Grafana](https://docs.aws.amazon.com/grafana/latest/userguide/what-is-Amazon-Managed-Service-Grafana.html)、[AWS Distro for OpenTelemetry](https://aws-otel.github.io/) 以及其他工具。为了方便您结合使用这些工具，AWS 提供了用于通过这些服务配置可观察性的 Terraform 模块，名为 [AWS Observability Accelerator](https://github.com/aws-observability/terraform-aws-observability-accelerator)。

AWS Observability Accelerator 提供了监控基础设施、[NGINX](https://nginx.org/en/) 部署和其他场景的示例。本部分举例说明了如何监控您 Amazon EKS 集群内的基础设施。

Terraform 模板和详细说明可以在 [AWS Observability Accelerator for Terraform GitHub 页面](https://github.com/aws-observability/terraform-aws-observability-accelerator)上找到。您也可以阅读[宣布推出 AWS Observability Accelerator 的博客文章](https://aws.amazon.com/blogs/mt/announcing-aws-observability-accelerator-to-configure-comprehensive-observability-for-amazon-eks/)。

## 先决条件
<a name="obs-accelerator-prereq"></a>

要使用 AWS Observability Accerator，您必须具有现有 Amazon EKS 集群并满足以下先决条件：
+ [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) – 用于从命令行调用 AWS 功能。
+ [kubectl](https://kubernetes.io/docs/tasks/tools/) – 用于从命令行控制您的 EKS 集群。
+ [Terraform](https://learn.hashicorp.com/tutorials/terraform/install-cli) – 用于自动为该解决方案创建资源。您必须使用有权在您的 AWS 账户中创建和管理 Amazon Managed Service for Prometheus、Amazon Managed Grafana 和 IAM 的 IAM 角色设置 AWS 提供商。有关如何为 Terraform 配置 AWS 提供商的更多信息，请参阅 *Terraform 文档*中的 [AWS provider](https://registry.terraform.io/providers/hashicorp/aws/latest/docs)。

## 使用基础设施监控示例
<a name="obs-accelerator-infra-example"></a>

AWS Observability Accelerator 提供了示例模板，这些模板使用随附的 Terraform 模块为您的 Amazon EKS 集群设置和配置可观察性。此示例演示如何使用 AWS Observability Accelerator 来设置基础设施监控。有关使用此模板及其包含的其他功能的更多详细信息，请参阅 GitHub 上的 [Existing Cluster with the AWS Observability Accelerator base and Infrastructure monitoring](https://github.com/aws-observability/terraform-aws-observability-accelerator/tree/main/examples/existing-cluster-with-base-and-infra) 页面。

**使用基础设施监控 Terraform 模块**

1. 在要创建项目的文件夹中，使用以下命令克隆存储库。

   ```
   git clone https://github.com/aws-observability/terraform-aws-observability-accelerator.git
   ```

1. 使用以下命令初始化 Terraform。

   ```
   cd examples/existing-cluster-with-base-and-infra
   
   terraform init
   ```

1. 创建一个新 `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"
   ```

1. 如果还没有要使用的 Amazon Managed Grafana 工作区，请创建一个。有关如何创建新工作区的信息，请参阅《Amazon Managed Grafana 用户指南》**中的[创建您的首个工作区](https://docs.aws.amazon.com/grafana/latest/userguide/getting-started-with-AMG.html#AMG-getting-started-workspace-create)。

1. 在命令行中运行以下命令，为 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`
   ```

1. [可选] 要使用现有的 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"
   ```

1. 使用以下命令部署解决方案。

   ```
   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](https://aws.amazon.com/otel/) Operator，用于向您的 Amazon Managed Service for Prometheus 工作区发送指标。

要查看您的新控制面板，请在您的 Amazon Managed Grafana 工作区中打开特定的控制面板。有关使用 Amazon Managed Grafana 的更多信息，请参阅《Amazon Managed Grafana 用户指南》**中的[使用 Grafana 工作区](https://docs.aws.amazon.com/grafana/latest/userguide/AMG-working-with-Grafana-workspace.html)。