X-Amzn-Trace-Id를 로깅하여 Application Load Balancer 및 웹 서버를 통해 요청을 추적하려면 어떻게 해야 하나요?
간략한 설명
Elastic Load Balancing(ELB)에서 Application Load Balancer가 요청을 처리할 때 추적 정보가 X-Amzn-Trace-Id 헤더에 추가됩니다. 예를 들면 다음과 같습니다.
X-Amzn-Trace-Id: Root=1-67891233-abcdef012345678912345678
식별자를 로깅한 다음 해당 식별자를 사용하여 로드 밸런서 문제를 해결합니다. 예를 들어, X-Amzn-Trace-Id 헤더를 사용하여 짧은 시간 내에 동일한 클라이언트에서 여러 유사 요청을 받는 시기를 식별합니다. 스택에 여러 계층이 있는 경우 X-Amzn-Trace-Id 헤더를 사용하여 모든 계층에 대한 요청을 추적할 수도 있습니다.
해결 방법
일반적인 웹 서버 구성(Apache, Tomcat, NGINX 또는 IIS)에 대해 다음 단계를 사용하여 X-Amzn-Trace-Id 헤더를 로깅합니다.
Apache
1. 원하는 텍스트 편집기에서 Apache 구성 파일(Amazon Linux의 /etc/httpd/conf/httpd.conf)을 엽니다.
2. LogFormat 섹션에서 다음과 같이 %{X-Amzn-Trace-Id}i 옵션을 추가합니다.
LogFormat "%{X-Forwarded-For}i %h %l %u %t \"%r\" %>s %b %D \"%{Referer}i\" \"%{User-Agent}i\" \"%{X-Amzn-Trace-Id}i\"" combined
3. 다음과 같이 Apache 서비스를 다시 시작하여 변경 사항을 적용합니다.
sudo service apache restart
Tomcat
1. 원하는 텍스트 편집기에서 Tomcat 구성 파일(Amazon Linux의 /etc/tomcat7/server.xml)을 엽니다.
2. org.apache.catalina.valves.AccessLogValve 클래스에서 다음과 같이 %{X-Amzn-Trace-Id}i 옵션을 추가합니다.
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt"
pattern="%h %l %u %t "%r" %s %b %{X-Amzn-Trace-Id}i" />
3. 다음과 같이 Tomcat 서비스를 다시 시작하여 변경 사항을 적용합니다.
sudo service tomcat7 restart
NGINX
1. 원하는 텍스트 편집기에서 NGINX 구성 파일(Amazon Linux의 /etc/nginx/nginx.conf)을 엽니다.
2. log_format 섹션에서 다음과 같이 $http_x_amzn_trace_id 옵션을 추가합니다.
log_format main '"$http_x_forwarded_for" $remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_amzn_trace_id"';
3. 다음과 같이 NGINX 서비스를 다시 시작하여 다음과 같이 변경 사항을 적용합니다.
sudo service nginx restart
IIS(인터넷 정보 서비스)
1. IIS 관리자를 엽니다.
2. 서버의 이름을 선택합니다.
3. [Logging]을 선택합니다.
4. **Select Fields(필드 선택)**를 선택합니다.
5. [필드 추가]를 선택합니다.
6. 대화 상자의 **Field Name(필드 이름)**에 X-Amzn-Trace-Id를 입력합니다. 소스 유형에 **Request Header(요청 헤더)**를 입력합니다. **Source(소스)**에 X-Amzn-Trace-Id를 입력합니다.
7. [적용]을 선택하여 변경 사항을 적용합니다.
관련 정보
Application Load Balancer에 대한 요청 추적
Application Load Balancer에 대한 액세스 로그