近年、システムの複雑化に伴い、オブザーバビリティの重要性がますます高まっています。本記事では、NGINXにおいてのオブザーバビリティの実現方法について解説し、NGINX OSS版とPlusの違いや、それぞれのオブザーバビリティ機能の活用方法を紹介します。また、NGINXにおけるOpenTelemetryのサポートについても紹介します。
NGINX OSSは、アクセスログ、エラーログ、ステータスモジュール(Stub Status)といった基本的なオブザーバビリティを提供しております。一方、NGINX Plusはより高度なオブザーバビリティ、100を超える拡張メトリクスが備わっており、これにより大規模なシステムや高可用性が求められる環境に適しています。
NGINX OSSおよびPlusのメトリクス詳細に関しては以下をご参照ください。
このメトリクスを用い、NGINX Plusのみの機能であるLive Activity Monitoringが使用できます。
また、PrometheusとGrafanaを用いてNGINX Plus を可視することも可能です。具体的な方法に関しては以下のテクニカルブログをご参照ください。https://www.f5.com/ja_jp/company/blog/nginx/how-to-visualize-nginx-plus-with-prometheus-and-grafana
OpenTelemetry(OTel)とは、分散システム(マイクロサービス アーキテクチャなど)からテレメトリデータの収集、処理、エクスポートを行うためのベンダーニュートラルな標準を提供するオープン ソース プロジェクトになります。
既存のOpenTelemetry NGINX コミュニティ モジュールを使用してNGINX サーバーを計測すると、メトリクス、トレース、ログを収集し、サーバーの健全性をより適切に把握できるようになります。これにより、問題のトラブルシューティングが可能になり、Web アプリケーションを最適化してパフォーマンスを向上させることができます。 ただし、この既存のコミュニティ モジュールは、トレースに必要なパフォーマンス オーバーヘッドにより、サーバーの応答時間を遅くする可能性があります。
そのため、NGINX OSS 1.23.4およびPlus R29以降でネイティブ OpenTelemetryモジュールngx_otel_moduleが利用可能になりました。これにより、パフォーマンスの向上だけでなく、テレメトリコレクションの設定と構成をNGINX設定ファイルで直接行うことができるため、簡単なプロビジョニングが可能になります。
NGINX PlusでOpenTelemetryを設定し、Jaegerツールを使用してトレースを収集および可視化する方法は以下のテクニカルブログを参照ください。
NGINX Agentは、NGINX OSSまたはNGINX Plus インスタンスと一緒にデプロイできる軽量デーモンで、NGINX OSSでは提供されていない多くの機能を有効にします。NGINX OSSおよびPlus インスタンスに対するより広範な可視性を提供します。
1. NGINXインスタンスのレポートと監視
2. リモートNGINX構成管理
3. 管理プレーンの統合
NGINXインスタンスのレポートと監視においてはNGINX Agentは、オペレーティングシステムのメトリクスとともに、NGINX アクセスログおよびエラーログ、NGINX Plusの場合、APIからメトリクス収集、NGINX インスタンスで発生する主要なイベントセットを収集し、管理プレーンの統合による運用、管理、監視の実現できます。NGINX Agentは開発チームとプラットフォーム運用チームにNGINX インスタンスの構成、監視、管理のためのきめ細かな制御と追加機能を提供することで、極めて重要な役割を果たします。詳細はNGINX Agentによる可観測性とリモート構成のテクニカルブログをご参照ください。
https://www.f5.com/ja_jp/company/blog/nginx/observability-and-remote-configuration-nginx-agent
NGINXにおけるオブザーバビリティは様々な方法で実現可能です。特にNGINX Plusは100を超える拡張メトリクスが備わっており、これにより大規模なシステムや高可用性が求められる環境に適しています。様々なオブザーバビリティを活用し、NGINXの安全な運用の実現するためのご参考となれば幸いです。
関連情報
F5ネットワークスジャパン合同会社が提供する製品の詳細は下記ページをご覧ください。