NGINXの監視

NGINX | 2018年1月08日

Webサイトの運用を維持するうえで、NGINXの監視ツールを設定することは重要です。NGINXを適切に監視することで、基盤となるアプリケーションのパフォーマンスに関する有用な情報を数多く把握できます。この用途に適した監視システムは多数ありますが、まずはNGINXでメトリクス収集を有効にする必要があります。

Using the stub_statusモジュールの使用

NGINX Open Sourceには、NGINXの稼働状況に関するいくつかの重要なメトリクスを公開する「ngx_http_stub_status_module」(略称「stub_status」)というモジュールがあります。

NGINXビルドにstub_statusモジュールが含まれているか確認するには、nginx -Vを実行します:

$ nginx -V 2>&1 | grep --color -- --with-http_stub_status_module

F5が提供するすべてのNGINXビルドには、すべてのstub_statusモジュールがサポート対象プラットフォームに含まれています。

NGINXビルドにstub_statusモジュールが含まれていない場合は、ソースから再ビルドし、--with-http_stub_status_moduleパラメーターをconfigureスクリプトに指定する必要があります。

次に、NGINX構成のlocationブロックにstub_statusディレクティブを含めて、モジュールを有効にします。このブロックは、既存のserver構成に追加できます。または、次のように、stub_statusディレクティブ専用のlocationを1つ含む独立したserverブロックを追加します。

server {
    listen 127.0.0.1:80;
    server_name 127.0.0.1;

    location /nginx_status {
        stub_status;
    }
}

適切な「server」ブロックが、stub_statusディレクティブのメイン設定ファイル(nginx.conf)以外に記述されている場合があります。このファイルに適切なブロックが見つからない場合は、通常、インクルードされている追加の設定ファイルをnginx.conf内で探してください。

また、認証済みユーザーのみがメトリクスにアクセスできるようにすることを推奨します。たとえば、allowおよびdenyディレクティブをlocationブロックまたはserverブロックに含めます。

After the stub_statusモジュールを設定したら、NGINXの設定を再読み込みしてください(たとえば、service nginx reloadコマンドを使用します)。NGINXの制御シグナルについて詳しくは、こちらをご覧ください。

To display the stub_statusメトリクスを表示するには、curlクエリを実行します。上記の構成では、次のコマンドを使用できます。

$ curl http://127.0.0.1/nginx_statusActive connections: 2
server accepts handled requests
 841845 841845 1631067
Reading: 0 Writing: 1 Waiting: 1

これで動作しない場合は、/nginx_statusへのリクエストのルーティング先を確認してください。多くの場合、別のserverブロックが原因で、stub_statusメトリクスにアクセスできないことがあります。インスタンス全体のNGINXメトリクスについて詳しくは、リファレンスドキュメントを参照してください。

NGINXでstub_statusモジュールが有効化され、正常に動作していることを確認したら、任意の監視システムのインストールと設定に進むことができます。

ログファイルとsyslog

NGINXの「アクセスログ」と「エラーログ」には、メトリクスの収集に適した有用な情報が数多く含まれています。NGINXの「変数」を使用すると、「アクセスログ形式」を全面的にカスタマイズできます。一部の監視ツールでは、NGINXログファイルをメトリクスの収集に活用できます。

さまざまなパフォーマンス要件やセキュリティ要件に対応するため、NGINXの「syslog」機能の使用を検討してください。ログファイルはディスクに書き込まれますが、syslogを使用すると、NGINXからネットワークプロトコル経由でログデータを送信できます。たとえば、専用のLinuxシステムを構築し、複数のNGINXインスタンスからすべてのログデータを収集できます。

ロギングの詳細については、「NGINX Plus Admin Guide」を参照してください。

AmplifyによるNGINXの監視

NGINXの監視には、専用ツールをご用意しています。名称は「NGINX Amplify」で、最大5台のサーバーを無料で監視できるSaaSツールです(さらに多くのサーバーを監視する場合は、サブスクリプションをご利用いただけます)。

NGINX Amplifyは簡単に使い始めることができます。10分以内に、NGINXの主要なメトリクスをすべて可視化する標準搭載のグラフを利用できます。NGINX Amplifyは、stub_statusとアクセスログのメトリクスを自動的に使用し、さまざまなOS情報も収集できます。

