NGINX Ingress Controller Documentation

NGINX App Protect DoS를 사용한 문제 해결

이 문서에서는 App Protect DoS 모듈이 활성화된 상태에 Ingress Controller의 문제를 해결하는 방법을 설명합니다.

Ingress Controller의 일반적인 문제 해결은 일반 문제 해결 문서를 확인하세요.

목차

1. 잠재적인 문제
2. 문제 해결방법
2-1. Ingress Controller 및 App Protect DoS Log 확인
2-2. Ingress 리소스의 이벤트 확인
2-3. VirtualServer 리소스의 이벤트 확인
2-4. DosProtectedResource의 이벤트 확인
2-5. APDosLogConf 이벤트 확인

2-6. APDosPolicy의 이벤트 확인
3. 디버그 Log 모드에서 App Protect DoS 실행

1. 잠재적인 문제

아래 표는 App Protect DoS 모듈이 활성화된 경우 Ingress Controller와 관련된 몇 가지 잠재적인 문제를 분류합니다. 다음 섹션에서 하나 이상의 방법을 사용하여 이러한 문제를 해결하는 방법을 제안합니다.

Problem area증상문제 해결방법원인
StartIngress Controller가 시작되지 않습니다.Ingress Controller log를 확인합니다.DosProtectedResource, APDosLogConf 또는 APDosPolicy가 잘못 구성되었습니다.
DosProtectedResource, APDosLogConf, APDosPolicy or Ingress Resource.구성이 적용되지 않았습니다.DosProtectedResource, APDosLogConf, APDosPolicy 및 Ingress 리소스의 이벤트를 확인하고 Ingress Controller Log를 확인합니다.DosProtectedResource, APDosLogConf 또는 APDos정책이 잘못되었습니다.

2. 문제 해결방법

2-1. Ingress Controller 및 App Protect DoS Log 확인

App Protect DoS Log는 모듈이 활성화될 때 Ingress Controller Log의 일부입니다. Ingress Controller Log를 확인하려면 문제 해결 가이드의 Ingress Controller Log 확인 단계를 따르세요.

App Protect DoS 특정 Log의 경우 APP_PROTECT_DOS로 시작하는 메시지를 찾습니다. 예를 들면 다음과 같습니다.

2021/06/14 08:17:50 [notice] 242#242: APP_PROTECT_DOS { "event": "shared_memory_connected", "worker_pid": 242, "mode": "operational", "mode_changed": true }

2-2. Ingress 리소스의 이벤트 확인

Ingress 리소스의 이벤트 확인 단계를 따릅니다.

2-3. VirtualServer 리소스의 이벤트 확인

VirtualServer 리소스의 이벤트 확인 단계를 따릅니다.

2-4. DosProtectedResource의 이벤트 확인

DosProtectedResource를 생성하거나 업데이트한 후 NGINX에서 NGINX 구성이 성공적으로 적용되었는지 즉시 확인할 수 있습니다.

$ kubectl describe dosprotectedresource dos-protected
Name:         dos-protected
Namespace:    default
. . .
Events:
  Type     Reason          Age   From                      Message
  ----     ------          ----  ----                      -------
  Normal   AddedOrUpdated  2s    nginx-ingress-controller  Configuration for default/dos-protected was added or updated

이벤트 섹션에는 구성이 성공적으로 적용되었음을 알려주는 AddedOrUpdated Reason가 있는 Normal 이벤트가 있습니다.

DosProtectedResource가 누락된 리소스를 참조하는 경우 다음과 같은 메시지가 표시됩니다.

Events:
  Type     Reason    Age   From                      Message
  ----     ------    ----  ----                      -------
  Warning  Rejected  8s    nginx-ingress-controller  dos protected refers (default/dospolicy) to an invalid DosPolicy: DosPolicy default/dospolicy not found

이 문제는 누락된 리소스를 추가하여 해결할 수 있습니다.

2-5. APDosLogConf 이벤트 확인

APDosLogConf를 생성하거나 업데이트한 후 NGINX에서 NGINX 구성이 성공적으로 적용되었는지 즉시 확인할 수 있습니다.

$ kubectl describe apdoslogconf logconf
Name:         logconf
Namespace:    default
. . .
Events:
  Type    Reason          Age   From                      Message
  ----    ------          ----  ----                      -------
  Normal  AddedOrUpdated  11s   nginx-ingress-controller  AppProtectDosLogConfig  default/logconf was added or updated

이벤트 섹션에는 구성이 성공적으로 적용되었음을 알려주는 AddedOrUpdated Reason가 있는 Normal 이벤트가 있습니다.

2-6. APDosPolicy의 이벤트 확인

APDosPolicy를 생성하거나 업데이트한 후 NGINX에서 NGINX 구성이 성공적으로 적용되었는지 즉시 확인할 수 있습니다.

$ kubectl describe apdospolicy dospolicy
Name:         dospolicy
Namespace:    default
. . .
Events:
  Type    Reason          Age    From                      Message
  ----    ------          ----   ----                      -------
  Normal  AddedOrUpdated  2m25s  nginx-ingress-controller  AppProtectDosPolicy default/dospolicy was added or updated

이벤트 섹션에는 구성이 성공적으로 적용되었음을 알려주는 AddedOrUpdated Reason가 있는 Normal 이벤트가 있습니다.

3. 디버그 Log 모드에서 App Protect DoS 실행

디버그 Log 모드를 사용하도록 Ingress Controller를 설정하면 설정이 App Protect DoS 모듈에도 적용됩니다. 지침은 디버그 모드에서 NGINX 실행을 참조하십시오.

app-protect-dos-debug configmap을 설정해야만 App Protect DoS 모듈에 대한 디버그 Log 모드를 활성화할 수 있습니다.