设置 Grafana 开源或 Grafana Enterprise 以与 Amazon Managed Service for Prometheus 配合使用 - Amazon Managed Service for Prometheus

设置 Grafana 开源或 Grafana Enterprise 以与 Amazon Managed Service for Prometheus 配合使用

您可以使用 Grafana 实例在 Amazon Managed Service for Prometheus 中查询指标。本主题将向您介绍如何使用 Grafana 的独立实例从 Amazon Managed Service for Prometheus 查询指标。

先决条件

Grafana 实例 – 您必须拥有一个能够向 Amazon Managed Service for Prometheus 进行身份验证的 Grafana 实例。

Amazon Managed Service for Prometheus 支持使用 Grafana 7.3.5 及更高版本来查询工作区中的指标。版本 7.3.5 及更高版本包括对 AWS 签名版本 4(SigV4)身份认证的支持。

要检查 Grafana 版本,请输入以下命令,用 Grafana 安装路径替换 grafana_install_directory

grafana_install_directory/bin/grafana-server -v

如果您还没有独立的 Grafana,或者需要更新的版本,可以安装一个新的实例。有关设置独立 Grafana 的说明,请参阅 Grafana 文档中的安装 Grafana。有关 Grafana 入门的信息,请参阅 Grafana 文档中的 Grafana 入门

AWS 账户 – 您必须拥有具有正确权限的 AWS 账户,才能访问 Amazon Managed Service for Prometheus 指标。

要将 Grafana 设置为使用 Amazon Managed Service for Prometheus,您必须登录一个拥有 AmazonPrometheusQueryAccess 策略或 aps:QueryMetricsaps:GetMetricMetadataaps:GetSeriesaps:GetLabels权限的账户。有关更多信息,请参阅 IAM 权限和策略

下一节将详细介绍如何通过 Grafana 设置身份验证。

步骤 1:设置 AWS SigV4

Amazon Managed Service for Prometheus 可与 AWS Identity and Access Management(IAM)配合使用,确保对 Prometheus API 的所有调用均使用 IAM 凭证进行保护。默认情况下,Grafana 中的 Prometheus 数据来源假定 Prometheus 不需要身份验证。要让 Grafana 能够利用 Amazon Managed Service for Prometheus 身份验证和授权功能,您将需要在 Grafana 数据来源中启用 Sigv4 身份验证支持。当您使用自行管理的 Grafana 开源服务器或 Grafana 企业服务器时,请按照本页上的步骤进行操作。如果您使用的是 Amazon Managed Grafana,则 SIGv4 身份验证完全自动执行。有关 Amazon Managed Grafana 的更多信息,请参阅 What is Amazon Managed Grafana?

要在 Grafana 上启用 SigV4,请在 AWS_SDK_LOAD_CONFIGGF_AUTH_SIGV4_AUTH_ENABLED 环境变量设置为 true 的情况下启动 Grafana。GF_AUTH_SIGV4_AUTH_ENABLED 环境变量将覆盖 Grafana 的默认配置以启用 Sigv4 支持。有关更多信息,请参阅 Grafana 文档中的 Configuration

Linux

要在 Linux 上的独立 Grafana 服务器上启用 SigV4,请输入以下命令。

export AWS_SDK_LOAD_CONFIG=true
export GF_AUTH_SIGV4_AUTH_ENABLED=true
cd grafana_install_directory
./bin/grafana-server

Windows

要使用 Windows 命令提示符在 Windows 的独立 Grafana 上启用 SigV4,请输入以下命令。

set AWS_SDK_LOAD_CONFIG=true
set GF_AUTH_SIGV4_AUTH_ENABLED=true
cd grafana_install_directory
.\bin\grafana-server.exe

步骤 2:在 Grafana 中添加 Prometheus 数据来源

以下步骤说明了如何在 Grafana 中设置 Prometheus 数据来源,以便查询您的 Amazon Managed Service for Prometheus 指标。

