NGINXログは、WebサイトのO&Mに使用できる重要な情報を記録します。Simple Log Serviceを使用すると、NGINX設定モードでNGINXログを収集し、複数のディメンションから収集したログを分析できます。 Logtail設定を作成してログを収集できます。 このトピックでは、Simple Log ServiceコンソールでNGINX設定モードでLogtail設定を作成する方法について説明します。
ソリューションの概要
NGINX設定モードでは、Logtailはlog_formatパラメーターで指定されたログ形式に基づいてログコンテンツを構造化します。 NGINXアクセスログを収集する前に、/etc/nginx/nginx.confファイルでlog_formatおよびaccess_logパラメーターを設定する必要があります。 log_formatパラメーターはログ形式を指定し、access_logパラメーターはNGINXログファイルへのストレージパスを指定します。
ログ形式とストレージパス
次の例では、log_formatおよびaccess_logパラメーターのデフォルト値が使用されます。
log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$request_time $request_length ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent"'; access_log /var/log/nginx/access.log main;
次の表に、ログフィールドを示します。
項目
説明
remote_addr
クライアントの IP アドレス。
remote_user
クライアントがリクエストを送信するために使用するユーザー名。
time_local
サーバーのシステム時刻。 値は [] で囲む必要があります。
request
リクエストのURIとHTTPプロトコル。
request_time
リクエストの処理に必要な時間。 単位は秒です。
request_length
リクエストの長さ。 リクエスト行、リクエストヘッダー、リクエスト本文がすべてカウントされます。
status
リクエストのステータス。
body_bytes_sent
クライアントに送信される応答のバイト数。 レスポンスヘッダーはカウントされません。
http_referer
ソースwebページのURL。
http_user_agent
クライアントのブラウザ情報。
生ログ
log_formatパラメーターで指定したログ形式に基づいてNGINXによって生成されるログ:
192.168.1.1 - - [11/Dec/2024:11:21:03 +0800] "GET /nginx-logo.png HTTP/1.1" 0.000 514 200 368 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36"
Simple Log Service Logstoreに収集されたログ:
前提条件
マシングループが作成され、サーバーがマシングループに追加されます。 詳細については、「カスタム識別子ベースのマシングループの作成」および「IPアドレスベースのマシングループの作成」をご参照ください。
サーバーはリモートサーバーのポート80とポート443に接続して、LogtailがSimple Log Serviceにログを送信できるようにします。
ログを収集するサーバーは、継続的にログを生成します。 Logtailは増分ログのみを収集します。 Logtail構成がサーバーに配信されて適用された後にサーバー上のログファイルが更新されない場合、Logtailはファイルからログを収集しません。 詳細については、「収集プロセス」をご参照ください。
手順
にログインします。Simple Log Serviceコンソール.
[プロジェクト] セクションで、管理するプロジェクトをクリックします。
タブで、管理するログストアをクリックします。
Logstoreの左側にあるドロップダウン矢印をクリックし、[Logtailの設定] をクリックします。 [Logtail設定] ページで、[Logtail設定の追加] をクリックします。
[クイックデータインポート] ダイアログボックスで、
を選択します。データのインポートウィザードのマシングループ構成ステップで、作成したマシングループを選択します。
データのインポートウィザードのLogtail設定ステップで、次のパラメーターを設定します。
構成名: Logtail構成の名前。 例:
nginx-logs
ファイルパス: NGINXログファイルへのストレージパス。 たとえば、
/var/log/nginx/**/access *
を指定した場合、Simple Log Serviceは、名前が/var/log /NGINX
ディレクトリおよびディレクトリの再帰的サブディレクトリの先頭にaccess
が付いているnginxログファイルからログを収集します。プロセッサ構成: [データ解析 (NGINXモード)] をクリックします。 [プロセッサ] ダイアログボックスで、NGINX Log Configurationパラメーターを設定します。 ほとんどの場合、NGINX Log Configurationパラメーターの値にはlog_formatがプレフィックスされます。 Simple Log Serviceは自動的にフィールドを抽出します。 例:
log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$request_time $request_length ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent"';
他のパラメーターのデフォルト値を保持します。 詳細については、「サーバーからのテキストログの収集」をご参照ください。
データのインポートウィザードの [クエリと分析の構成] ステップで、[更新] をクリックして収集したログをプレビューします。
[次へ] をクリックしてウィザードを閉じます。 [クエリログ] をクリックします。 次に、Logstoreのクエリと分析ページに移動します。 インデックスが有効になるまで約1分待つ必要があります。 次に、収集したログを [生ログ] タブで表示できます。 詳細については、「ログクエリと分析のガイド」をご参照ください。
関連ドキュメント
Simple Log Serviceは、Linuxサーバー用Logtailの自動診断ツールを提供します。 このツールを使用して、問題を効率的に特定して解決できます。 詳細については、「」をご参照ください。Logtailの自動診断ツールを使用するにはどうすればよいですか?
Logtailを使用してログを収集するときにプレビューページが空白の場合、またはクエリページにデータが表示されない場合は、次の手順に従って問題のトラブルシューティングを行うことができます。Logtailを使用してログを収集するときにエラーが発生した場合はどうすればよいですか?
Logtailを使用してログを収集すると、エラーが発生する可能性があります。 たとえば、正規表現ベースのデータ解析が失敗した場合、ファイルパスが無効である場合、またはトラフィックがシャードの処理機能を超えた場合などです。 Logtailベースのデータ収集エラーは、Logtail収集エラーの表示方法? データ収集の一般的なエラーの詳細については、Simple Log Serviceがログを収集するときに発生する可能性のある一般的なエラーのトラブルシューティング方法を教えてください。
デフォルトでは、ログファイルからログを収集するために使用できるLogtail設定は1つだけです。 複数のLogtail設定を使用して、ログファイルからログを収集することもできます。 詳細については、「」をご参照ください。ファイル内のログの複数のコピーを収集するにはどうすればよいですか?
企業イントラネット内のサーバーからSimple Log Serviceにログを収集できます。 詳細については、「企業イントラネット内のサーバーからのログの収集」をご参照ください。
異なるサーバーで生成されたログへのストレージパスが同じである場合、またはログファイルの名前が同じであり、異なるサーバーで生成されたログを区別する場合は、「Machine Group Topic」に記載されている手順に従ってください。 異なるユーザーまたはインスタンスに対して生成されたログを区別することもできます。 詳細については、「ファイルパスの抽出」をご参照ください。
Webサイトへのアクセスを分析、診断、最適化できます。 Webサイトアクセスログのアラートを設定することもできます。 詳細については、「NGINXアクセスログの収集と分析」をご参照ください。