Nginx のログフォーマットおよびディレクトリは/etc/nginx/nginx.conf設定ファイルに指定します。
Nginx のログフォーマット
ログ設定ファイルに、Nginx ログの出力フォーマットが定義されています (main フォーマット)。
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$request_time $request_length '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent"';
次の宣言文には、 main ログフォーマットおよびログデータの書き込み先ファイル名が定義されています。
access_log /var/logs/nginx/access.log main
フィールド説明
フィールド名 | 定義 |
---|---|
remote_addr | クライアントの IP アドレス |
remote_user | クライアントのユーザー名 |
request | リクエスト URL および HTTP プロトコル |
status | リクエストステータス |
body_bytes_sent | クライアントへの送信バイト数 (応答ヘッダーを含まない。本変数は、Apache モジュールの modlogconfig で bytes_sent と併せて使用) |
connection | 接続のシリアル番号 |
connection_requests | 接続で受信したリクエストの数 |
msec | ログ書き込み時間(ミリ秒単位) |
pipe | リクエスト送信を HTTP パイプライン経由にするかどうか (HTTP パイプライン経由でリクエストを送信する場合はp 、パイプライン経由でリクエストを送信しない場合は. を指定)
|
http_referer | Web ページの参照元 |
“http_user_agent” | クライアントのブラウザ情報 (http_user_agent は、二重引用符で囲むこと) |
request_length | リクエストの長さ (リクエスト行、リクエストヘッダー、およびリクエスト本文を含む) |
request_time | リクエストの処理時間 (単位: ミリ秒単位、最初のバイトがクライアントに送信されてから、最後の文字がクライアントに送信されるまでの時間) |
[$time_local] | 一般的なログフォーマットが適用されるローカル時刻 (本変数は角かっこで囲むこと) |
ログサンプル
192.168.1.2 - - [10/Jul/2015:15:51:09 +0800] "GET /ubuntu.iso HTTP/1.0" 0.000 129 404 168 "-" "Wget/1.11.4 Red Hat modified"
Logtail を使用した Nginx ログの収集
- Logstoreリストページのデータインポートウィザードアイコンをクリックすると、データインポートウィザードが起動します。
- データソースを選択します。
テキストファイルを選択し、次へをクリックします。
- データソースを選択します。
- 構成名およびログパスを入力します。
- Nginx のログフォーマットを入力します。
Nginx 標準のログフォーマット設定を入力します。通常、
log_format
で始まります。Log Service によって、ご利用の Nginx キーが自動的に読み込まれます。 - 必要に応じて詳細オプションを設定します。設定したら、次へをクリックします。
詳細については、「詳細オプション」をご参照ください。
Logtail を設定したら、設定をマシングループに適用します。Nginx ログの収集が開始されます。