すべてのプロダクト
Search
ドキュメントセンター

Managed Service for OpenTelemetry:NGINX でトレース分析を実行するための Zipkin の使用方法

最終更新日:Nov 10, 2025

NGINX は、HTTP サーバーおよびリバースプロキシとして機能する、無料のオープンソースの高性能サーバーです。アプリケーションの状態をより適切に監視するために、NGINX でトレース分析を実行できます。このトピックでは、NGINX でトレース分析を実行する方法について説明します。

前提条件

Jaeger または Zipkin のエンドポイントを取得するには、次の手順を実行します。

  1. Managed Service for OpenTelemetry コンソールにログインします。

  2. 左側のナビゲーションペインで、クラスタ設定をクリックします。表示されるページで、アクセスポイント情報タブをクリックします。

  3. 上部のナビゲーションバーで、地域を選択します。クラスタ情報セクションで、トークンを表示をオンにします。

  4. クライアントパラメータを Jaeger または Zipkin に設定します。この例では、Jaeger が選択されています。

    下部の表の関連情報列で、Jaeger または Zipkin のエンドポイントを取得します。

    Jaeger/Zipkin接入点信息

    説明

    アプリケーションが Alibaba Cloud 本番環境にデプロイされている場合は、VPC エンドポイントを使用します。それ以外の場合は、パブリックエンドポイントを使用します。通常、Zipkin には v2 のエンドポイントを使用します。Zipkin についてよく理解している場合のみ、v1 のエンドポイントを使用してください。

概要

NGINX をプロキシとして使用するマイクロサービスでレスポンスが遅い場合、データが収集されないため、レスポンスが遅い影響を推定できません。この場合、トレース分析を使用してマイクロサービスの NGINX リクエストをトレースし、レスポンスの遅延の影響を受けるページビューの数を計算できます。

Docker コンテナでの NGINX のデプロイとトレース

  1. Dockerfile をダウンロード、ビルド、デプロイします。

    wget https://arms-apm.oss-cn-hangzhou.aliyuncs.com/demo/nginx-zipkin-docker.tgz
    tar -xzvf nginx-zipkin-docker.tgz
    cd nginx-zipkin
    // Dockerfile をビルドします。
    docker build --rm --tag nginx-zipkin:0.1
  2. Docker を実行します。

    docker run --rm  -p 80:80 -e "COLLECTOR_HOST=${ZIPKIN_ENDPOINT}?" -d nginx-zipkin:0.1

    ${ZIPKIN_ENDPOINT} 変数を、「前提条件」でコピーした Zipkin のバージョン 1 エンドポイントに設定しますが、「http://」を削除し、値の末尾に疑問符(?)を追加します。

    例:

    docker run --rm  -p 80:80 -e "COLLECTOR_HOST=tracing-analysis-dc-hz.aliyuncs.com/adapt_123@abc_456@efg/api/v1/spans?" -d nginx-zipkin:0.1

ECS インスタンスでの NGINX のデプロイとトレース

  1. NGINX をインストールします。

    1. NGINX のソースコードをダウンロードして解凍します。

      wget http://nginx.org/download/nginx-1.14.2.tar.gz
      tar -xzvf nginx-1.14.2.tar.gz
    2. NGINX のソースコードをコンパイルします。

      cd nginx-1.14.2
      ./configure --with-compat
      make
      sudo make install
  2. OpenTracing をインストールします。

    1. OpenTracing パッケージをダウンロードして解凍します。

      wget https://github.com/opentracing-contrib/nginx-opentracing/releases/download/v0.7.0/linux-amd64-nginx-1.14.0-ngx_http_module.so.tgz
      tar -xzvf linux-amd64-nginx-1.14.0-ngx_http_module.so.tgz
    2. .soファイルをNGINXのmodulesフォルダにコピーします。フォルダが存在しない場合は、フォルダを作成します。

      sudo mkdir /usr/local/nginx/modules
      sudo cp ngx_http_opentracing_module.so /usr/local/nginx/modules/ngx_http_opentracing_module.so
  3. Zipkin を使用してトレース分析を実行します。

    1. Zipkin を作業ディレクトリにダウンロードします。

      wget  https://github.com/rnburn/zipkin-cpp-opentracing/releases/download/v0.5.2/linux-amd64-libzipkin_opentracing_plugin.so.gz
      gunzip linux-amd64-libzipkin_opentracing_plugin.so.gz
      sudo cp linux-amd64-libzipkin_opentracing_plugin.so /usr/local/lib/libzipkin_opentracing_plugin.so 
    2. /usr/local/nginx/conf/nginx.conf ファイルを構成します。

      load_module modules/ngx_http_opentracing_module.so;
      events {}
      http {
        opentracing on;
        opentracing_load_tracer /usr/local/lib/libzipkin_opentracing.so /etc/zipkin-config.json;
        server {
          error_log /var/log/nginx/debug.log debug;
          listen 80;
          location  ~ {
            opentracing_operation_name $uri;
            opentracing_trace_locations off;
            // プロキシに移動するために使用するサービス。ビジネス要件に基づいて値を設定します。
            proxy_pass http://127.0.0.1:8081;
            opentracing_propagate_context;
          }
        }
      }
      説明

      パラメータの詳細については、opentracing-contrib を参照してください。

    3. /etc/zipkin-config.json ファイルで Zipkin パラメーターを設定します。

      {
        "service_name": "nginx",
        "collector_host": "zipkin"
      }

      Alibaba Cloud によって管理されている Zipkin サービスを使用する場合は、_collector_host_ パラメータを Zipkin のエンドポイントに設定します。

      説明

      「前提条件」でコピーした Zipkin のバージョン 1 エンドポイントを入力しますが、「http://」を削除し、値の末尾に疑問符(?)を追加します。

      "collector_host": "tracing-analysis-dc-hz.aliyuncs.com/adapt_abc123@abc456_abc123@abc356/api/v1/spans?"
    4. _sample_rate_ パラメータを設定してサンプリング比率を指定します。

      // サンプリング比率を 10% に設定します。
      "sample_rate":0.1
    5. NGINX を実行し、NGINX サービスにアクセスします。

      sudo /usr/local/nginx/sbin/nginx
      curl "http://localhost"

他の環境での NGINX のデプロイとトレース

  1. コンテナレジストリからイメージをプルします。

    sudo docker pull registry.cn-hangzhou.aliyuncs.com/public-community/nginx-zipkin:0.1
  2. Docker コンテナで NGINX を実行します。

    docker run --rm  -p 80:80 -e "COLLECTOR_HOST=${ZIPKIN_ENDPOINT}?" -d registry.cn-hangzhou.aliyuncs.com/public-community/nginx-zipkin:0.1

    ${ZIPKIN_ENDPOINT} 変数を、「前提条件」でコピーした Zipkin のバージョン 1 エンドポイントに設定しますが、「http://」を削除し、値の末尾に疑問符(?)を追加します。

    例:

    docker run --rm  -p 80:80 -e "COLLECTOR_HOST=tracing-analysis-dc-hz.aliyuncs.com/adapt_******_******/api/v1/spans?" -d registry.cn-hangzhou.aliyuncs.com/public-community/nginx-zipkin:0.1
  3. ブラウザを使用して NGINX ページに移動します。

    ブラウザのアドレスバーに _localhost/nginx.conf_ または _curl "localhost/nginx.conf"_ と入力して NGINX ページに移動します。

結果の確認

アプリケーションページManaged Service for OpenTelemetry コンソールで、アプリケーションの名前をクリックします。表示されるページで、トレースデータを確認します。