콘텐츠로 이동

Nginx Tracing

설정

지원 버전

NGINX 버전 라인 nginx-datadog 지원 버전 범위 확인된 NGINX 버전 / 설명 권장
1.31.* >= v1.17.0 1.31.0 확인됨 v1.17.0 이상 사용
1.30.* >= v1.16.0 1.30.0v1.16.0부터 지원; 1.30.1v1.17.0부터 지원 v1.17.0+ 우선
1.29.* >= v1.8.0 1.29.0 ~ 1.29.8 확인됨; 일부 패치 버전은 더 높은 nginx-datadog가 필요 v1.17.0+ 우선
1.28.* >= v1.8.0 1.28.0 ~ 1.28.3 확인됨; 일부 패치 버전은 더 높은 nginx-datadog가 필요 v1.17.0+ 우선
1.27.* >= v1.8.0 1.27.0 ~ 1.27.5 확인됨 v1.17.0+ 우선
1.26.* >= v1.8.0 1.26.0 ~ 1.26.3 확인됨 v1.17.0+ 우선
1.25.* >= v1.0.1 1.25.0/1.25.1v1.0.1부터 지원; 1.25.2v1.0.2부터 지원; 1.25.3/1.25.4v1.0.5부터 지원; 1.25.5는 이후 버전에서 지원 v1.7.0+ 권장, 최신 우선
1.24.* v0.6.1 ~ v1.16.0 1.24.0 확인됨; v1.16.1+는 지원 제거됨 최대 v1.16.0 사용
1.23.* v0.3.4 / v0.5.3 / v0.6.1 ~ v1.6.2 1.23.2v0.3.4부터 지원; 1.23.3v0.5.3부터 지원; 1.23.4v0.6.1부터 지원 v1.6.2로 고정하거나 직접 build
1.22.* v0.3.4 ~ v1.6.2 1.22.1 확인됨 v1.6.2로 고정하거나 직접 build
1.19.* v0.1.0 ~ v1.6.2 1.19.1만 확인됨 다른 1.19.x는 assets를 확인하거나 직접 build
1.18.* v0.1.0 ~ v1.6.2 1.18.0-alpine만 확인됨 alpine이 아니거나 다른 패치는 assets를 확인하거나 직접 build
1.14.* v0.5.2 ~ v1.6.2 1.14.1만 확인됨 다른 1.14.x는 assets를 확인하거나 직접 build

Nginx 설정

Tracing 모듈 다운로드

https://github.com/DataDog/nginx-datadog/releases 에서 Assets 중 현재 아키텍처와 버전에 맞는 모듈 ngx_http_datadog_module-<처리기 아키텍처>-<버전>.so.tgz를 찾아 다운로드합니다.

Tracing 설치

  • 모듈 경로 생성
cd /usr/local/nginx
mkdir modules && cd $_
  • 압축 해제
root@root:/usr/local/nginx/modules$  tar xzvf ngx_http_datadog_module-<처리기 아키텍처>-<버전>.so.tgz

Nginx 설정

/usr/local/nginx/conf/nginx.conf 에 다음 내용을 추가합니다.

# 모듈 로드
load_module modules/ngx_http_datadog_module.so;

worker_processes  1;

events {
    worker_connections  1024;
}

http {
    # Datakit URL 설정
    datadog_agent_url http://localhost:9529;
    # 서비스 이름 설정
    datadog_service_name nginx-demo;
    # 환경 이름 설정
    datadog_environment test;
    # 버전 이름 설정
    datadog_version 1.0.0;
    # 샘플링 비율 설정 0-1.0
    datadog_sample_rate 1.0;
    # 태그 설정
    datadog_tag foo bar;

    include       mime.types;
    default_type  application/octet-stream;

    # $datadog_trace_id 와 $datadog_span_id 를 통해 로그에 trace_id 와 span_id 를 추가하며, 둘 다 16진수입니다
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"'
                      '"$datadog_trace_id" "$datadog_span_id"';

    access_log  logs/access.log  main;

    sendfile        on;
    keepalive_timeout  65;

    server {
        listen       80;
        server_name  localhost;

        location / {
            root   html;
            index  index.html index.htm;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

Nginx 재시작

생략

DataKit 수집 활성화

  • ddtrace 활성화
cd /usr/local/datakit/conf.d/ddtrace/
cp ddtrace.conf.sample ddtrace.conf
  • DataKit 재시작
datakit service -R

문서 평가

이 페이지가 도움이 되었나요?