多数のユーザーがいる本番環境サービスを担当している場合は、自分よりも先に顧客が問題を発見してしまうことの苦痛を理解しているはずです。 Akita では、この問題を解決したいと考えています。そのために、新しいNGINX Plus 認定モジュールを構築しました。
このブログでは、ログからズームアウトする理由、システム全体の問題をすばやく見つけて修正する方法、新しい Akita モジュールによってこの機能が NGINX ユーザーに簡単に提供される方法など、モジュールの重要な側面について説明します。
今日、数え切れないほど多くの開発者が、顧客が事実上監視システムになっているという残念な状況に陥っています。
ソフトウェアチームがエラーを記録していないわけではありません。 たとえば、NGINX をリバース プロキシとして使用すると、タイムスタンプ、リクエストの長さと処理時間、応答ステータス コードなど、さまざまな情報が NGINX ログに記録されます。 時間と忍耐力を持って探せば、情報は見つかります。
しかし、さまざまなリクエストと応答があるシステムでは、ログの海に迷い込んでしまうのは簡単です。 ログ上にダッシュボードや他の種類のツールを積極的に設定していない限り、潜在的な問題とその発生場所を特定しようとして、何千、あるいは何百万ものログ行を調べることになるかもしれません。 しかし、適切なダッシュボードと監視方法を設定するには、数週間、数か月、さらには四半期もかかる場合があります。 また、コードと連動して更新する必要が生じることもよくあります。
Akita では、ログから API エンドポイントまでズームアウトすることが非常に重要であると考えています。 これにより、ソフトウェア チームは、問題を実際に特定するために必要な粒度を維持しながら、問題とホット スポットの概要をすばやく確認できるようになります。 私たちは、コードの変更やダッシュボードの構築を必要とせず、レイテンシ メトリックとエラーを自動的に監視する完全なドロップイン メトリック ソリューションを使用して、監視における情報過多を解決しています。 当社のソリューションは、API トラフィックを受動的に監視し、自動的に分析してエンドポイントごとの監視とアラートを提供します。 何よりも素晴らしいのは: ユーザーはサインアップ後 15 分以内に開始できます。
NGINX ユーザーが利用できるようになった Akita モジュールをご紹介できることを嬉しく思います。 NGINX を Webapplicationサーバー、リバース プロキシ、または API ゲートウェイとして使用している場合は、API トラフィックを Akita に送信して分析できるようになりました。 無料の Akita アカウントにサインアップし、 Akita モジュールとエージェントをインストールして、NGINX 構成ファイルに小さな変更を加えます。
数分以内に、Akita コンソールに移動して、API エンドポイント、動作が遅い部分、エラーが発生している部分を確認できるようになります。
Akita の NGINX Plus 認定モジュールは、既存の NGINX セットアップの拡張機能として、NGINX ユーザーに Akita の多くの利点を提供します。 Akita は、HTTP リクエストからトラフィックをキャプチャし、そのレイテンシとエラーを測定すると同時に、事前に構築されたダッシュボードを使用して本番環境で何が起こっているかを表示します。
モジュールの機能とその役割について詳しく見ていきましょう。 まず、リクエストは NGINX によって複数の「フェーズ」で処理されます。ネットワークからのリクエストの読み取りから始まり、書き換えとアクセス制御チェックを経て、応答とログ エントリの生成で終了します。 Akita の NGINX Plus 認定モジュールは、このプロセスの後半 (ヘッダー書き換えなどの機能の後のコンテンツ前フェーズ) に挿入されるため、applicationが受信するものに最も近い形式でリクエストを確認できます。 Akita は、NGINX 構成内のサーバーと場所に基づいて、各受信リクエストをチェックし、監視対象のフラグが付けられているかどうかを確認します。
注記: 他の NGINX 機能やモジュールと同様に、 Web サービスの一部に対してのみ Akita を有効にしたり、NGINX が提供するすべてのサービスに対してデフォルトで有効にしたりすることができます。
次のフェーズでは、モジュールはリクエスト本文を記録し、リクエストが完全に受信されるとすぐにそれを Akita エージェントに送信します。 この動作は ngx_http_mirror モジュールに似ており、同じデータがapplicationと Akita エージェントの両方に並行して送信されます。
NGINX またはアップストリーム サーバーが応答を準備している場合、Akita モジュールは、クライアントにストリームで返すときにこの応答 (最大 1 MB) を記録します。 このバッファリングによって応答が遅延されることはありません。バッファリングは、応答本体の各チャンクが利用可能になるとそれを処理できる NGINX「コンテンツ フィルター」で行われます。
サーバーの応答時間がわかり、応答が成功すると、この応答は Akita エージェントにミラーリングされます。 エージェントはリクエストとレスポンスを照合し、リクエストとレスポンスの本文の内容を解析しようとします。 このデータは、分析のために秋田に送信される前に、エージェントによってローカルで難読化されます。 つまり、Akita は API トラフィックの構造を認識しますが、ユーザーによって送信されたり、ユーザーに送信されたりする特定の値は認識しません。
Akita の NGINX Plus 認定モジュールは、applicationトラフィックのトレースを基にエンドポイントを自動的に推測し、API の参照およびダウンロード可能なモデルを構築して、レイテンシとエラー情報を自動的に表示します。 これにより、エンドポイントごとのエラー率、特定のエンドポイントの高遅延、さらには予想外に大量の通話が発生した場合にアラートを発することができます。
各エンドポイントについて、Akita の NGINX Plus 認定モジュールを使用すると、次のことを確認できます。
Akita の NGINX Plus 認定モジュールの設定の詳細については、こちらをご覧ください。
Akitaは現在オープンベータ版です。 ベータ版にサインアップすると、30 分以内に結果を得ることができます。
「このブログ投稿には、入手できなくなった製品やサポートされなくなった製品が参照されている場合があります。 利用可能な F5 NGINX 製品およびソリューションに関する最新情報については、 NGINX 製品ファミリーをご覧ください。 NGINX は現在 F5 の一部です。 以前の NGINX.com リンクはすべて、F5.com の同様の NGINX コンテンツにリダイレクトされます。"