为第三方监控工具配置附加组件 - Amazon CloudWatch
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

为第三方监控工具配置附加组件

您可在部署过程中配置网络流量监测仪附加组件,对外暴露 OpenMetrics 服务端。此举可实现与 Prometheus 等第三方监控工具的集成,让您能够在现有监控基础设施中收集并分析网络流指标。了解有关 OpenMetrics 的更多信息。本功能自附加组件版本 v1.1.0 起可用。

如需启用 OpenMetrics 服务端,需将 OPEN_METRICS、OPEN_METRICS_ADDRESS 和 OPEN_METRICS_PORT 添加到 EKS 网络流量监测仪附加组件的配置值中。本指南将介绍如何分别通过 CLI 和控制台完成此操作。有关添加配置值的更多详情,请参阅 Amazon EKS 插件高级配置

CLI 配置

使用 Amazon Command Line Interface时,可将上述配置值作为参数传入:

aws eks create-addon \ --cluster-name my-cluster-name \ --addon-name aws-network-flow-monitoring-agent \ --addon-version v1.1.0-eksbuild.1 \ --configuration-values '{"env":{"OPEN_METRICS":"on","OPEN_METRICS_ADDRESS":"0.0.0.0","OPEN_METRICS_PORT":9109}}'

控制台配置

使用 Amazon EKS 控制台时,可在可选配置设置下的配置值模块中添加上述配置值。

示例 JSON:

{ "env": { "OPEN_METRICS": "on", "OPEN_METRICS_ADDRESS": "0.0.0.0", "OPEN_METRICS_PORT": 9109 } }

示例 YAML:

env: OPEN_METRICS: "on" OPEN_METRICS_ADDRESS: "0.0.0.0" OPEN_METRICS_PORT: 9109

EKS 网络流量监测仪附加组件 OpenMetric 参数

  • OPEN_METRICS:

    • 启用或关闭 OpenMetrics 功能。未配置时默认为关闭状态

    • 类型:字符串

    • 值:["on","off"]

  • OPEN_METRICS_ADDRESS:

    • OpenMetrics 端点的监听 IP 地址。未配置时默认值为 127.0.0.1

    • 类型:字符串

  • OPEN_METRICS_PORT:

    • OpenMetrics 端点的监听端口。未配置时默认值为 80

    • 类型:整数

    • 取值范围:[0..65535]

重要提示:将 OPEN_METRICS_ADDRESS 配置为 0.0.0.0 时,该指标端点将支持所有网络接口的访问。建议将值设为 127.0.0.1,仅允许本地主机访问;或部署相应的网络安全控制策略,将访问权限仅限授予已授权的监控系统。

问题排查

若在配置 OpenMetrics 服务端时遇到问题,可通过以下信息诊断并解决常见故障。

指标未显示

问题现象:已完成 OpenMetrics 服务端配置,但监控工具中未显示相关指标。

问题排查步骤:

  1. 验证附加组件配置中是否已启用 OpenMetrics 服务端:

    • 检查配置值内的 OPEN_METRICS 参数是否设为“on”。具体可参阅 describe-addon 命令说明。

    • 配置选定附加组件设置中,确认附加组件版本为 v1.1.0 或更高版本。

  2. 直接测试指标端点的连通性:

    • 通过地址 http://pod-ip:port/metrics 访问指标(将 pod-ip 替换为实际的容器组(pod)IP 地址,port 替换为配置的端口)。

    • 若无法访问该端点,需核查网络配置及安全组规则设置。

  3. 验证监控工具配置情况。参考所用监控工具的用户指南,完成以下配置检查:

    • 确认监控工具(如 Prometheus)已配置为采集正确的指标端点。

    • 检查指标采集的时间间隔与超时时间配置是否合理。

    • 验证监控工具是否具备访问该容器组(pod)IP 地址的网络权限。

特定容器组(pod)指标缺失

问题现象:集群内部分容器组(pod)可采集到指标,其他容器组(pod)的指标无法获取。

问题排查步骤:

网络流量监测仪附加组件不支持启用“hostNetwork: true”的容器组(pod)。若容器组(pod)的配置清单中包含该设置,将无法采集到该容器组(pod)的相关指标。

解决办法:若条件允许,从容器组(pod)配置清单中移除“hostNetwork: true”设置。若应用程序业务必须使用主机网络,则可为这些特定容器组(pod)采用其他监控方案。

“连接被拒绝”错误

问题现象:尝试访问指标端点时,出现“连接被拒绝”错误。

问题排查步骤:

  1. 验证 OPEN_METRICS_ADDRESS 配置:

    • 若该配置设为 127.0.0.1,指标端点仅支持从容器组(pod)内部访问。

    • 若该配置设为 0.0.0.0,集群内其他容器组(pod)应可访问该指标端点。

    • 确认监控工具能够连通已配置的访问地址。

  2. 检查 OPEN_METRICS_PORT 配置:

    • 验证该端口号未被其他服务占用。

    • 确认端口号处于有效取值范围(1-65535)内。

    • 核实所有相关安全组及网络策略均允许该端口的流量通行。

验证步骤

确认 OpenMetrics 配置正常生效的操作步骤如下:

  1. 检查附加组件状态:

    aws eks describe-addon --cluster-name your-cluster-name --addon-name aws-network-flow-monitoring-agent
  2. 验证容器组(pod)运行状态:

    kubectl get pods app.kubernetes.io/name=aws-network-flow-monitoring-agent
  3. 从集群内部测试指标端点连通性:

    kubectl exec add-on-pod-name -- curl localhost:9109/metrics

    将 9109 替换为配置的端口号,将容器组(pod)名称替换为附加组件对应的容器组(pod)名称。