NGINX Amplifyを使用すると、NGINXのパフォーマンスを可視化し、OS、PHP‑FPM、Dockerコンテナなどを監視できます。Amplify独自の機能として、NGINX構成用の静的アナライザーがあり、構成のセキュリティと効率を高めるための推奨事項を提示します。

NGINX Amplifyの詳細はこちらをご覧ください。また、無料でお試しいただけます。

NGINXを監視するAmplify画面
NGINX Amplifyは主要な監視ツールです

NGINX Plusの追加APIモジュール

NGINX Plusでは、専用のAPIモジュールを使用して、パフォーマンス指標をより効率的に取得できます。

APIモジュールでは、主にロードバランシングと仮想サーバーの統計情報に重点を置いた、詳細なメトリクス一式を提供します。たとえば、すべてのHTTPステータスコード(1xx、2xx、3xx、4xx、5xx)の内訳がserverブロックごとに表示されます。HTTPとTCP/UDPの両方のアップストリームサーバーについて、ヘルスステータス情報を確認できます。キャッシュメトリクスには、各キャッシュゾーンのヒット数とミス数が含まれます。

APIでは、拡張された一連のメトリクスを収集できるほか、構成の再読み込みやNGINX Plusの再起動を行わずに、HTTPおよびTCP/UDPのアップストリームサーバーグループを再構成し、キーと値の変数を管理できます。

NGINX Plusには、追加のメトリクスを活用する統合ダッシュボードも搭載されています。追加のメトリクスはNGINX Amplifyでも利用できます。

その他の監視ソリューション

ほかにも、NGINXのメトリクスを収集して表示できる監視製品が多数あります。以下のリンクでは、一般的な統合シナリオについて説明します。


共有
タグ: F5 NGINX, Tech, 2018

著者について

関連するブログ記事

チュートリアル:NGINXを使用してアプリケーション向けにOpenTelemetryを構成する
NGINX | 2024/01/18

チュートリアル:NGINXを使用してアプリケーション向けにOpenTelemetryを構成する

OpenTelemetryを使用してNGINXサーバーの状態と健全性をより明確に把握することで、問題のトラブルシューティングを行い、Webアプリケーションのパフォーマンスを向上できます。

AkitaのNGINX Plus認定モジュールでAPIエンドポイントの問題を特定・修正
NGINX | 2023/05/31

AkitaのNGINX Plus認定モジュールでAPIエンドポイントの問題を特定・修正

Akita SoftwareのAPIオブザーバビリティ向け新しいNGINX Plus Certified Moduleを活用して、APIエンドポイントの問題をより迅速に特定し、修正できます。

JavaプロジェクトをスキャフォールディングしてKubernetesネイティブアプリを構築する方法
NGINX | 2023/02/09

JavaプロジェクトをスキャフォールディングしてKubernetesネイティブアプリを構築する方法

Red HatのシニアプリンシパルデベロッパーアドボケイトであるDaniel Oh氏が、Javaプロジェクトをゼロから構築するためのひな形を作成し、Kubernetesネイティブアプリケーションとしてビルドする方法を解説します。

F5 NGINXaaS for Azureのご紹介:Microsoft Azureでネイティブに利用できるSaaS型ロードバランシング
NGINX | 2022/05/24

F5 NGINXaaS for Azureのご紹介:Microsoft Azureでネイティブに利用できるSaaS型ロードバランシング

NGINXaaS for Azureは、NGINX PlusをAzureネイティブのSaaSとして利用できるサービスです。NGINXの設定を容易にリフト&シフトできるため、クラウド導入とモダンアプリの展開を加速できます。

SELinuxでNGINXおよびNGINX Plusを使用する
NGINX | 2018/08/17

SELinuxでNGINXおよびNGINX Plusを使用する

Red Hat Enterprise Linux(RHEL)および関連ディストリビューションでSecurity-Enhanced Linux(SELinux)を有効にすると、デフォルト設定によりNGINXとNGINX Plusの一部の操作が制限されます。この記事では、すべての機能を利用できるようにSELinuxの設定を変更する方法について説明します。

NGINX PlusによるAWS Auto Scalingグループの負荷分散
NGINX | 2017/03/06

NGINX PlusによるAWS Auto Scalingグループの負荷分散

新しいnginx-asg-sync統合ソフトウェアにより、NGINX PlusはAWS Auto Scalingグループの負荷を直接分散できるため、クラウドでの負荷分散がさらに柔軟になります