라우터에서 NGINX 디버그 로그 사용 설정

현재 Apigee Edge 문서가 표시되고 있습니다.
Apigee X 문서로 이동
정보

Apigee에서 라우터는 기본적으로 오류 로그 파일에 오류 메시지만 로깅하도록 구성됩니다. 하지만 특정 오류가 발생한 이유를 확인하기 위해 추가 정보를 수집해야 하는 경우도 많습니다. 이렇게 하는 방법 중 하나는 라우터가 디버그 모드로 작동하도록 구성하여 디버그 로그를 가져와서 오류에 대한 자세한 정보를 얻고 더 빠르게 해결하는 데 도움이 됩니다.

이 문서에서는 특정 가상 호스트의 요청에 대해 Apigee Edge 라우터에서 디버그 로그를 사용 설정하는 방법을 설명합니다. 디버그 로깅을 사용 설정하여 노스바운드(클라이언트 애플리케이션과 라우터 사이)에서 잘못된 형식의 요청 400 Bad Request - SSL Certificate Error와 같은 문제가 있을 때 추가 정보를 캡처할 수 있습니다.

시작하기 전에

  • NGINX 오류 로그와 로깅 수준에 대해 잘 모른다면 NGINX 오류 로그 문서를 참조하세요.
  • 디버그 정보를 수집해야 하는 API 요청의 조직, 환경, 가상 호스트 이름을 수집합니다.

라우터에서 NGINX 디버그 로그 사용 설정

이 섹션에서는 에지 라우터에서 디버그 로그를 사용 설정하는 방법을 설명합니다.

관련 가상 호스트 구성 파일 식별

다음 단계에서는 라우터에서 관련 가상 호스트 구성 파일을 찾는 방법을 설명합니다.

  1. 디버깅할 특정 API 요청의 조직 이름, 환경 이름, 가상 호스트를 알고 있는 경우 다음과 같이 가상 호스트 conf 파일을 결정합니다.
    1. /opt/nginx/conf.d/ 디렉터리로 이동합니다.
    2. 다음 명령어를 사용하여 conf.d 디렉터리에서 ORG_NAME_ENV_NAME_VIRTUALHOST.conf 파일을 검색합니다.
      ls -ltrh | grep "ORG_NAME_ENV_NAME_VIRTUALHOST_NAME"
      
  2. 조직 이름을 모르는 경우 다음과 같이 API 요청에 사용되는 호스트 별칭 이름을 사용하여 가상 호스트 구성 파일을 식별할 수 있습니다.

    /opt/nginx/conf.d/ 디렉터리로 이동하고 다음 명령어를 사용하여 요청한 hostalias를 검색합니다.

    ls -ltrh | grep -r 'HOST_ALIAS_NAME'
    

    샘플 출력:

    호스트 별칭 이름이 opdk.cert-test.com라고 가정해 보겠습니다. ls -ltrh 명령어를 실행하면 아래와 같이 출력이 표시됩니다.

라우터의 특정 가상 호스트에 대한 디버그 로깅 사용 설정

다음 단계에서는 특정 가상 호스트에 대해 Apigee 라우터에서 디버그 로그를 사용 설정하는 방법을 설명합니다.

  1. 라우터 머신에서 편집기로 다음 파일을 엽니다. /opt/nginx/conf.d/ORG_NAME_ENV_NAME_VIRTUALHOST_NAME.conf 예:
    vi /opt/nginx/conf.d/ORG_NAME_ENV_NAME_VIRTUALHOST_NAME.conf
    
  2. 다음 줄을 변경합니다.
    error_log /opt/apigee/var/log/edge-router/nginx/ORG_NAME~ENV_NAME.PORT_error_log error;
    

    error_log /opt/apigee/var/log/edge-router/nginx/ORG_NAME~ENV_NAME.PORT_error_log info;
    
  3. 변경사항을 저장합니다.
  4. NGINX 새로고침 명령어를 실행합니다. 예를 들면 다음과 같습니다.
    sudo /opt/nginx/scripts/apigee-nginx reload
    
  5. 이제 다음 파일이 디버그 로그를 캡처합니다.
    /opt/apigee/var/log/edge-router/nginx/ORG_NAME~ENV_NAME.PORT_error_log
    
  6. 라우터 2개 이상에서 디버그 로그를 캡처하려면 라우터마다 이 단계를 반복합니다.

