ブログ | NGINX

チュートリアル: NGINX 使用状況レポートを構成する

NGINX-F5 水平黒タイプ RGB の一部

NGINX Plus R31 では、NGINX Plus の使用状況をレポートするためのよりシンプルで効率的な方法が導入されています。 使用状況レポートのネイティブ統合により、個別の NGINX エージェントが不要になり、F5 の Flex Consumption Program (FCP) の顧客と、期間サブスクリプションの非 FCP 顧客にとって、レポート プロセスがシームレスで手間のかからないものになります。 この機能が NGINX Plus に直接組み込まれているため、インスタンスはパフォーマンスに影響を与えることなく、必要な使用状況情報を NGINX インスタンス マネージャーに定期的に通信できます。 この機能は仮想マシンと NGINX Ingress Controller で利用できます。ただし、このブログでは NGINX Plus インスタンスに焦点を当てています。NGINX Ingress Controller を NGINX インスタンス マネージャーに報告する方法については、こちら のガイドをご覧ください。

セットアップを簡素化し、カスタマイズ オプションを提供し、フォールバック メソッドを提供することで、必要な使用状況レポートを、お客様が FCP への準拠を実装および維持するための効率的で適応性の高いプロセスにすることを目指しています。 まだ R31 を導入していない、またはアップグレードする予定がないお客様は、NGINX エージェントをインストールするか、HTTP ヘルス チェックを構成することで、使用状況レポートを有効にする代替方法を利用できます。

注記: NGINX Plus の使用状況を報告するには、専用ホストにNGINX インスタンス マネージャーをインストールする必要があります。 さまざまなインストール方法については、インストール ガイドを参照してください。

NGINX Plus インスタンスを F5 に報告するには、3 つの方法から選択できます。

  • NGINX Plus R31 ユーザー — ネイティブ NGINX 使用状況レポートの設定
  • R31 または R31 以前のユーザー — NGINX エージェントのインストール
  • R31 以前のユーザー — NGINX Plus の HTTP ヘルスチェックの設定

一つずつ見ていきましょう:

ネイティブ NGINX 使用状況レポートを構成する

インストール時に、NGINX Plus はデフォルトの DNS エントリ「nginx-mgmt.local」を介して NGINX インスタンス マネージャーへの自動接続を確立します。 デフォルトでは、NGINX Plus は 30 分ごとにインスタンス マネージャーと通信し、使用状況情報を送信します。 インスタンス マネージャーの DNS エントリを変更したり、デフォルトの接続間隔をニーズに合わせて変更したりする必要がある場合は、NGINX 構成に mgmt{} ブロックを追加します。 さらに、UUID ファイル、mTLS、DNS リゾルバー、使用間隔、usage_report エンドポイントなどの他のデフォルト ディレクティブも付属しています。 カスタマイズ可能なディレクティブの完全なリストについては、包括的なmgmtmoduleドキュメントを参照してください。 ngx_mgmt_moduleを使用すると、ディレクティブを簡単にカスタマイズでき、柔軟性と利便性が向上します。

次のセクションでは、この機能を環境に合わせて構成する方法について説明します。

NGINX Plusを構成する

  1. システムのセキュリティを強化するには、mTLS を使用することをお勧めします。 これを実現するには、NGINX Plus インスタンスと NGINX インスタンス マネージャーの両方に対して証明書、キー、および CA キー証明書を生成します。 キーの生成方法の詳細については、ここをクリックしてください
  2. 設定ファイル nginx.conf の管理ブロック内で、クライアント証明書と秘密鍵ファイルへのパスを指定します。
    		
       mgmt {
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers DEFAULT;
    ssl_certificate          /home/ubuntu/agent.crt;
    ssl_certificate_key      /home/ubuntu/agent.key
    }
    
  3. 安全で信頼性の高い認証プロセスを実現するには、証明書の信頼性を検証するための CA チェーンへのパスを指定します。
    
       mgmt {
    ssl_trusted_certificate  /home/ubuntu/ca.pem;
    ssl_verify               on;
    ssl_verify_depth         2;
    }
    
  4. カスタム DNS リゾルバの場合は、resolver ディレクティブを使用して、mgmt{} ブロックにリゾルバ アドレスを指定します。
    
       mgmt {
    リゾルバ 3.X.X.X;
    }
    
  5. NGINX インスタンス マネージャーのカスタム FQDN を構成するには、 usage_reportディレクティブで FQDN を指定します。 次に、ホスト名を NGINX インスタンス マネージャーの IP アドレスに関連付ける A レコードをローカル DNS に追加します。
    
       mgmt {
    リゾルバ 3.X.X.X;
    usage_report エンドポイント = nms.local 間隔 = 15 分;
    }
    

