本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 Prometheus 开放监控
您可以使用 Prometheus(一种用于时间序列指标数据的开源监控系统)监控您的 MSK 集群。您可以使用 Prometheus 的远程写入功能将这些数据发布到 Prometheus 的亚马逊托管服务。您还可以使用与 Prometheus 格式的指标兼容的工具或与 Amazon MSK Open Monitoring 集成的工具,例如 Datadog
创建启用开放监控的 Amazon MSK 集群
使用 Amazon Web Services Management Console
登录Amazon Web Services Management Console,然后打开亚马逊 MSK 控制台https://console.aws.amazon.com/msk/home?region=us-east-1#/home/
. -
在 Monitoring (监控) 部分中,选中 Enable open monitoring with Prometheus (启用 Prometheus 开源监控系统) 旁边的复选框。
-
在页面上的各部分中提供所需的信息,并查看所有可用的选项。
-
选择创建集群。
使用 Amazon CLI
-
调用 create-cluster 命令并指定其
open-monitoring选项。启用JmxExporter、NodeExporter或两者。如果指定了open-monitoring,则不能同时禁用这两个导出器。
使用 API
-
调用CreateCluster操作并指定
OpenMonitoring. 启用jmxExporter、nodeExporter或两者。如果指定了OpenMonitoring,则不能同时禁用这两个导出器。
启用对现有 Amazon MSK 集群的开放式监控
要启用开源监控系统,请确保集群处于 ACTIVE 状态。
使用 Amazon Web Services Management Console
登录Amazon Web Services Management Console,然后打开亚马逊 MSK 控制台https://console.aws.amazon.com/msk/home?region=us-east-1#/home/
. -
选择要更新的集群的名称。这将带您进入一个包含集群详细信息的页面。
-
在属性选项卡,向下滚动查找监控部分。
-
选择 Edit(编辑)。
-
选中 Enable open monitoring with Prometheus (启用 Prometheus 开源监控系统) 旁边的复选框。
-
选择 Save changes(保存更改)。
使用 Amazon CLI
-
调用 update-monitoring 命令并指定其
open-monitoring选项。启用JmxExporter、NodeExporter或两者。如果指定了open-monitoring,则不能同时禁用这两个导出器。
使用 API
-
调用UpdateMonitoring操作并指定
OpenMonitoring. 启用jmxExporter、nodeExporter或两者。如果指定了OpenMonitoring,则不能同时禁用这两个导出器。
在 Amazon EC2 实例上设置 Prometheus 主机
-
从以下网址下载Prometheus 服务器https://prometheus.io/download/#prometheus
到您的 Amazon EC2 实例。 -
将下载的文件解压缩到某个目录并转到该目录。
-
使用以下内容创建名为
prometheus.yml的文件。# file: prometheus.yml # my global config global: scrape_interval: 60s # A scrape configuration containing exactly one endpoint to scrape: # Here it's Prometheus itself. scrape_configs: # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config. - job_name: 'prometheus' static_configs: # 9090 is the prometheus server port - targets: ['localhost:9090'] - job_name: 'broker' file_sd_configs: - files: - 'targets.json' -
使用ListNodes操作以获取集群的代理列表。
-
利用以下 JSON 创建名为
targets.json的文件。将broker_dns_1、broker_dns_2和其余代理 DNS 名称替换为您在上一步中获取的代理 DNS 名称。包括您在上一步中获得的所有经纪人。亚马逊 MSK 使用端口 11001 作为 JMX Exporter,端口 11002 用于Node Exporter。[ { "labels": { "job": "jmx" }, "targets": [ "broker_dns_1:11001", "broker_dns_2:11001", . . . "broker_dns_N:11001" ] }, { "labels": { "job": "node" }, "targets": [ "broker_dns_1:11002", "broker_dns_2:11002", . . . "broker_dns_N:11002" ] } ] -
要在您的 Amazon EC2 实例上启动 Prometheus 服务器,请在提取并保存 Prometheus 文件的目录中运行以下命令
prometheus.yml和targets.json../prometheus -
找到您在上一步中运行 Prometheus 的 Amazon EC2 实例的 IPv4 公有 IP 地址。您在以下步骤中需要使用此公有 IP 地址。
-
要访问 Prometheus Web UI,请打开一个可以访问您的 Amazon EC2 实例的浏览器,然后转到
,其中Prometheus-Instance-Public-IP:9090Prometheus Instance-public是您在上一步中获得的公有 IP 地址。
Prometheus 指标
由 Apache Kafka 发送给 JMX 的所有指标都可通过 Prometheus 的开源监控系统访问。有关 Apache Kafka 指标的信息,请参阅 Apache Kafka 文档中的监控kafka.consumer.group:type=ConsumerLagMetrics. 您还可以使用 Prometheus Node Exporter 在端口 11002 上获取代理的 CPU 和磁盘指标。
将 Prometheus 指标存储在亚马逊 Prometheus 托管服务中
Amazon Managed Service for Prometheus 是一项与 Prometheus 兼容的监控和警报服务,您可以使用该服务来监控 Amazon MSK 集群。这是一项完全托管的服务,可自动扩展指标的提取、存储、查询和警报。它还与集成Amazon安全服务使您能够快速安全地访问您的数据。您可以使用开源 ProMQL 查询语言来查询指标并发出警报。
有关更多信息,请参阅开始使用 Amazon Managed Service Managed Service Prometheus。