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

Apigee Edge 문서입니다.
Go to the Apigee X 문서로 이동합니다.
info

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

이 문서에서는 특정 가상 호스트의 요청에 대해 Apigee Edge의 라우터에서 디버그 로그를 사용 설정하는 방법을 설명합니다. 잘못된 형식의 요청, 400 잘못된 요청 - SSL 인증서 오류와 같은 문제가 Northbound (클라이언트 애플리케이션과 라우터 간)에 있는 경우 디버그 로깅을 사용 설정하여 더 많은 정보를 캡처할 수 있습니다.

시작하기 전에

  • NGINX 오류 로그 및 로깅 수준에 익숙하지 않은 경우 NGINX 오류 로그 문서를 참조하세요.
  • 디버그 정보를 수집해야 하는 API 요청의 조직, 환경, 가상 호스트 이름을 수집합니다.

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

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

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

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

  1. 디버그하려는 특정 API 요청의 조직 이름, 환경 이름, 가상 호스트를 알고 있는 경우 다음과 같이 가상 호스트 구성 파일을 확인합니다.
    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. 둘 이상의 라우터에서 디버그 로그를 캡처하려면 각 라우터에서 이 단계를 반복합니다.

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. 둘 이상의 라우터에서 디버그 로그를 중지하려면 각 라우터에서 이 단계를 반복합니다.

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

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