NGINX Plus の設定例:


  mgmt {
usage_report エンドポイント = nms.local 間隔 = 30 分;
リゾルバ 3.X.X.X;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers DEFAULT;
ssl_certificate /home/ubuntu/agent.crt;
ssl_certificate_key /home/ubuntu/agent.key;

ssl_trusted_certificate /home/ubuntu/ca.pem;
ssl_verify オン;
ssl_verify_depth 2;
}

NGINX 設定を保存し、NGINX Plus をリロードします。

sudo nginx -s リロード

NGINXインスタンスマネージャーを構成する

/etc/nginx/conf.d/nms-HTTP.conf のサーバー ブロック内に SSL 証明書を追加します。 ここをクリック NGINX Management Suite サーバーで SSL 証明書を構成する方法を学習します。


server {
listen 443 ssl http2;
root /var/www/nms;
server_name _;
ssl_protocols TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
ssl_certificate /etc/nms/certs/server.crt;
ssl_certificate_key /etc/nms/certs/server.key;
ssl_client_certificate /etc/nms/certs/ca.pem;
ssl_verify_client on;
}

NGINX Plus の使用状況を表示するには、ブラウザで NGINX Management Suite にログインし、NGINX Instance Manager モジュールに移動します。 次に、ページの左下にある NGINX Plus タブを選択します。

NGINX Plusインベントリインスタンスの推移

ステップバイステップの手順を説明したビデオチュートリアルをご覧ください:

エラーログメッセージ

NGINX インスタンス マネージャーで使用状況データを表示できない場合に、NGINX Plus インスタンスでトラブルシューティングするエラー メッセージのリストを次に示します。 エラー メッセージの例をいくつか示します。

  • 動的リゾルバの障害: DNS リゾルバの解決に失敗しました。
    2024/04/02 04:02:10 [エラー] 574079#574079: recv() が失敗しました (111: 接続が拒否されました) 解決中に、リゾルバ: 3.17.128.165:53
    2024/04/02 04:02:35 [警告] 574079#574079: 使用状況レポート: nginx-mgmt.locals を解決できませんでした (110: 操作がタイムアウトしました)
    
  • システム リゾルバの障害: NGINXインスタンスマネージャのホスト名を解決できない
    2024/04/02 13:20:44 [情報] 103888#0: 使用状況レポート: リゾルバ「nginx-mgmt.local」にホストが見つかりません
    
  • SSL 接続失敗: SSL 証明書を検証できないか、期限切れです。
    2024/04/02 13:13:50 [警告] 103877#0: 使用状況レポート: ピア SSL 接続に失敗しました
    
  • ピア通信障害: NGINX インスタンス マネージャーに到達できません。
    2024/04/02 13:15:25 [警告] 103877#0: 使用状況レポート: ピア接続に失敗しました (-1: 不明なエラー)
    2024/04/02 13:23:32 [警告] 103877#0: 使用状況レポート: 失敗 (サーバーが返した内容: 404 見つかりません)
    2024/04/02 19:53:45 [警告] 4648#4648: 使用状況レポート: 接続がタイムアウトしました
    

NGINXエージェントをインストールする

まだ R31 に移行していない場合や、すぐに移行する予定がない場合は、NGINX Plus インスタンスを NGINX インスタンス マネージャーに報告できます。 これを実現するには、環境に NGINX エージェントをインストールします。 インストールが完了したら、インスタンス マネージャーとの接続を確立し、使用状況データの送信を開始できます。 NGINX エージェントをインストールするには、このリンクに記載されている手順に従ってください。

NGINX Plus の使用状況を表示するには、ブラウザで NGINX Management Suite にログインし、NGINX Instance Manager モジュールに移動します。 次に、ページの左下にある NGINX Plus タブを選択します。

NGINX Plusインベントリインスタンスの推移

