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

Simple Log Service:オンプレミスサーバーからのログ収集

最終更新日:Jun 22, 2026

このトピックでは、Nginx をフォワードプロキシサーバーとして使用し、プロキシモードを利用してオンプレミスサーバーから Simple Log Service (SLS) にログを収集する方法を説明します。

前提条件

背景情報

パブリックインターネットにアクセスできないオンプレミスサーバーからログを収集するには、プロキシモードを使用します。 このモードでは、パブリックインターネットにアクセスできるサーバーをフォワードプロキシとして動作させ、他のサーバーからのログを SLS に転送できます。

仕組み

Logtail は、制御、サービス、監視データを SLS とやり取りします。 制御データには、Logtail の設定配信や認証などの情報が含まれます。 この通信には HTTP と HTTPS が使用され、デフォルトではサービスデータと監視データは HTTP で送信されます。 したがって、プロキシサーバーは HTTP と HTTPS 両方のトラフィックをプロキシする必要があります。

Nginx は、高性能なオープンソースの HTTP プロキシサーバーです。 ネイティブで HTTP トラフィックのプロキシをサポートしていますが、認証などの要因により、HTTPS トラフィックを直接プロキシすることはできません。 HTTPS のプロキシを有効にするには、Nginx に HTTPS パッチを適用する必要があります。

ステップ1:プロキシサーバーの設定

Nginx を使用して、パブリックインターネットにアクセスできるオンプレミスサーバーをフォワードプロキシサーバーとして設定します。

  1. フォワードプロキシサーバーとして動作するマシンにログインします。

  2. Nginx と HTTPS パッチをダウンロードします。

    1. HTTPS パッチをダウンロードします。

      git clone https://github.com/chobits/ngx_http_proxy_connect_module.git
    2. Nginx をダウンロードして解凍します。

      ${version} をお使いの Nginx のバージョンに置き換えてください。 最新バージョンについては、「nginx: download」をご参照ください。

      wget http://nginx.org/download/nginx-${version}.tar.gz
      tar -xzvf nginx-${version}.tar.gz
      cd nginx-${version}/
  3. Nginx に HTTPS パッチを適用します。

    コマンド内の ${patchfile} はファイルパスです。 お使いの Nginx のバージョンに対応するファイルを選択してください。 詳細については、「Select patch」をご参照ください。

    patch -p1 < ../ngx_http_proxy_connect_module/patch/${patchfile}.patch
  4. Nginx をインストールします。

    ./configure --add-module=../ngx_http_proxy_connect_module
    make && make install
  5. nginx.conf ファイルに次の設定を追加します。

    ${proxy_server_listening_port}${dns_server_address} を実際の値に置き換えてください。

    server {
         listen                         ${proxy_server_listening_port};
         resolver                       ${dns_server_address};
         # HTTP 以外のリクエストのプロキシを指定します。
         proxy_connect;
         proxy_connect_allow            443;
         proxy_connect_connect_timeout  10s;
         proxy_connect_data_timeout     10s;
         # HTTP リクエストのプロキシを指定します。
         location / {
             proxy_pass http://$host;
             proxy_set_header Host $host;
         }
    }
  6. Nginx サーバーを起動します。

ステップ2:プロキシ関連の環境変数の設定

Linux システム

プロキシ関連の環境変数を設定するには、2つの方法があります。

方法

利点

欠点

ユースケース

方法1

設定は Logtail プロセスにのみ影響するため、影響は最小限です。

設定が比較的複雑です。

サーバー全体のネットワーク設定に精通していないユーザーに最適です。

方法2

設定が簡単です。

サーバー全体の設定であるため、影響範囲が広くなります。

サーバー上のすべてのプロセスのネットワークリクエストパターンを完全に理解しているサーバー管理者に最適です。

方法1

  1. オンプレミスサーバーにログインします。

  2. /etc/init.d/ilogtaild ファイルを開き、必要な環境変数を start() 関数に追加してファイルを保存します。

    環境変数の詳細については、「付録:プロキシ環境変数」をご参照ください。

    start()
    {
        cd $BIN_DIR
        umask $UMASK
        # $BIN_DIR/ilogtail の前にプロキシ関連の環境変数を追加します。
        # この例では ALL_PROXY を使用します。 プロキシサーバーの IP アドレスが 192.168.1.0 で、リッスンポートが 9000 であると仮定します。
        # オンプレミスサーバーは HTTP 経由でプロキシサーバーと通信します。
        ALL_PROXY=http://192.168.1.0:9000 $BIN_DIR/ilogtail
        RETVAL=$?
    }
  3. 次のコマンドを実行して Logtail を再起動します。

    /etc/init.d/ilogtaild restart
  4. 手順 1 から 3 を繰り返し、他のオンプレミスサーバーのプロキシ関連の環境変数を設定します。

方法2

重要

