NGINX アクセスログは Web サイト運用に不可欠です。NGINX 構成モードでは、Logtail がご利用の log_format ディレクティブに基づいてログエントリを解析し、構造化されたログを Simple Log Service コンソールで多次元分析できるように収集します。
ソリューション概要
NGINX 構成モードでは、Logtail が log_format ディレクティブに基づいてログ内容を構造化します。ログ収集前に、/etc/nginx/nginx.conf に log_format ディレクティブおよび access_log ディレクティブを設定してください。log_format はログの構造を定義し、access_log はログファイルのパスを指定します。
-
ログフォーマットと保存パス
以下の例では、デフォルトの 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
HTTP 応答ステータスコード。
body_bytes_sent
ヘッダーを除く応答本文のサイズ(バイト単位)。
http_referer
リファラ URL。
http_user_agent
クライアントブラウザのユーザーエージェント文字列。
-
生ログ
上記の log_format を使用して生成されたログエントリのサンプル:
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" -
Logstore に収集されたログ:クエリと分析ページで収集されたログを表示できます。Raw ログビューでは、各エントリがキーと値のペアに解析され、インスタンス名、ログパス、UNIX タイムスタンプなどのメタデータとともに表示されます。
前提条件
-
サーバーを含むマシングループが作成されました。カスタム識別子ベースのマシングループを作成する | IP アドレスベースのマシングループを作成する。
-
ご利用のサーバーがリモートサーバーのポート 80 および 443 に接続できること(Logtail が Simple Log Service にログを送信できるため)。
-
対象サーバーが継続的に新しいログを生成していること。Logtail は増分データのみを収集し、構成適用後に更新のないファイルはスキップします。コレクションプロセス。
操作手順
Simple Log Service コンソールにログインします。
-
[Projects] セクションで、目的のプロジェクトをクリックします。
-
タブで、目的の Logstore をクリックします。
-
左側のナビゲーションウィンドウで、Logtail の設定 をクリックし、次に Logtail 設定の追加 をクリックします。
-
データのインポート ページで、 をクリックします。
-
Machine Group Settings ステップで、Use Case を Host Scenario に、Environment を ECS に設定します。Source Machine Group からご利用のマシングループ(例:group-ip)を Applied Machine Group に移動し、Next をクリックします。
-
Logtail Configuration ステップで、以下のパラメーターを設定します。
-
設定名 に構成名(例:
nginx-logs)を入力します。 -
ファイルパス にログファイルパスを入力します。たとえば、
/var/log/nginx/**/access*は、/var/log/nginxディレクトリおよびそのサブディレクトリ内のaccessで始まるすべてのファイルにマッチします。 -
設定の処理 で、NGINX モード解析 をクリックします。処理プラグイン タブで、ご利用の NGINX 設定ファイルにある log_format 構成を入力します。SLS が自動的にフィールドを抽出します。例:
log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$request_time $request_length ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent"';Source Field に
contentを入力します。SLS がこの構成から正規表現を自動生成し、フィールドを抽出します。 -
他のパラメーターはデフォルトのままにします。サーバーからのテキストログ収集。
-
-
Query, Analysis and Visualization ステップで、[Refresh] をクリックして収集データをプレビューします。
-
次へ をクリックして構成を完了します。ログ照会 をクリックすると、Logstore クエリページが開きます。インデックス作成には約 1 分かかります。その後、Rawログ タブでログを確認できます。クエリと分析のクイックスタート。
関連ドキュメント
-
Linux サーバー上の Logtail 収集問題を自動診断ツールでトラブルシューティングします。Logtail の自動診断ツールの使用方法
-
プレビューやクエリページにデータが表示されない場合は、Logtail を使用してログを収集する際にエラーが発生した場合の対処方法 を参照してトラブルシューティングしてください。
-
正規表現による解析失敗、無効なファイルパス、シャードの過負荷などの収集エラーについては、Logtail 収集エラーの確認方法 および Simple Log Service がログを収集する際に発生する一般的なエラーのトラブルシューティング方法 を参照してください。
-
デフォルトでは、1 つのファイルに対して 1 つの Logtail 構成しか適用できませんが、複数の構成もサポートされています。ファイル内のログを複数コピー収集する方法
-
イントラネット内の企業サーバーからも Simple Log Service にログを送信できます。イントラネット内のサーバーからのログ収集。
-
パスまたはファイル名が同一のサーバーからのログを区別するには、Machine Group Topic を使用します。ユーザーまたはインスタンスごとにログを区別するには、File Path Extraction を使用します。
-
Web サイトアクセスの分析、診断、アラート設定については、NGINX アクセスログの収集と分析 を参照してください。