在您的 Grafana 服务器中添加 Prometheus 数据来源
  1. 打开 Grafana 控制台。

  2. 配置下,选择数据来源

  3. 选择添加数据来源

  4. 选择 Prometheus

  5. 对于 HTTP URL,请指定 Amazon Managed Service for Prometheus 控制台的工作区详情页面中显示的终端节点 - 查询 URL

  6. 在您刚才指定的 HTTP URL 中,删除附加到该 URL 的 /api/v1/query 字符串,因为 Prometheus 数据来源会自动附加该字符串。

    正确的 URL 应类似如下:https://aps-workspaces.us-west-2.amazonaws.com/workspaces/ws-1234a5b6-78cd-901e-2fgh-3i45j6k178l9

  7. 身份验证下,选择 Sigv4 身份验证的开关将其启用。

  8. 您可以通过直接在 Grafana 中指定您的长期凭证来配置 Sigv4 授权,也可以使用默认的提供商链。直接指定您的长期凭证可以让您更快地启动,以下步骤首先给出了这些说明。在您更加熟悉将 Grafana 与 Amazon Managed Service for Prometheu 一起使用后,我们建议您使用默认的提供商链,因为它提供了更好的灵活性和安全性。有关设置默认提供商链的更多信息,请参阅指定凭证

    • 要直接使用长期凭证,请执行以下操作:

      1. Sigv4 身份验证详细信息下的身份验证提供商中选择访问和密钥

      2. 访问密钥 ID 中,输入您的 AWS 访问密钥 ID。

      3. 秘密访问密钥中输入您的秘密访问密钥。

      4. 担任角色 ARN外部 ID字段留空。

      5. 对于默认区域,选择 Amazon Managed Service for Prometheus 工作区的区域。此区域应与您在步骤 5 中列出的 URL 中包含的区域相匹配。

      6. 选择保存并测试

        您应该看到以下消息:数据来源正在运行

        以下屏幕截图显示了访问密钥、密钥 Sigv4 身份验证详细信息设置。

        SigV4 Auth Details form showing configured access keys and default region settings.
    • 要改用默认的提供商链(建议在生产环境中使用),请执行以下操作:

      1. Sigv4 身份验证详细信息下的身份验证提供商中选择 AWS SDK 默认

      2. 担任角色 ARN外部 ID字段留空。

      3. 对于默认区域,选择 Amazon Managed Service for Prometheus 工作区的区域。此区域应与您在步骤 5 中列出的 URL 中包含的区域相匹配。

      4. 选择保存并测试

        您应该看到以下消息:数据来源正在运行

        如果您没有看到该消息,下一节将提供连接时的故障排除提示。

        以下屏幕截图显示了 SDK 默认 SigV4 身份认证详细信息设置。

        SigV4 auth details showing AWS SDK Default provider and us-west-2 region.
  9. 针对新的数据来源测试 PromQL 查询:

    1. 选择探索

    2. 运行示例 PromQL 查询,例如:

      prometheus_tsdb_head_series

步骤 3:(可选)“保存并测试”不起作用时进行故障排除

在前面的步骤中,如果您在选择保存并测试时看到错误,请检查以下内容。

HTTP 错误未找到

确保 URL 中的工作区 ID 正确无误。

HTTP 错误禁止

此错误意味着凭证无效。请检查以下事项:

  • 检查默认区域中指定的区域是否正确。

  • 检查您的凭证是否有拼写错误。

  • 请确保您使用的凭证具有 AmazonPrometheusQueryAccess 策略。有关更多信息,请参阅 IAM 权限和策略

  • 确保您使用的凭证可以访问此 Amazon Managed Service for Prometheus 工作区。

HTTP 错误错误的网关

查看 Grafana 服务器日志以解决此错误。有关更多信息,请参阅 Grafana 文档中的 Troubleshooting

如果您看到 Error http: proxy error: NoCredentialProviders: no valid providers in chain,则默认凭证提供商链无法找到有效的 AWS 凭证来使用。确保您已按照指定凭证中所述设置了凭证。如果要使用共享配置,请确保将 AWS_SDK_LOAD_CONFIG 环境设置为 true