この方法は、オンプレミスサーバー上のすべてのネットワークリクエストをプロキシする場合、または Logtail のリクエストのみをプロキシし、サーバー上の他のプロセスのネットワーク動作を完全に理解している場合にのみ使用してください。 それ以外の場合は、方法1を使用してください。

  1. オンプレミスサーバーにログインします。

  2. export コマンドを使用して、プロキシ関連の環境変数を ~/.bash_profile または /etc/profile 起動スクリプトに追加します。

    環境変数の詳細については、「付録:プロキシ環境変数」をご参照ください。

  3. 次のコマンドを実行して環境変数を適用します。

    この例では、~/.bash_profile 起動スクリプトを使用します。

    source ~/.bash_profile
  4. 次のコマンドを実行して Logtail を再起動します。

    /etc/init.d/ilogtaild restart
  5. 手順 1 から 4 を繰り返し、他のオンプレミスサーバーのプロキシ関連の環境変数を設定します。

Windows システム

  1. 実行 ウィンドウを開き、「regedit」と入力して、OK をクリックします。

  2. [レジストリ エディター] ウィンドウで、[Computer\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\LogtailDaemon] に移動し、[LogtailDaemon] をクリックします。

  3. 右クリックして 作成 > [複数行文字列値] の順に選択し、新しい値に Environment という名前を付けます。

  4. Environment をダブルクリックします。 [値のデータ] テキストボックスにプロキシ関連の環境変数を入力し、OK をクリックします。

    この例では ALL_PROXY を使用します。 プロキシサーバーの IP アドレスは 192.168.1.0、リッスンポートは 9000 です。 オンプレミスサーバーは HTTP 経由でプロキシサーバーと通信します。 環境変数の詳細については、「付録:プロキシ環境変数」をご参照ください。 たとえば、「ALL_PROXY=http://192.168.1.0:9000」と入力します。

  5. 実行 ウィンドウを開き、「services.msc」と入力して、OK をクリックします。

  6. サービス ウィンドウで、Logtail サービスを見つけます。

    • Logtail 0.x.x.x の場合は、LogtailWorker サービスを選択します。

    • Logtail 1.0.0.0 以降の場合は、LogtailDaemon サービスを選択します。

  7. サービスを右クリックし、[再起動] を選択します。

ステップ3:ネットワーク接続性の検証

  1. オンプレミスサーバーにログインします。

  2. 次のコマンドを実行します。

    次のコマンドの ${region} はプロジェクトのリージョン、${project_name} はプロジェクトの名前です。 これらを実際の値に置き換えてください。

    curl http://logtail.${region}.log.aliyuncs.com
    curl https://logtail.${region}.log.aliyuncs.com
    curl http://${project_name}.${region}.log.aliyuncs.com
    curl http://ali-${region}-sls-admin.${region}.log.aliyuncs.com     

    次のようなレスポンスが返された場合、ネットワーク接続は正常です。

    {"Error":{"Code":"OLSInvalidMethod","Message":"The script name is invalid : /","RequestId":"62591BC7C08B7BD4AA99FCD4"}}
  3. 手順 12 を繰り返し、他のオンプレミスサーバーのネットワーク接続を検証します。

付録:プロキシ環境変数

重要

これらの環境変数は小文字で指定できますが、大文字の変数が優先されます。

  • すべての HTTP および HTTPS トラフィックを同じプロキシサーバーに送信するには、ALL_PROXY 環境変数を追加します。

    ALL_PROXY=${address_of_the_forward_proxy_server}
  • HTTP および HTTPS トラフィックを異なるプロキシサーバーに送信するには、HTTP_PROXY および HTTPS_PROXY 環境変数を追加します。

    HTTP_PROXY=${address_of_the_server_that_proxies_HTTP_traffic}
    HTTPS_PROXY=${address_of_the_server_that_proxies_HTTPS_traffic}

    プロキシサーバーのアドレスは、[protocol://[username:password@]]address[:port] 形式で指定します。

    • protocol (オプション):オンプレミスサーバーとプロキシサーバー間の通信プロトコルを指定します。 有効な値は http、https、socks5 です。 このパラメーターを設定しない場合、デフォルトでは http が使用されます。

    • username と password (オプション):プロキシサーバーにログインするための認証情報。

    • address (必須):プロキシサーバーの IP アドレス。

    • port (オプション):nginx.conf ファイルで設定したプロキシサーバーのリッスンポート。 詳細については、「ステップ1:プロキシサーバーの設定」の手順 5 をご参照ください。 このパラメーターを省略した場合、デフォルトではポート 80 が使用されます。

    NO_PROXY 環境変数を追加して、プロキシサーバーをバイパスする宛先を指定することもできます。 複数のアドレスはカンマ (,) で区切ります。 サポートされている形式は次のとおりです。

    • IP アドレス

    • 先頭のピリオド (.) は、ドメインとそのサブドメインに一致します。

    • * (すべての宛先に対してプロキシを無効にします)