为代理配置权限以传送指标 - Amazon CloudWatch
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

为代理配置权限以传送指标

为 Network Flow Monitor 安装代理后,必须允许代理向 Network Flow Monitor 摄取 API 发送网络指标。Network Flow Monitor 中的代理必须有权访问 Network Flow Monitor 摄取 API,这样才能为每个实例传送收集的网络流指标。您可以通过为服务账户(IRSA)实施 IAM 角色来授予此访问权限。

要让代理能够向 Network Flow Monitor 传送网络指标,请按照本节中的步骤操作。

  1. 实施服务账户的 IAM 角色

    服务账户的 IAM 角色可管理供应用程序使用的凭证,这与 Amazon EC2 实例配置文件为 Amazon EC2 实例提供凭证的方式相似。建议通过实施 IRSA 来提供 Network Flow Monitor 代理为成功访问 Network Flow Monitor 摄取 API 所需的所有权限。有关更多信息,请参阅《Amazon EKS 用户指南》中的服务账户的 IAM 角色

    为 Network Flow Monitor 代理设置 IRSA 时,请使用以下信息:

    • ServiceAccount:在定义 IAM 角色信任策略时,对于 ServiceAccount,指定 aws-network-flow-monitor-agent-service-account

    • 命名空间:对于 namespace,请指定 amazon-network-flow-monitor

    • 临时凭证部署:完成 Network Flow Monitor 代理容器组的部署后,在配置权限并使用 IAM 角色更新 ServiceAccount 时,Kubernetes 不会部署 IAM 角色凭证。为确保 Network Flow Monitor 代理获得您指定的 IAM 角色凭证,您必须重新启动 DaemonSet。例如,使用以下命令:

      kubectl rollout restart daemonset -n amazon-network-flow-monitor aws-network-flow-monitor-agent

  2. 确认 Network Flow Monitor 代理已成功访问 Network Flow Monitor 摄取 API

    您可以使用 Network Flow Monitor 代理容器组的 HTTP 200 日志,检查代理的配置是否正常运行。首先,搜索 Network Flow Monitor 代理容器组,然后搜索日志文件以找到成功的 HTTP 200 请求。例如,您可以执行以下操作:

    1. 查询网络流量监测仪代理的容器组(pod)名称。例如,您可以使用以下命令:

      RANDOM_AGENT_POD_NAME=$(kubectl get pods -o wide -A | grep amazon-network-flow-monitor | grep Running | head -n 1 | tr -s ' ' | cut -d " " -f 2)
    2. 搜寻已找到的容器组名称的所有 HTTP 日志。如果您更改了命名空间,请确保使用新命名空间。

      NAMESPACE=amazon-network-flow-monitor kubectl logs $RANDOM_AGENT_POD_NAME -\-namespace ${NAMESPACE} | grep HTTP

    如果已成功授予访问权限,您应该会看到与以下内容相似的日志条目:

    ... {"level":"INFO","message":"HTTP request complete","status":200,"target":"amzn_nefmon::reports::publisher_endpoint","timestamp":1737027525679} {"level":"INFO","message":"HTTP request complete","status":200,"target":"amzn_nefmon::reports::publisher_endpoint","timestamp":1737027552827}

    请注意,Network Flow Monitor 代理通过调用 Network Flow Monitor 摄取 API,每 30 秒发布一次网络流报告。