ステップバイステップの手順を説明したビデオチュートリアルをご覧ください:

NGINX PlusのHTTPヘルスチェックを構成する

NGINX エージェントをインストールしたり、R31 にアップグレードする予定がない場合でも、NGINX Plus インスタンスをレポートできます。 これは、NGINX 構成ファイルを通じて HTTP ヘルス チェックを構成することで実現できます。 ただし、このオプションを利用するには、NGINX Plus 構成ファイルを手動で更新する必要があります。 この方法は、特に環境に複数のインスタンスがある場合には、時間がかかり、面倒になる可能性があります。 したがって、このオプションを選択する前にこれらの要素を考慮することをお勧めします。

NGINX Plusを構成する

  1. NGINX Plus 設定を開き、http {} ブロック内にコードを挿入します。
    
       keyval_zone zone=uuid:32K state=/var/lib/nginx/state/instance_uuid.json; keyval 1 $nginx_uuid zone=uuid; アップストリームレシーバー { zone レシーバー 64k; # 必須: NMS_FQDN を NGINX Management Suite の IP アドレスまたはホスト名で更新します。# ホスト名で設定する場合は、以下のリゾルバ ディレクティブのコメントを解除し、ホスト名を解決できる DNS サーバーを定義してください。server NMS_FQDN:443; # オプション: 上記で定義したホスト名を解決できる DNS サーバーの IP アドレスで DNS_UP を更新します。#resolver DNS_IP; } map CERT $repo_crt { # オプション: クライアント証明書の場所default /home/ubuntu/agent.crt; } map KEY $repo_key { # オプション: クライアント証明書の秘密鍵の場所default /home/ubuntu/agent.key; } server { location @ngx_usage_https { # オプション: ここでスキーム (http|https) を設定します proxy_pass https://receiver; # 必須: このインスタンスで NGINX APP PROTECT (NAP) を使用する場合は、次の行で nap=active を設定します。 proxy_set_header Nginx-Usage "Version=$nginx_version;Hostname=$hostname;uuid=$nginx_uuid; nap=active "; health_check uri=/api/nginx-usage interval=1800s; # DO NOT MODIFY proxy_ssl_certificate $repo_crt; # DO NOT MODIFY proxy_ssl_certificate_key $repo_key; # DO NOT MODIFY } location @self { health_check uri=/_uuid interval=1d; proxy_pass http://self; } location = /_uuid { if ($nginx_uuid !~ .) { set $nginx_uuid $request_id; } return 204; } listen unix:/tmp/ngx_usage.sock; } アップストリーム self { zone self 64k; server unix:/tmp/ngx_usage.sock; }
    
  2. NMS FQDN をインスタンス マネージャーのホスト名または IP アドレスで更新します。 プライベート DNS を使用している場合は、コメントを解除して DNS IP アドレスを更新します。
  3. NGINX インスタンス マネージャーへの HTTP トラフィックのセキュリティを確保するには、マップ CERT ブロックとマップ KEY ブロックで SSL 証明書とキーの場所を指定することが重要です。

変更を保存し、NGINX をリロードします。

sudo nginx -s リロード

NGINX Plus の使用状況を表示するには、ブラウザで NGINX Management Suite にログインし、NGINX Instance Manager モジュールに移動します。 次に、ページの左下にある NGINX Plus タブを選択します。

NGINX Plusインベントリインスタンスの推移

ステップバイステップの手順を説明したビデオチュートリアルをご覧ください:

結論

私たちは、お客様のニーズに応え、使用状況レポートを簡単に合理化および自動化できるようお手伝いすることに全力を尽くします。 そのため、レポートの柔軟性を高めるために複数のオプションを提供しています。 最近リリースされた NGINX Plus R31 アップデートにより、NGINX Plus インスタンスの月次使用状況データをレポートすることがさらに簡単かつ効率的になり、パフォーマンスに影響を与えることなく、F5 の要件への準拠が保証されます。


「このブログ投稿には、入手できなくなった製品やサポートされなくなった製品が参照されている場合があります。 利用可能な F5 NGINX 製品およびソリューションに関する最新情報については、 NGINX 製品ファミリーをご覧ください。 NGINX は現在 F5 の一部です。 以前の NGINX.com リンクはすべて、F5.com の同様の NGINX コンテンツにリダイレクトされます。"