ビジネスの成長に伴い、システムはますます複雑になる可能性があります。複雑なシステムでは、リクエストを正確に追跡することが非常に重要であり、同時に困難でもあります。

Embeded image

OpenResty Edge は、リクエストに一意の ID を付与することで、リクエストの追跡を容易にします。これが本日のトピックです:リクエスト ID。

Embeded image

リクエスト ID のグローバル設定

OpenResty Edge の管理者用 Web コンソールにアクセスしましょう。これは私たちのコンソールのサンプルデプロイメントです。各ユーザーは独自のローカルデプロイメントを持っています。

スクリーンショット

グローバル設定ページに移動します。ここでは、すべてのリクエストヘッダーにリクエスト ID を追加するかどうかを設定できます。

スクリーンショット

スクリーンショット

この設定項目はデフォルトでオンになっており、各リクエストのプロキシヘッダーとレスポンスボディヘッダーに Req-ID フィールドが含まれることを意味します。

では、openresty.org にリクエストを送信して、この ID がどのように使用されるかを見てみましょう。

スクリーンショット

リクエストヘッダーに「Req-ID」フィールドがあることがわかります。

Screenshot

リクエスト ID デコーダー

次に、ツールページに移動します。

スクリーンショット

リクエスト ID デコーダーページに進みます。

Screenshot

先ほど確認したリクエスト ID を入力します。

Screenshot

このボタンをクリックしてデコードします。

Screenshot

下に、そのリクエストに関連する詳細情報が表示されていることがわかります。

アプリケーションのドメイン名、

Screenshot

ゲートウェイパーティション、

スクリーンショット

ゲートウェイクラスター、

スクリーンショット

そしてゲートウェイサーバーなどです。

Screenshot

ここに 2 つのボタンがあります。openresty.org アプリケーションのエラーログページと WAF ログページでこのリクエスト ID を検索できます。

Screenshot

では、その方法をデモンストレーションしましょう。

「Search in Error Logs」ボタンをクリックします。

Screenshot

これによりエラーログページに移動します。

Screenshot

ログが表示されていないのは、使用したリクエスト ID が正常なリクエストからのものだからです。このリクエストはエラーログを生成していません。

Screenshot

リクエスト ID のフィルターをクリアします。

Screenshot

すべてのエラーログの詳細が表示されます。

そのうちの 1 つのリクエスト ID をコピーします。

Screenshot

それを検索ボックスに貼り付けます。

Screenshot

エラーログリストがフィルタリングされ、選択したリクエスト ID に一致するエラーログのみが表示されていることがわかります。

Screenshot

これがエラーログページです。同様に、WAF によってブロックされた疑わしいリクエストのページでも、すべてのリクエストにリクエスト ID 情報が含まれています。

WAF のログページに移動します。

Screenshot

WAF によってブロックされたすべてのリクエストと、それぞれのリクエスト ID が表示されます。

ここでもリクエスト ID を使用してリクエストをフィルタリングできます。

Screenshot

また、リスト内で直接リクエスト ID をデコードすることもできます。

リクエスト ID の 1 つをクリックします。

Screenshot

Screenshot

このポップアップのリンクをクリックすると、対応するページに移動します。例えば、ゲートウェイサーバーのリンクをクリックしてみましょう。ゲートウェイサーバーのページに移動しました。

スクリーンショット

この時点でもリクエスト情報のポップアップは開いたままです。他のページに移動したい場合があるかもしれないからです。

閉じたい場合は、閉じるボタンをクリックするだけです。

Screenshot

OpenResty Edge について

OpenResty Edge は、マイクロサービスと分散トラフィックアーキテクチャ向けに設計された多機能ゲートウェイソフトウェアで、当社が独自に開発しました。トラフィック管理、プライベート CDN 構築、API ゲートウェイ、セキュリティ保護などの機能を統合し、現代のアプリケーションの構築、管理、保護を容易にします。OpenResty Edge は業界をリードする性能と拡張性を持ち、高並発・高負荷シナリオの厳しい要求を満たすことができます。K8s などのコンテナアプリケーショントラフィックのスケジューリングをサポートし、大量のドメイン名を管理できるため、大規模ウェブサイトや複雑なアプリケーションのニーズを容易に満たすことができます。

著者について

章亦春(Zhang Yichun)は、オープンソースの OpenResty® プロジェクトの創始者であり、OpenResty Inc. の CEO および創業者です。

章亦春(GitHub ID: agentzh)は中国江蘇省生まれで、現在は米国ベイエリアに在住しております。彼は中国における初期のオープンソース技術と文化の提唱者およびリーダーの一人であり、Cloudflare、Yahoo!、Alibaba など、国際的に有名なハイテク企業に勤務した経験があります。「エッジコンピューティング」、「動的トレーシング」、「機械プログラミング」 の先駆者であり、22 年以上のプログラミング経験と 16 年以上のオープンソース経験を持っております。世界中で 4000 万以上のドメイン名を持つユーザーを抱えるオープンソースプロジェクトのリーダーとして、彼は OpenResty® オープンソースプロジェクトをベースに、米国シリコンバレーの中心部にハイテク企業 OpenResty Inc. を設立いたしました。同社の主力製品である OpenResty XRay動的トレーシング技術を利用した非侵襲的な障害分析および排除ツール)と OpenResty Edge(マイクロサービスおよび分散トラフィックに最適化された多機能ゲートウェイソフトウェア)は、世界中の多くの上場企業および大企業から高い評価を得ております。OpenResty 以外にも、章亦春は Linux カーネル、Nginx、LuaJITGDBSystemTapLLVM、Perl など、複数のオープンソースプロジェクトに累計 100 万行以上のコードを寄与し、60 以上のオープンソースソフトウェアライブラリを執筆しております。

翻訳

英文版の原文と日本語訳版(本文)をご用意しております。読者の皆様による他の言語への翻訳版も歓迎いたします。全文翻訳で省略がなければ、採用を検討させていただきます。心より感謝申し上げます!