1. Nginxログ形式と各フィールドの意味
1.1 Nginxログの保存場所
Linuxでは、nginxアクセスログはデフォルトでnginxインストールディレクトリの下のログフォルダーに配置されます。特定の場所のnginx構成ファイルnginx.confを見つけることができます
1.2 Nginxログ形式
183.198.255.73--[16 / Apr / 2020:21:46:26 +0800] "GET / HTTP / 1.1" 200 612 "-" "Mozilla / 5.0(Windows NT 10.0; Win64; x64)AppleWebKit / 537.36(KHTML 、Geckoなど)Chrome / 80.0.3987.87 Safari / 537.36 "
1.3 Nginxログのフィールドの意味
(1)183.198.255.73:クライアントのIPを表します
(2)-:ログのデフォルト設定は-
(3)[16/4/2020:21:46:26 +0800]:サーバーがリクエスト処理を完了する時刻、形式:[日/月/年:時間:分:秒のタイムゾーン]
(4)GET / HTTP / 1.1:リクエストメソッド/リクエストリソース、プロトコルGET / HTTP / 1.1
(5)200:プロトコルステータスコード
(6)612:サーバーからクライアントに送信されたバイト数612
(7)-:アクセスされたページリンクからのレコード(非ページアクセスは-)
(8)Mozilla / 5.0(Windows NT 10.0; Win64; x64)AppleWebKit / 537.36(KHTML、like Gecko)Chrome / 80.0.3987.87 Safari / 537.36:お客様のブラウザ情報(UA)
1.4 Nginxパラメータの意味
(1)$ remote_addrおよび$ http_x_forwarded_forはクライアントのIPアドレスを記録します;
(2)$ remote_user:クライアントのユーザー名を記録します;
(3)$ time_local:アクセス時間とタイムゾーンを記録します;
(4)$リクエスト:リクエストURLとHTTPプロトコルを記録するために使用されます;
(5)$ステータス:リクエストステータスを記録するために使用されます;成功は200、
(6)$ body_bytes_s ent:クライアントに送信されるファイルボディコンテンツのサイズを記録します;
(7)$ http_referer:使用されますそのページからアクセスしたリンクを記録するには、
(8)$ http_user_agent:クライアントブラウザの関連情報を記録します。
2. llsのログ形式と各フィールドの意味
2.1 llsログの保存場所
デフォルトでは、llsのログはC:\ WINDOWS \ system32 \ LogFilesに保存されます
2.2 llsログのフィールドの意味
#Software:Microsoft Internet Information Services 6.0
#Version:1.0
#Date:2020-04-10 07:18:44
#Fields:date time s-sitename s-ip cs-method cs-uri-stem cs-uri-query s -port cs-username c-ip cs(User-Agent)sc-status sc-substatus sc-win32-status
2020-04-10 07:18:44 W3SVC219663584 192.168.1.2 GET /default.asp-8003-192.168.1.2 Mozilla / 5.0 +(Windows + NT + 5.2; + rv:52.0)+ Gecko / 20100101 + Firefox / 52.0 200 0 0
(1)#Software、#Version、および#Dateは、それぞれサーバープログラム、バージョン、および時間です
(2)#Fieldsは、ログコンテンツの各フィールドの説明です
(3)日付:日付2020-04-10
(4)時間:時間07:18:44
(5)s-sitename:同じサーバー下の複数のサイトを区別するために使用されるサーバーサイト名。W3SVC219663584
(6)s-ip:サーバーIP、リソース処理サーバーIP、通常はサーバーローカルIP
(7)cs-method:リクエストメソッドGET
(8)cs-uri-stem:リクエストのリソースパス。/default.asp
(9)cs-uri-query:アクセスしない場合のクエリ文字列-
(10)s-port:ポート番号8003
(11)cs-username:認証されたユーザーの場合、形式は "domain \ username"、匿名ユーザーの場合はハイフン(-)です。
(12)c-ip:client ip 192.168.1.2(自分で確認)
(13)cs(ユーザーエージェント):ブラウザー情報Mozilla / 5.0 +(Windows + NT + 5.2; + rv:52.0)+ Gecko / 20100101 + Firefox / 52
(14)sc-status:ステータスコード
(15)sc-substatus:HTTPサブプロトコル0のステータス
(16)sc-win32-status:Win32®ステータス
もちろん、他にもいくつかのフィールドがあります。
- timetaken:ミリ秒で費やされた時間。
- cs-version:プロトコルのバージョン。
- cs(リファラー):リソースへのリンクをクリックする方法をリクエストします 一般に、このフィールドが存在する場合、検索エンジンと検索語句を特定できます。
- sc-bytes:送信されたファイルのサイズ(バイト単位)。通常、要求されたリソースファイルのサイズ。
- s-sitename:同じサーバー下の複数のサイトを区別するために使用されるサーバーサイト名。
- s-computername:サーバーコンピューター名。
- cs(Cookie):クライアントはCookieを要求します。
- cs-host:クライアントはホスト名を要求します。
3. Apacheログ形式と各フィールドの意味
3.1 Apacheログの場所
Apacheがデフォルトでインストールされている場合、サーバーが実行されるとすぐに2つのログファイルが生成されます。2つのファイルは、access_log(Windowsではaccess.log)とerror_log(Windowsではerror.log)です。デフォルトのインストール方法では、これらのファイルは/ usr / local / apache / logsの下にあります。Windowsシステムの場合、これらのログファイルはApacheインストールディレクトリのlogsサブディレクトリに保存されます。
3.2 Apacheログの各フィールドの意味
IISサーバーの形式とは少し異なり、Apacheサーバーのログには通常、フィールドの説明が含まれていません。デフォルトでは、単一のレコード(1行)は通常5つの部分に分割されます。それらは、IPと時間の要求、メソッドとコンテンツの要求、ステータスとサイズの要求、リソースパスの要求、プロキシ文字列の要求です。
(1)リクエストIPと時間:106.11.156.101-[27 / Feb / 2019:08:04:21 +0800]リクエストクライアントIPアドレスと時間、このタイムレコードにはタイムゾーン識別子が含まれ、中央の2つはそれぞれアクセスです人の身元と認証は通常空であり、代わりに-に置き換えられます。
(2)リクエストメソッドとコンテンツ:GET /373.html HTTP / 1.1リクエストメソッドとリクエストされたリソースの絶対パス、その後にリクエストプロトコルタイプ。
(3)リクエストのステータスとサイズ:200 4656リクエストリソースは、HTTPステータスコードと送信ファイルのサイズ(バイト)を返します。
(4)リクエストリソースルート:http://www.example.com/リクエストリソースルートまたはリソース参照ルート。
(5)リクエストエージェント文字列:Mozilla / 5.0(Windows NT 6.1; Win64; x64)AppleWebKit / 537.36(KHTML、like Gecko)Chrome / 69.0.3497.81 YisouSpider / 5.0 Safari / 537.36ユーザーエージェント文字列。
3.3 Apacheカスタムログ形式
カスタムログファイルの形式には、LogFormat命令とCustomLog命令の2つの命令が含まれ、デフォルトのhttpd.confファイルには、これら2つの命令のいくつかの例が含まれています。
LogFormatディレクティブは、フォーマットを定義し、フォーマットに名前を割り当てます。将来、この名前を直接参照できます。CustomLogコマンドは、ログファイルを設定し、ログファイルで使用される形式を示します(通常は形式の名前)。
LogFormat命令の機能は、ログ形式を定義し、それに名前を割り当てることです。たとえば、デフォルトのhttpd.confファイルでは、次のコード行を見つけることができます。
LogFormat“%h%l%u%t \”%r \”%> s%b”共通
この命令は、「common」と呼ばれるログ形式を作成します。ログの形式は、二重引用符で囲まれた内容で指定されます。フォーマット文字列の各変数は特定の情報を表し、フォーマット文字列で指定された順序でログファイルに書き込まれます。
Apacheのドキュメントには、フォーマット文字列で使用できるすべての変数とその意味が記載されています。
———————————————————————-
%…A:リモートIPアドレス
%…A:ローカルIPアドレス
%…B:HTTPヘッダーを除く、送信されたバイト数
%…B:HTTPヘッダーを除く、CLF形式で送信されたバイト数。
たとえば、データが送信されない場合は、0の代わりに「-」を書き込みます。
%e:環境変数FOOBARの内容
%…F:ファイル名
%…H:リモートホスト
%…H要求された合意
%i:サーバーに送信されるリクエストのヘッダー行であるFoobarのコンテンツ。
%…L:リモートログイン名(提供されている場合は、identdから)
%…Mリクエストされたメソッド
%n:別のモジュールからのコメント「Foobar」の内容
%o:Foobarの内容、応答のヘッダー行
%…P:リクエストへの応答としてサーバーが使用するポート
%…P:リクエストに応答した子プロセスのID。
%…Qクエリ文字列(クエリ文字列がある場合は、「?」の後に文字を含めます
パーツ、それ以外の場合は空の文字列です。)
%…R:リクエストの最初の行
%…S:ステータス。内部リダイレクト要求の場合、これは*元の*要求を指します
ステータス。%...> sが使用されている場合は、後続の要求を参照します。
%…T:公開ログ時間形式(または標準の英語形式)で表現された時間
%t:指定された形式で表現された時間
%…T:リクエストへの応答に費やされた時間(秒)
%…U:リモートユーザー(authから。戻りステータス(%s)が401の場合、偽の可能性があります)
%…U:ユーザーが要求したURLパス
%…V:リクエストに応答したサーバーのServerName
%…V:UseCanonicalName設定に従って取得されたサーバー名
———————————————————————
上記のすべての変数のうち、「...」はオプションの条件を示します。条件が指定されていない場合、変数の値は「-」に置き換えられます。デフォルトのhttpd.confファイルから前のLogFormat命令の例を分析すると、「common」という名前のログ形式が作成されていることがわかります。これには、リモートホスト、リモートログイン名、リモートユーザー、リクエスト時間、最初のリクエストが含まれます。回線コード、要求ステータス、および送信されたバイト数。
特定の定義済み情報をログに記録したいだけの場合は、「...」が使用されます。「%」と変数の間に1つ以上のHTTPステータスコードが置かれている場合、リクエストによって返されたステータスコードが指定されたステータスコードのいずれかに属している場合にのみ、変数で表されるコンテンツが記録されます。たとえば、ウェブサイト上のすべての無効なリンクを記録したい場合は、次のように使用できます。
—————————————————-
LogFormat%404 {Referer} i BrokenLinks
—————————————————
逆に、ステータスコードが指定した値と異なるリクエストを記録する場合は、「!」記号を追加するだけです。
LogFormat%!200U SomethingWrong