NGINX (オープンソース) および NGINX Plus (商用版) の監視

現在のNGINX監視機能を拡張し、NGINX Plus Webサーバーが提供する追加機能をサポートします。

Site24x7プラグインは、オープンソースNGINXとその商用版NGINX Plusの両方をサポートしています。既存のNGINXコミュニティバージョンプラグインを拡張した、NGINX Plusのエンタープライズモデルには、高度なライブアクティビティーモニタリング機能や、その他多くの機能が搭載されています。これら機能を使用して、NGINXおよびNGINX Plus Webサーバーを監視すれば、問題の発生防止にも繋がります。

このページでは、NGINX Webサーバーのパフォーマンス、可用性、使用統計を詳細に可視化するための、NGINXおよびNGINX Plusのプラグインと監視メトリクスの設定方法について説明します。

NGINXパフォーマンス監視メトリクス:

NGINXは、HTTPおよびリバースプロキシサーバーであり、フリーなオープンソース製品です。NGINX監視は、NGINX内だけでなく、Webインフラストラクチャー内のあらゆる場所で発生する問題に対応します。サポートされているメトリクスは以下の通りです:

Waiting

現時点でアクティブなリクエストがない場合、アクティブな接続またはキープアライブ接続は、Waitingステータスになります。

Reading

リクエストを受信すると、接続はWaitingステータスから移行し、リクエストはReadingとしてカウントされます。このステータスでは、NGINXサーバーは、クライアントリクエストのヘッダーを読み取ります。

Connections opened

1秒あたりに開いた接続の割合です。connection_openedの監視は、リバースプロキシまたはロードバランサーがリクエストを最適に処理しているかを確認するためにも重要です。

NGINX metric

Requests per second

1秒あたりに受信したリクエスト数です。request_per_sの監視では、着信Webトラフィックの急激な増減をアラートで通知できます。

Connections dropped

connection_droppedメトリクスは、削除された接続数です。通常、接続はリソース制限に達すると切断されます。

Writing

リクエストが読み取られると、Writingとしてカウントされ、クライアントに応答が返されるまでリクエストはWritingステータスを維持します。従って、NGINXが上流システムからの応答を待ち、その応答に対しての動作中は、リクエストはWritingステータスとなります。

NGINX Plusパフォーマンス監視メトリクス:

NGINXの商用版であるNGINX Plusは、追加のメトリクスとともに基本的なオープンソース機能を報告します。エンタープライズ版には、カスタムページとアプリケーションのステータスチェックに加えて、高度なアクティビティ監視と負荷分散が含まれています。NGINX Plusで提供されるメトリクスは、以下の通りです:

Accepted and Active connections

connections_acceptedメトリクスは、NGINXが試行したクライアント接続数を表示します。connections_active(現在アクティブな接続)メトリクスは、オープンソースNGINXで結合したReadingおよびWriting状態と同様です。

Handshakes and Failed Handshakes

NGINXとNGINX Plusの両方で暗号化されたSSL接続を終了するため、内部サーバーの負荷と証明書のコストが削減されます。handshakesおよびhandshakes_failedメトリクスは、WebサーバーのSSL終了を把握し、ハードウェアまたは仮想マシンの容量を測定する際に役立ちます。

nginxplus metric

Responses 1xx, 2xx, 3xx, 4xx, 5xx

HTTPステータスコードタイプが1xx、2xx、3xx、4xx、および5xxである応答数を表示します。

Reused sessions

session_reusesメトリクスは、複数のSSL接続間で再利用されるSSLセッション資格証明の合計数を表示します。

Requests/Responses by zone backend servers

再利用されたセッション合計数(session_reuses)と、ゾーンバックエンドサーバーが受信したリクエスト合計数(requests by the zone backend servers)から、NGINXサーバーとゾーン間でトラフィックがどのように分散されるかを把握できます。

Dropped and Idle connections

作業者が特定のリクエスト接続の取得に失敗した場合、そのリクエストはconnections_droppedにリスト化されます。connections_idleメトリクスは、NGINXのWaiting状態(現在のリクエスト数が0のクライアント接続)と同様です。

手順

  • Site24x7アカウントにログインします。アカウントをお持ちでない場合は、 こちら からサインアップへお進みください。
  • Site24x7 Linuxエージェント の最新バージョンをダウンロードおよびインストールします。
  • NGINX または NGINX Plusプラグインをインストールします。
  • エージェントはNGINXまたはNGINX Plusプラグインを実行し、Site24x7サーバーにデータをプッシュします。

前提条件:

  • NGINXまたはNGINX Plusサーバーがインストールされており、稼働していることを確認します。
  • configセクションのSTATUS_URLが正しく入力されていることを確認します。

NGINX および NGINX Plus プラグインのインストール:

sudo mkdir nginx
OR
sudo mkdir nginxplus
sudo wget https://raw.githubusercontent.com/site24x7/plugins/master/nginx/nginx.py
OR
sudo wget https://raw.githubusercontent.com/site24x7/plugins/master/nginxplus/nginxplus.py
sudo /etc/init.d/site24x7monagent restart
  • Site24x7 Linux エージェントのプラグインディレクトリー - /opt/site24x7/monagent/plugins/
  • GitHubリポジトリーから nginx.py または nginxplus.py をダウンロードし、[nginx]または[nginxplus]ディレクトリーに配置します。
  • プラグインスクリプトで指定されているデフォルトのPythonパスは、[#!/usr/bin/python]です。代替えのpythonパスを作成する場合は、shebang(シバン)文字「#!」が前に付いた既存パスを置き換えます。
  • デフォルトで、プラグインは「localhost」に設定されているNGINXまたはNGINX Plusインスタンスを監視します。監視の設定変更をするには、NGINX_STATUS_URLの値を変更します。
  • サーバーエージェントは、Site24x7 Webクライアントの[プラグイン]タブで、NGINXまたはNGINX Plusサーバーのパフォーマンスに関する統計情報を報告します。プラグインがSite24x7 Webクライアントリストに無い場合は、[sudo /etc/init.d/site24x7monagent restart]でエージェントを再起動します。

メトリクスを追加で監視:

  • メトリクスを追加で監視するには、[nginx.py]または[nginxplus.py]ファイルを編集し、監視が必要なメトリクスを新しく追加します。
  • 新しく追加されたメトリクスを表示するには、[nginx.py]または[nginxplus.py]ファイルのプラグインバージョン値をインクリメントします(たとえば、デフォルトのプラグインのバージョンをPLUGIN_VERSION=「1」からPLUGIN_VERSION=「2」に変更します)。

関連プラグイン:

  • ActiveMQプラグイン - Apache ActiveMQのパフォーマンスメトリクスを監視します。
  • Gearmanプラグイン - Gearmanジョブサーバーのパフォーマンスメトリクスを監視します。
  • Tomcatプラグイン - Tomcatサーバーのパフォーマンスを分析します。
  • Twilioプラグイン - Twilioプラットフォームの断続的な機能を確保します。
  • Out-of-the-boxプラグイン - 豊富な連携リストでアプリケーション全体を監視します。
  • カスタムプラグインの作成 – カスタム Linux および Windows プラグインを作成し、カスタム属性を監視します。