このチュートリアルでは、OpenResty Edge でアプリケーションのアクセスログ形式を設定する方法を紹介します。

Embeded image

グローバル設定ページでアクセスログフォーマットを設定する

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

スクリーンショット

まず、アクセスログのフォーマットを設定しましょう。

スクリーンショット

Global Config ページに移動します。

スクリーンショット

現在のグローバル設定は「default」という名前のネットワークパーティションに属しています。

スクリーンショット

ログ設定の部分に直接移動します。

Screenshot

これがデフォルトで使用されるログファイルディレクトリです。このディレクトリを変更する場合は、変更後のディレクトリがすべてのゲートウェイサーバーに存在することを確認する必要があります。

スクリーンショット

これは「main」という名前のデフォルトのアクセスログフォーマットです。

スクリーンショット

このフォーマットは、リモート IP アドレス、リクエストボディ、アップストリームステータスなど、多くの情報を記録します。

スクリーンショット

「As default」は、このログフォーマットをそのネットワークパーティションのデフォルトアクセスログフォーマットとして設定することを意味します。アプリケーションでは、何も変更しない場合、デフォルトでこのログフォーマットが使用されます。

スクリーンショット

新しいフォーマットを追加したい場合は、このボタンをクリックします。

Screenshot

このチュートリアルでは、既存の「tutorial-example」フォーマットを使用します。

スクリーンショット

これはリクエスト時間、リモート IP アドレス、HTTP ホスト、リクエストボディを記録します。

スクリーンショット

サンプルアプリケーションのアクセスログを設定する

では、アプリケーションにこのアクセスログフォーマットを設定しましょう。

スクリーンショット

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

スクリーンショット

以前のサンプルアプリケーション、test-edge.com を引き続き使用できます。

スクリーンショット

そのアプリケーションに入ります。

Screenshot

設定ページに移動します。

スクリーンショット

以前、このアプリケーションに「default」という名前のネットワークパーティションを設定しました。

スクリーンショット

このアプリケーションがデフォルトでグローバル設定のデフォルトアクセスログフォーマットを使用していることがわかります。

スクリーンショット

デフォルトのログフォーマットを使用している場合、アクセスログのファイル名を変更することはできません。

スクリーンショット

では、使用するログフォーマットを変更しましょう。「tutorial-example」という名前のアクセスログフォーマットを選択します。

Screenshot

これでログファイル名を変更できるようになりました。「example.access.log」に変更しましょう。

スクリーンショット

この変更を保存します。

スクリーンショット

いつものように、この新しい変更をプッシュするためにリリースする必要があります。

スクリーンショット

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

スクリーンショット

リリースします!

スクリーンショット

変更がすべてのゲートウェイサーバーに同期されました。

Screenshot

これで、先ほどの変更がすべてのゲートウェイクラスターとサーバーにプッシュされました。

Embeded video

Embeded video

Embeded video

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

埋め込み画像

アクセスログをテストする

以前のチュートリアルで、すでにアップストリームを定義しました。

スクリーンショット

この my_backend アップストリームは、バックエンドサーバーを 1 つ定義しています。

スクリーンショット

また、ページルールも定義しました。

スクリーンショット

このページルールは、先ほど見たアップストリームへのリバースプロキシを設定しています。

Screenshot

そのため、アプリケーションにアクセスすると、アップストリームのコンテンツが返されます。

では、アプリケーションがどのゲートウェイサーバーに属しているかを確認しましょう。

ゲートウェイクラスターページに移動します。

Screenshot

アプリケーションは “default” という名前のネットワークパーティションに属しています。

スクリーンショット

「default」という名前のネットワークパーティションに属する多くのゲートウェイクラスターがあることがわかります。

スクリーンショット

その中の1つを選んでアクセスログ情報を確認しましょう。

スクリーンショット

まず、アプリケーションにアクセスしてアクセスログメッセージを生成しましょう。

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

curl -sSI -H 'Host: test-edge.com' http://52.53.251.226/

Screenshot

アクセスに成功しました!

スクリーンショット

次に、アクセスログ情報を確認しましょう。OpenResty Edge ゲートウェイサーバーにログインします。

スクリーンショット

example.access.log ファイルの最後のアクセスログ情報を確認します。

スクリーンショット

ログファイルディレクトリはグローバル設定で定義されています。

スクリーンショット

ログファイル名はアプリケーションで定義しました。

スクリーンショット

コマンドを実行します。

Screenshot

アクセスログ情報にリクエスト時間が含まれていることがわかります。

スクリーンショット

そしてリモート IP アドレス。

スクリーンショット

HTTP ホスト。

スクリーンショット

そしてリクエストボディ。

スクリーンショット

アクセスログ情報が「tutorial-example」アクセスログフォーマットと一致していることがわかります。

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

翻訳

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