

# サードパーティーのモニタリングツールのアドオンを設定する
<a name="CloudWatch-NetworkFlowMonitor-agents-kubernetes-eks-third-party"></a>

Network Flow Monitor アドオンを設定して、インストール中に OpenMetrics サーバーを公開できます。これにより、Prometheus などのサードパーティーのモニタリングツールとの統合が可能になり、既存のモニタリングインフラストラクチャとともにネットワークフローメトリクスを収集して分析できます。[OpenMetrics の詳細について説明します](https://openmetrics.io/)。この機能はアドオンバージョン v1.1.0 から使用できます。

OpenMetrics サーバーを有効にするには、EKS Network Flow Monitor アドオンの設定値に OPEN\_METRICS、OPEN\_METRICS\_ADDRESS、および OPEN\_METRICS\_PORT を追加します。このガイドでは、CLI とコンソールの両方を使用してこれを行う方法について説明します。設定値の追加の詳細については、「[Amazon EKS アドオンの詳細設定](https://aws.amazon.com/blogs/containers/amazon-eks-add-ons-advanced-configuration/)」を参照してください。

## CLI 設定
<a name="CloudWatch-NetworkFlowMonitor-agents-kubernetes-eks-third-party-cli"></a>

AWS 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}}'
```

## コンソール設定
<a name="CloudWatch-NetworkFlowMonitor-agents-kubernetes-eks-third-party-console"></a>

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 Network Flow Monitor アドオン OpenMetric パラメータ
<a name="CloudWatch-NetworkFlowMonitor-agents-kubernetes-eks-third-party-parameters"></a>
+ **OPEN\_METRICS:**
  + オープンメトリクスを有効または無効にします。指定しない場合は無効になります
  + タイプ: 文字列
  + 値: ["on", "off"]
+ **OPEN\_METRICS\_ADDRESS:**
  + オープンメトリクスエンドポイントのリッスン IP アドレス。指定しない場合、デフォルトは 127.0.0.1 です
  + タイプ: 文字列
+ **OPEN\_METRICS\_PORT:**
  + オープンメトリクスエンドポイントのリッスンポート。指定しない場合、デフォルトは 80 です
  + タイプ: 整数
  + 範囲: [0..65535]

**重要:** OPEN\_METRICS\_ADDRESS を 0.0.0.0 に設定すると、メトリクスエンドポイントは任意のネットワークインターフェイスからアクセス可能になります。localhost のみのアクセスにするために 127.0.0.1 を使用することを検討するか、適切なネットワークセキュリティコントロールを実装して、承認されたモニタリングシステムのみにアクセスを制限します。

## トラブルシューティング
<a name="CloudWatch-NetworkFlowMonitor-agents-kubernetes-eks-third-party-troubleshooting"></a>

OpenMetrics サーバー設定で問題が発生した場合は、次の情報を使用して一般的な問題を診断して解決します。

### メトリクスが表示されない
<a name="CloudWatch-NetworkFlowMonitor-agents-kubernetes-eks-third-party-troubleshooting-metrics-not-displaying"></a>

問題: OpenMetrics サーバーが設定されていますが、メトリクスがモニタリングツールに表示されません。

トラブルシューティングの手順:

1. アドオン設定で OpenMetrics サーバーが有効になっていることを確認します。
   + 設定値で OPEN\_METRICS が「オン」に設定されていることを確認します。「[describe-addon](https://docs.aws.amazon.com/cli/latest/reference/eks/describe-addon.html)」を参照してください。
   + *選択したアドオン設定を構成する*で、アドオンバージョンが v1.1.0 以降であることを確認します。

1. メトリクスエンドポイントを次のように直接テストします。
   + http://{{pod-ip:port}}/metrics のメトリクスにアクセスします (pod-ip を実際のポッド IP アドレスに置き換え、ポートを設定したポートに置き換えます)。
   + エンドポイントにアクセスできない場合は、ネットワーク設定とセキュリティグループ設定を確認します。

1. モニタリングツールの設定を検証します。以下の方法の詳細については、モニタリングツールユーザーガイドを参照してください。
   + モニタリングツール (Prometheus など) が正しいエンドポイントをスクレイプするように設定されていることを確認します。
   + スクレイピング間隔とタイムアウトの設定が適切であることを確認します。
   + モニタリングツールにポッド IP アドレスへのネットワークアクセス権があることを確認します。

### 特定のポッドに欠落しているメトリクス
<a name="CloudWatch-NetworkFlowMonitor-agents-kubernetes-eks-third-party-troubleshooting-metrics-missing-pods"></a>

問題: メトリクスが一部のポッドから使用できますが、クラスター内の他のポッドからは使用できません。

トラブルシューティングの手順:

Network Flow Monitor アドオンは、hostNetwork: true を使用するポッドをサポートしていません。ポッド仕様にこの設定が含まれている場合、それらのポッドからメトリクスを使用することはできません。

回避策: 可能であれば、ポッド仕様から hostNetwork: true 設定を削除します。アプリケーションにホストネットワークが必要な場合は、それらの特定のポッドに代替のモニタリングアプローチを使用することを検討してください。

### 接続がエラーを拒否しました
<a name="CloudWatch-NetworkFlowMonitor-agents-kubernetes-eks-third-party-troubleshooting-connection-refused"></a>

問題: メトリクスエンドポイントにアクセスしようとすると、「接続が拒否されました」というエラーが表示されます。

トラブルシューティングの手順:

1. OPEN\_METRICS\_ADDRESS 設定を次のように確認します。
   + 127.0.0.1 に設定されていると、エンドポイントにはポッド内からのみアクセスできます。
   + 0.0.0.0 に設定されていると、エンドポイントはクラスター内の他のポッドからアクセス可能であるはずです。
   + モニタリングツールが設定されたアドレスに到達できることを確認します。

1. OPEN\_METRICS\_PORT 設定を確認します。
   + ポート番号が別のサービスで既に使用されていないか確認します。
   + ポートが有効な範囲 (1～65535) にあることを確認します。
   + セキュリティグループまたはネットワークポリシーがこのポートでのトラフィックを許可していることを確認します。

### 検証手順
<a name="CloudWatch-NetworkFlowMonitor-agents-kubernetes-eks-third-party-troubleshooting-verification"></a>

OpenMetrics 設定が正しく動作していることを確認するには:

1. アドオンのステータスを次のように確認します。

   ```
   aws eks describe-addon --cluster-name {{your-cluster-name}} --addon-name aws-network-flow-monitoring-agent
   ```

1. ポッドのステータスを次のように確認します。

   ```
   kubectl get pods app.kubernetes.io/name=aws-network-flow-monitoring-agent
   ```

1. クラスター内からメトリクスエンドポイントを次のようにテストします。

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

   9109 を設定したポート番号に置き換え、ポッド名を AddOn ポッド名に置き換えます。