

# 서드 파티 모니터링 도구에 대한 추가 기능 구성
<a name="CloudWatch-NetworkFlowMonitor-agents-kubernetes-eks-third-party"></a>

설치 중에 OpenMetrics 서버를 공개하도록 Network Flow Monitor 추가 기능을 구성할 수 있습니다. 이렇게 하면 Prometheus 같은 서드 파티 모니터링 도구와의 통합이 가능하므로, 기존 모니터링 인프라와 함께 네트워크 흐름 지표를 수집하고 분석할 수 있습니다. [OpenMetrics를 자세히 알아보세요](https://openmetrics.io/). 이 기능은 추가 기능 버전 v1.1.0부터 사용할 수 있습니다.

OpenMetrics 서버를 활성화하려면 EKS Network Flow Monitor 추가 기능의 구성 값에 OPEN\$1METRICS, OPEN\$1METRICS\$1ADDRESS, OPEN\$1METRICS\$1PORT를 추가합니다. 이 가이드에서는 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\$1METRICS:**
  + 개방형 지표를 활성화하거나 비활성화합니다. 제공되지 않을 경우 비활성화됩니다.
  + 유형: 문자열
  + 값: ["on", "off"]
+ **OPEN\$1METRICS\$1ADDRESS:**
  + 개방형 지표 엔드포인트의 수신 IP 주소입니다. 제공되지 않을 경우 기본값은 127.0.0.1입니다.
  + 유형: 문자열
+ **OPEN\$1METRICS\$1PORT:**
  + 개방형 지표 엔드포인트의 수신 포트입니다. 제공되지 않을 경우 기본값은 80입니다.
  + 유형: 정수
  + 범위: [0..65535]

**중요:** OPEN\$1METRICS\$1ADDRESS를 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\$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를 실제 포드 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\$1METRICS\$1ADDRESS 구성을 확인합니다.
   + 127.0.0.1로 설정된 경우 포드 내에서만 엔드포인트에 액세스할 수 있습니다.
   + 0.0.0.0으로 설정된 경우 클러스터의 다른 포드에서 엔드포인트에 액세스할 수 있어야 합니다.
   + 모니터링 도구가 구성된 주소에 도달할 수 있는지 확인합니다.

1. OPEN\$1METRICS\$1PORT 구성을 확인합니다.
   + 포트 번호가 다른 서비스에서 이미 사용되고 있지 않은지 확인합니다.
   + 포트가 유효한 범위(1\$165535) 내에 있는지 확인합니다.
   + 보안 그룹 또는 네트워크 정책이 이 포트에 대한 트래픽을 허용하는지 확인합니다.

### 확인 단계
<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 포드 이름으로 바꿉니다.