

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Prometheus で MSK プロビジョンドクラスターをモニタリングする
<a name="open-monitoring"></a>

MSK プロビジョニングされた クラスター は、時系列メトリックデータ向けのオープンソースモニタリングシステムである Prometheus を使用してモニタリングできます。Prometheus のリモート書き込み機能を使用して、このデータを Amazon Managed Service for Prometheus に公開できます。また、Prometheus でフォーマットされたメトリクスと互換性のあるツールや、[Datadog](https://docs.datadoghq.com/integrations/amazon_msk/)、[Lenses](https://docs.lenses.io/latest/deployment/configuration/agent/automation/kafka/aws-msk)、[New Relic](https://docs.newrelic.com/docs/integrations/amazon-integrations/aws-integrations-list/aws-managed-kafka-msk-integration)、および [Sumo Logic](https://help.sumologic.com/03Send-Data/Collect-from-Other-Data-Sources/Amazon_MSK_Prometheus_metrics_collection) など、Amazon MSK オープンモニタリングに連携されたツールを使用することもできます。オープンモニタリングは無料ですが、アベイラビリティーゾーン間のデータ転送には料金がかかります。

Prometheus の詳細については、[Prometheus のドキュメント](https://prometheus.io/docs)を参照してください。

Prometheus の使用の詳細については、[Amazon Managed Service for Prometheus と Amazon Managed Grafana を使用した Amazon MSK の運用上のインサイトの強化](https://aws.amazon.com/blogs//big-data/enhance-operational-insights-for-amazon-msk-using-amazon-managed-service-for-prometheus-and-amazon-managed-grafana/) を参照してください。

**注記**  
KRaft メタデータモードと MSK Express ブローカーでは、オープンモニタリングとパブリックアクセスの両方を有効にすることはできません。

# 新規 MSK プロビジョニングされたクラスターでオープンモニタリングを有効化
<a name="enable-open-monitoring-at-creation"></a>

この手順では、、 AWS マネジメントコンソール、または Amazon MSK API を使用して AWS CLI、新しい MSK クラスターでオープンモニタリングを有効にする方法について説明します。

**の使用 AWS マネジメントコンソール**

1. にサインインし AWS マネジメントコンソール、[https://console.aws.amazon.com/msk/home?region=us-east-1\$1/home/](https://console.aws.amazon.com/msk/home?region=us-east-1#/home/) で Amazon MSK コンソールを開きます。

1. [**Monitoring (モニタリング)**] セクションで、[**Enable open monitoring with Prometheus (Prometheus でオープンモニタリングを有効にする)**] の横にあるチェックボックスをオンにします。

1. ページのすべてのセクションに必要な情報を入力し、使用可能なすべてのオプションを確認します。

1. **Create cluster** (クラスターの作成) を選択します。

**の使用 AWS CLI**
+ [create-cluster](https://docs.aws.amazon.com/cli/latest/reference/kafka/create-cluster.html) コマンドを呼び出し、`open-monitoring` オプションを指定します。`JmxExporter`、`NodeExporter`、またはその両方を有効にします。`open-monitoring` を指定した場合、2 つのエクスポーターを同時に無効にすることはできません。

**API の使用**
+ [CreateCluster](https://docs.aws.amazon.com/msk/1.0/apireference/clusters.html#CreateCluster) オペレーションを呼び出し、`OpenMonitoring` を指定します。`jmxExporter`、`nodeExporter`、またはその両方を有効にします。`OpenMonitoring` を指定した場合、2 つのエクスポーターを同時に無効にすることはできません。

# 既存の MSK プロビジョニングされたクラスターでオープンモニタリングを有効
<a name="enable-open-monitoring-after-creation"></a>

オープンモニタリングを有効にするには、MSK プロビジョニングされた クラスター が `ACTIVE` 状態にあることを確認してください。

**の使用 AWS マネジメントコンソール**

1. にサインインし AWS マネジメントコンソール、[https://console.aws.amazon.com/msk/home?region=us-east-1\$1/home/](https://console.aws.amazon.com/msk/home?region=us-east-1#/home/) で Amazon MSK コンソールを開きます。

1. 更新するクラスターの名前を選択します。これにより、そのクラスターの詳細を含むページが表示されます。

1. **[プロパティ]** タブで、下にスクロールして **[モニタリング]** セクションを見つけます。

1. **[編集]** を選択します。

1. [**Enable open monitoring with Prometheus (Prometheus でオープンモニタリングを有効にする)**] の横にあるチェックボックスをオンにします。

1. **[Save changes]** (変更の保存) をクリックします。

**の使用 AWS CLI**
+ [update-monitoring](https://docs.aws.amazon.com/cli/latest/reference/kafka/update-monitoring.html) コマンドを呼び出し、その `open-monitoring` オプションを指定します。`JmxExporter`、`NodeExporter`、またはその両方を有効にします。`open-monitoring` を指定した場合、2 つのエクスポーターを同時に無効にすることはできません。

**API の使用**
+ [UpdateMonitoring](https://docs.aws.amazon.com/msk/1.0/apireference/clusters-clusterarn-monitoring.html#UpdateMonitoring) オペレーションを呼び出し、`OpenMonitoring` を指定します。`jmxExporter`、`nodeExporter`、またはその両方を有効にします。`OpenMonitoring` を指定した場合、2 つのエクスポーターを同時に無効にすることはできません。

# Amazon EC2 インスタンスで Prometheus ホストを設定する
<a name="set-up-prometheus-host"></a>

この手順では、prometheus.yml ファイルを使用して Prometheus ホストを設定する方法について説明します。

1. Prometheus サーバーを [https://prometheus.io/download/#prometheus](https://prometheus.io/download/#prometheus) から Amazon EC2 インスタンスにダウンロードします。

1. ダウンロードしたファイルをディレクトリに展開し、そのディレクトリに移動します。

1. 次の内容で、`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'
   ```

1. [ListNodes](https://docs.aws.amazon.com//msk/1.0/apireference/clusters-clusterarn-nodes.html#ListNodes) オペレーションを使用して、クラスターのブローカーのリストを取得します。

1. 以下の JSON を使用した `targets.json` という名前のファイルを作成します。*broker\$1dns\$11*、*broker\$1dns\$12*、残りのブローカーの DNS 名を、前の手順でブローカー用に取得した DNS 名に置き換えます。前のステップで取得したブローカーのすべてを含めます。Amazon MSK は、JMX Exporter にポート 11001 を使用し、Node Exporter にポート 11002 を使用します。

------
#### [ ZooKeeper mode targets.json ]

   ```
   [
     {
       "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"
       ]
     }
   ]
   ```

------
#### [ KRaft mode targets.json ]

   ```
   [
     {
       "labels": {
         "job": "jmx"
       },
       "targets": [
         "broker_dns_1:11001",
         "broker_dns_2:11001",
         .
         .
         .
         "broker_dns_N:11001",
         "controller_dns_1:11001",
         "controller_dns_2:11001",
         "controller_dns_3:11001"
       ]
     },
     {
       "labels": {
         "job": "node"
       },
       "targets": [
         "broker_dns_1:11002",
         "broker_dns_2:11002",
         .
         .
         .
         "broker_dns_N:11002"
       ]
     }
   ]
   ```

------
**注記**  
KRaft コントローラーから JMX メトリクスをスクレイプするには、コントローラーの DNS 名を JSON ファイルにターゲットとして追加します。例えば `controller_dns_1:11001` です。ここで、`controller_dns_1` を実際のコントローラー DNS 名に置き換えます。

1. Amazon EC2 インスタンスで Prometheus サーバーをスタートするには、Prometheus ファイルを抽出して `prometheus.yml` と `targets.json` を保存したディレクトリで次のコマンドを実行します。

   ```
   ./prometheus
   ```

1. 前のステップで Prometheus を実行した Amazon EC2 インスタンスの IPv4 パブリック IP アドレスを見つけます。このパブリック IP アドレスは、次のステップで必要になります。

1. Prometheus ウェブ UI にアクセスするには、Amazon EC2 インスタンスにアクセスできるブラウザを開き、`Prometheus-Instance-Public-IP:9090` に移動します。ここで、*Prometheus-Instance-Public-IP*は、前の手順で取得したパブリック IP アドレスです。

# Prometheus メトリクスを使用する
<a name="prometheus-metrics"></a>

Apache Kafka から JMX に出力されるすべてのメトリクスは、Prometheus のオープンモニタリングを使用してアクセスできます。Apache Kafka のメトリクスについては、Apache Kafka のドキュメントの「[モニタリング](https://kafka.apache.org/documentation/#monitoring)」を参照してください。Apache Kafkaメトリクスに加えて、コンシューマラグメトリクスも JMX MBean 名 `kafka.consumer.group:type=ConsumerLagMetrics` のポート 11001 で利用できます。Prometheus Node Exporter を使用して、ポート 11002 でブローカーの CPU およびディスクメトリクスを取得することもできます。

# Prometheus メトリクスを Amazon Managed Service for Prometheus に保存する
<a name="managed-service-prometheus"></a>

Amazon Managed Service for Prometheus は Prometheus 互換のモニタリングおよびアラートサービスであり、Amazon MSK クラスターのモニタリングに使用できます。これは、メトリクスの取り込み、ストレージ、クエリ、アラートを自動的にスケーリングするフルマネージド型サービスです。また、 AWS セキュリティサービスと統合して、データへの高速かつ安全なアクセスを提供します。オープンソースの PromQL クエリ言語を使用して、メトリクスをクエリし、それらに関するアラートを作成できます。

詳細については、[Amazon Managed Service for Prometheus の使用を開始する](https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-getting-started.html)を参照してください。