디버그 정보가 NGINX 오류 로그 파일에 로깅되는지 확인합니다.

  1. 클라이언트가 가상 호스트 구성과 연결된 호스트 별칭 및 포트에 API 요청을 보내면 디버그 로그가 다음 파일로 캡처됩니다.

    /opt/apigee/var/log/edge-router/nginx/ORG_NAME~ENV_NAME.PORT_error_log

  2. 다음 예와 같이 API 요청의 디버그 정보가 표시되는지 확인합니다.

    샘플 디버그 정보:

    2021/01/27 02:48:40 [warn] 27624#27624: *3777 a client request body is buffered to a temporary file /opt/apigee/var/log/edge-router/nginx/client_temp/0000000001, client: XX.XX.XX.XX, server: XX.XX.XX.XX, request: "POST /post-no-target HTTP/1.1", host: "XX.XX.XX.XX:443"
    

    위에 표시된 정보는 클라이언트가 큰 페이로드가 포함된 POST 요청을 보낼 때 캡처됩니다. 이 로그는 디버그 로깅이 사용 설정된 경우에만 표시됩니다.

  3. 추가 디버그 정보가 표시되지 않으면 라우터의 특정 가상 호스트에 디버그 로깅 사용 설정에 설명된 모든 단계를 올바르게 수행했는지 확인합니다. 누락된 단계가 있으면 모든 단계를 다시 올바르게 반복합니다.
  4. 그래도 디버그 정보를 가져올 수 없으면 Apigee Edge 지원팀에 문의하세요.

라우터의 특정 가상 호스트에 대한 디버그 로그 사용 중지

이 섹션에서는 특정 가상 호스트의 라우터에서 디버그 로그를 사용 중지하는 방법을 설명합니다.

  1. 라우터 머신에서 편집기의 다음 파일을 엽니다. /opt/nginx/conf.d/ORG_NAME_ENV_NAME_VIRTUALHOST_NAME.conf 예:
    vi /opt/nginx/conf.d/ORG_NAME_ENV_NAME_VIRTUALHOST_NAME.conf
    
  2. 다음 줄을 변경합니다.

    error_log /opt/apigee/var/log/edge-router/nginx/ORG_NAME~ENV_NAME.PORT_error_log info;
    

    error_log /opt/apigee/var/log/edge-router/nginx/ORG_NAME~ENV_NAME.PORT_error_log error;
    
  3. 변경사항을 저장합니다.
  4. NGINX 새로고침 명령어를 실행합니다. 예를 들면 다음과 같습니다.
    /opt/nginx/scripts/apigee-nginx reload
    
  5. 이제 다음 파일이 오류 로그만 캡처합니다.
    /opt/apigee/var/log/edge-router/nginx/ORG_NAME~ENV_NAME.PORT_error_log
    
  6. 라우터 2개 이상에서 디버그 로그를 중지하려면 각 라우터에서 이 단계를 반복합니다.

오류 정보만 NGINX 오류 로그 파일에 기록되는지 확인

  1. 특정 가상 호스트 구성과 연결된 호스트 별칭 및 포트에서 API 요청을 만들거나 클라이언트가 요청할 때까지 기다립니다.
  2. 다음 파일을 확인합니다. /opt/apigee/var/log/edge-router/nginx/ORG_NAME~ENV_NAME.PORT_error_log
  3. 요청에 대해 오류 정보와 디버그 정보만 더 이상 로깅되지 않는지 확인합니다.
  4. 추가 디버그 정보가 로깅되는 것이 계속 표시되면 라우터의 특정 가상 호스트에 대한 디버그 로그 사용 중지에 설명된 모든 단계를 올바르게 수행했는지 확인합니다. 누락된 단계가 있으면 모든 단계를 다시 올바르게 반복합니다.
  5. 그래도 디버그 정보를 가져올 수 없으면 Apigee Edge 지원팀에 문의하세요.