本日は、OpenResty Edge においてアプリケーションのエラーログとグローバルエラーログを確認する方法をご紹介いたします。

埋め込み画像

サンプルアプリケーションのエラーログ

いつものように、OpenResty Edge の Admin Web コンソールにアクセスしましょう。これは当社のコンソールのサンプルデプロイメントです。各ユーザーには独自のローカルデプロイメントがございます。

スクリーンショット

引き続き、test-edge.com ドメインのサンプルアプリケーションを使用いたします。

スクリーンショット

このアプリケーションに移動いたします。

スクリーンショット

ここをクリックして、このアプリケーションのエラーログをご確認ください。

Screenshot

ご覧のとおり、すでにいくつかのエラーログが記録されています。このページにはエラーログに関する重要な情報が表示されています。

スクリーンショット

例えば、リクエスト ID、エラーログメッセージ、ホスト名、リクエストボディ、クライアント IP アドレスなどです。

ここで、アプリケーションに変更を加えてみましょう。変更後に test-edge.com ドメインにアクセスすると、新しいエラーログメッセージが生成されます。

ここでは、すでにページルールを定義しています。

Screenshot

このページルールは、事前に定義されたアップストリームへのリバースプロキシを設定しています。

スクリーンショット

Upstreams ページに移動しましょう。

スクリーンショット

アップストリームサーバーを編集します。

スクリーンショット

このアップストリームサーバーを無効化します。アップストリームサーバーが無効化されると、アプリケーションにアクセスした際に Bad Gateway エラーが発生します。

スクリーンショット

この変更を保存します。

スクリーンショット

いつものように、先ほどの変更を反映させるために新しいバージョンをリリースする必要があります。

Screenshot

このボタンをクリックします。

スクリーンショット

リリースします!

スクリーンショット

新しいバージョンがすべてのゲートウェイサーバーに同期されました。

スクリーンショット

これで、新しいページルールがすべてのゲートウェイクラスターとサーバーにプッシュされました。

Embeded video

Embeded video

Embeded video

これらの設定変更にはサーバーのリロード、再起動、またはバイナリのアップグレードは必要ありません。そのため、非常に効率的でスケーラブルです。

埋め込み画像

では、リクエストを送信してみましょう。

ターミナルで、curl を使用してリクエストを送信します。

curl -sSI http://test-edge.com

Screenshot

ご覧のとおり、Bad Gateway エラーが返されました。このエラーはアプリケーションのエラーログに記録されます。

Screenshot

また、サーバーからのレスポンスにリクエスト ID が含まれていることがわかります。この ID をコピーして、対応するログ情報を検索するのに使用します。

スクリーンショット

アプリケーションのエラーログページに戻りましょう。エラーログ情報を確認します。

スクリーンショット

予想通り、先ほどのリクエストがエラーログを生成しました。新しく生成されたエラーログがリストの一番上に表示されています

Screenshot

Openresty.com のエラーログ

このアプリケーションのエラーログは比較的少ないです。次に、オンラインの他のアプリケーションのエラーログを見てみましょう。

アプリケーションリストページに移動します。

Screenshot

OpenResty.com ウェブサイトのエラーログを確認してみましょう。

スクリーンショット

そのページに移動します。

スクリーンショット

エラーログページに移動します。ここにはより多くのエラーログが記録されています。

スクリーンショット

上部のフィルタリングクエリ条件は、問題を正確に特定するのに役立ちます。

スクリーンショット

例えば、リクエスト ID でフィルタリングできます。

スクリーンショット

またはゲートウェイでフィルタリングできます。

Screenshot

サーバーも、

スクリーンショット

エラーログレベルも、

スクリーンショット

そして、時間間隔でもフィルタリングできます。

スクリーンショット

では、ゲートウェイでメッセージをフィルタリングしてみましょう。

スクリーンショット

aws-us-west ゲートウェイを選択します。

スクリーンショット

ご覧のとおり、aws-us-west ゲートウェイにはエラーログがありません。

グローバルエラーログ

アプリケーションのエラーログを確認した後、グローバルエラーログを見てみましょう。グローバルエラーログは Dashboard ページに表示されます。

Embeded image

Screenshot

では、Dashboard ページに移動してグローバルエラーログを確認しましょう。

Screenshot

3 種類のエラーログがあることがわかります。

スクリーンショット

グローバルエラーログ。

スクリーンショット

Admin サイトのエラーログ。

スクリーンショット

ログサーバーのエラーログ。

スクリーンショット

まず、グローバルエラーログを見てみましょう。

Screenshot

グローバルエラーログはゲートウェイサーバーによって収集され、特定のアプリケーションに属していません。

スクリーンショット

エラーログをフィルタリングすることができます。

スクリーンショット

次に、Admin サイトのエラーログを見てみましょう。

スクリーンショット

これらのエラーログは Admin コンソールから収集されたものです。

スクリーンショット

ログの条件フィルタリングもサポートしています。

スクリーンショット

例えば、ログレベル「Error」を選択できます。

Screenshot

「Error」レベルと繰り返し回数が1回以上のログがハイライト表示されていることがわかります。

スクリーンショット

最後に、ログサーバーのエラーログを見てみましょう。

スクリーンショット

このページには OpenResty Edge ログサーバーからのエラーログが表示されています。

スクリーンショット

ここでもログをフィルタリングすることができます。

スクリーンショット

ご覧のとおり、グローバルエラーログとアプリケーションエラーログにはログレベルがありますが、すべてのレベルのログがシステムによって報告されるわけではありません。

スクリーンショット

グローバル設定ページで報告するログレベルを設定できます。

Screenshot

ここでは「warn」に設定しています。これは警告レベル以上のログのみが報告されることを意味します。

スクリーンショット

設定可能なエラーログレベルには「warn、error、crit、alert」などがあります。

Screenshot

ローカルデプロイメントでは、任意のログレベルを設定することができます。

サーバー上でのエラーログの確認

では、OpenResty Edge ゲートウェイサーバーにログインして、error.log ファイルを確認してみましょう。

Screenshot

最後のエラーログメッセージを確認します。

スクリーンショット

ゲートウェイサーバーのエラーログメッセージはここに書き込まれています。

Screenshot

このコマンドを実行します。

スクリーンショット

ゲートウェイサーバーのエラーログメッセージを確認できます。

スクリーンショット

サーバーからログアウトします。

Screenshot

次に、OpenResty Edge の Admin サーバーにログインして、error.log ファイルを確認しましょう。

スクリーンショット

最後のエラーログメッセージを確認します。

スクリーンショット

OpenResty Edge Admin のエラーログメッセージはここに書き込まれています。

スクリーンショット

このコマンドを実行します。

スクリーンショット

OpenResty Edge Admin のエラーログメッセージを確認できます。

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 以上のオープンソースソフトウェアライブラリを執筆しております。

翻訳

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