

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 設定第三方監控工具的附加元件
<a name="CloudWatch-NetworkFlowMonitor-agents-kubernetes-eks-third-party"></a>

您可以設定 Network Flow Monitor 附加元件，以在安裝期間公開 OpenMetrics 伺服器。這可與第三方監控工具整合，例如 Prometheus，讓您收集和分析現有監控基礎設施的網路流量指標。[進一步了解 OpenMetrics](https://openmetrics.io/)。此功能可從附加元件版本 v1.1.0 取得。

若要啟用 OpenMetrics 伺服器，請將 OPEN\$1METRICS、OPEN\$1METRICS\$1ADDRESS 和 OPEN\$1METRICS\$1PORT 新增至 EKS 網路流量監視器附加元件的組態值。本指南將說明如何同時使用 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 網路流量監控附加元件 OpenMetric 參數
<a name="CloudWatch-NetworkFlowMonitor-agents-kubernetes-eks-third-party-parameters"></a>
+ **OPEN\$1METRICS：**
  + 啟用或停用開啟指標。如果未提供，則停用
  + 類型：字串
  + 值：【"on"、"off"】
+ **OPEN\$1METRICS\$1ADDRESS：**
  + 接聽開放指標端點的 IP 地址。如果未提供，則預設為 127.0.0.1
  + 類型：字串
+ **OPEN\$1METRICS\$1PORT：**
  + 開放指標端點的接聽連接埠。如果未提供，則預設為 80
  + 類型：整數
  + 範圍：【0..65535】

**重要：**將 OPEN\$1METRICS\$1ADDRESS 設定為 0.0.0.0 時，指標端點可從任何網路界面存取。考慮將 127.0.0.1 用於僅限 localhost 的存取，或實作適當的網路安全控制，以限制僅限授權監控系統的存取。

## 疑難排解
<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\$1METRICS 是否設為 "on"。請參閱 [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 取代為您設定連接埠的實際 Pod IP 地址和連接埠）。
   + 如果您無法存取端點，請驗證您的網路組態和安全群組設定。

1. 驗證您的監控工具組態。如需如何執行下列作業的詳細資訊，請參閱監控工具使用者指南：
   + 確保您的監控工具 （例如 Prometheus) 設定為抓取正確的端點。
   + 檢查抓取間隔和逾時設定是否適當。
   + 確認您的監控工具具有 Pod IP 地址的網路存取權。

### 特定 Pod 中遺失的指標
<a name="CloudWatch-NetworkFlowMonitor-agents-kubernetes-eks-third-party-troubleshooting-metrics-missing-pods"></a>

問題：指標可從叢集中的某些 Pod 取得，但不適用於其他 Pod。

故障診斷步驟：

Network Flow Monitor 附加元件不支援使用 hostNetwork： true 的 Pod。如果您的 Pod 規格包含此設定，則無法從這些 Pod 取得指標。

解決方法：盡可能從 Pod 規格中移除 hostNetwork： true 設定。如果您需要應用程式使用主機聯網，請考慮針對這些特定 Pod 使用替代監控方法。

### 連線遭拒錯誤
<a name="CloudWatch-NetworkFlowMonitor-agents-kubernetes-eks-third-party-troubleshooting-connection-refused"></a>

問題：您在嘗試存取指標端點時收到「連線遭拒」錯誤。

故障診斷步驟：

1. 驗證 OPEN\$1METRICS\$1ADDRESS 組態：
   + 如果設定為 127.0.0.1，則只能從 Pod 內存取端點。
   + 如果設定為 0.0.0.0，則應該可以從叢集中的其他 Pod 存取端點。
   + 確保您的監控工具可以到達設定的地址。

1. 檢查 OPEN\$1METRICS\$1PORT 組態：
   + 確認連接埠號碼尚未由其他 服務使用。
   + 確定連接埠在有效範圍內 (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. 驗證 Pod 狀態：

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

1. 從叢集內測試指標端點：

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

   將 9109 取代為您設定的連接埠號碼，並將 Pod 名稱取代為 AddOn Pod 名稱。