NSWL クライアントシステムでのログ記録のカスタマイズ
-
**ログフィルタ。**Web サーバーのホスト IP アドレス、ドメイン名、およびホスト名に基づいてログ情報をフィルタリングします。
-
**ログプロパティ。**各フィルタには、関連する一連のログプロパティがあります。ログプロパティでは、フィルタリングされたログ情報の保存方法を定義します。
サンプル設定ファイル
##########
# This is the NSWL configuration file
# Only the default filter is active
# Remove leading # to activate other filters
##########
##########
# Default filter (default on)
# W3C Format logging, new file is created every hour or on reaching 10MB file size,
# and the file name is Exyymmdd.log
##########
Filter default
begin default
logFormat W3C
logInterval Hourly
logFileSizeLimit 10
logFilenameFormat Ex%`{`%y%m%d}t.log
end default
##########
# NetScaler caches example
# CACHE_F filter covers all the transaction with HOST name www.netscaler.com and the listed server ip's
##########
#Filter CACHE_F HOST www.netscaler.com IP 192.168.100.89 192.168.100.95 192.168.100.52 192.168.100.53 ON
##########
# netscaler origin server example
# Not interested in Origin server to Cache traffic transaction logging
##########
#Filter ORIGIN_SERVERS IP 192.168.100.64 192.168.100.65 192.168.100.66 192.168.100.67 192.168.100.225 192.168.100.226 192.168.
100.227 192.168.100.228 OFF
##########
# netscaler image server example
# all the image server logging.
##########
#Filter IMAGE_SERVER HOST www.netscaler.images.com IP 192.168.100.71 192.168.100.72 192.168.100.169 192.168.100.170 192.168.10
0.171 ON
##########
# NCSA Format logging, new file is created every day midnight or on reaching 20MB file size,
# and the file name is /datadisk5/netscaler/log/NS<hostname>/Nsmmddyy.log.
# Exclude objects that ends with .gif .jpg .jar.
##########
#begin ORIGIN_SERVERS
# logFormat NCSA
# logInterval Daily
# logFileSizeLimit 40
# logFilenameFormat /datadisk5/ORGIN/log/%v/NS%`{`%m%d%y}t.log
# logExclude .gif .jpg .jar
#end ORIGIN_SERVERS
##########
# NCSA Format logging, new file is created every day midnight or on reaching 20MB file size,
# and the file name is /datadisk5/netscaler/log/NS<hostname>/Nsmmddyy.log with log record timestamp as GMT.
##########
#begin CACHE_F
# logFormat NCSA
# logInterval Daily
# logFileSizeLimit 20
# logFilenameFormat /datadisk5/netscaler/log/%v/NS%`{`%m%d%y}t.log
# logtime GMT
#end CACHE_F
##########
# W3C Format logging, new file on reaching 20MB and the log file path name is
# atadisk6/netscaler/log/server's ip/Exmmyydd.log with log record timestamp as LOCAL.
##########
#begin IMAGE_SERVER
# logFormat W3C
# logInterval Size
# logFileSizeLimit 20
# logFilenameFormat /datadisk6/netscaler/log/%AEx%`{`%m%d%y}t
# logtime LOCAL
#end IMAGE_SERVER
##########
# Virtual Host by Name firm, can filter out the logging based on the host name by,
##########
#Filter VHOST_F IP 10.101.2.151 NETMASK 255.255.255.0
#begin VHOST_F
# logFormat W3C
# logInterval Daily
# logFileSizeLimit 10
logFilenameFormat /ns/prod/vhost/%v/Ex%`{`%m%d%y}t
#end VHOST_F
########## END FILTER CONFIGURATION ##########
フィルターの作成
| パラメーター | Specifies | |
|---|---|---|
| filterName | フィルタの名前。フィルタ名には英数字を含めることができ、59 文字を超えることはできません。59 文字を超えるフィルタ名は 59 文字に切り捨てられます。 | |
| ホスト名 | トランザクションがログに記録されるサーバーのホスト名。 | |
IP ip |
トランザクションがログに記録されるサーバーの IP アドレス (たとえば、サーバーに 1 つの IP アドレスを持つドメインが複数ある場合)。 | |
IP ip 2...ip N |
複数の IP アドレス(たとえば、サーバドメインに複数の IP アドレスがある場合)。 | |
| ip6 IP | トランザクションがログに記録されるサーバの IPv6 アドレス。 | |
| IP ip NETMASK mask | サブネットで使用される IP アドレスとネットマスクの組み合わせ。 | |
| `ON | OFF` | フィルタを有効または無効にしてトランザクションをログに記録します。引数が選択されていない場合、フィルタは有効 (オン) になります。 |
-
filter <filterName> <HOST name> | [IP<ip> ] | [IP<ip 2...ip n> ] | <IP ip NETMASK mask> [ON | OFF] -
filter <filterName> <HOST name> | [IP6 ip/<prefix length>] [ON | OFF]
仮想サーバーのフィルターを作成する
filter <filterName> <VirtualServer IP address>
Filter F1 HOST www.netscaler.com ON
Filter F2 HOST www.netscaler.com IP 192.168.100.151 ON
Filter F3 HOST www.netscaler.com IP 192.168.100.151 192.165.100.152 ON
Filter F4 IP 192.168.100.151
Filter F5 IP 192.168.100.151 HOST www.netscaler.com OFF
Filter F6 HOST www.netscaler.com HOST www.xyz.com HOST www.abcxyz.com IP 192.168.100.200 ON
Filter F7 IP 192.250.100.0 NETMASK 255.255.255.0
Filter F8 HOST www.xyz.com IP 192.250.100.0 NETMASK 255.255.255.0 OFF
For creating filters for servers having IPv6 addresses.
Filter F9 2002::8/112 ON
Filter F10 HOST www.abcd.com IP6 2002::8 ON
ログプロパティを指定する
BEGINで始まり、ENDで終わります。
BEGIN <filtername>
logFormat ...
logFilenameFormat ...
logInterval ...
logFileSize ....
logExclude ....
logTime ….
END
-
LogFormat は、NCSA、W3C 拡張、およびカスタムログファイル形式をサポートする Web サーバーのログ機能を指定します。
logformatプロパティは w3c です。上書きするには、設定ファイルに custom または NCSA と入力します。次に例を示します。
LogFormat NCSA
-
LogInterval は、新しいログファイルが作成される間隔を指定します。次のいずれかの値を使用します。
-
Hourly: 1 時間ごとにファイルが作成されます。
-
毎日:毎日午前 0 時にファイルが作成されます。デフォルト値です。
-
Weekly: 毎週日曜日の午前 0 時にファイルが作成されます。
-
毎月:月の初日の午前 0 時にファイルが作成されます。
-
LogInterval Daily
logintervalプロパティとして指定します。
LogFileSizeLimitは10 MBです。
LogFileSizeLimit 35
-
LogFileNameFormat は、ログファイルのファイル名形式を指定します。ファイル名には次の種類があります。
-
Dynamic: 次の形式を含むエクスプレッションを指定します。
-
サーバ IP アドレス
-
日付 (% {フォーマット} t)
-
URL サフィックス (%x)
-
ホスト名 (%v)
-
-
LogFileNameFormat Ex%`{`%m%d%y}t.log
LogInterval size
LogFileSize 100
LogFileNameFormat Ex%`{`%m%d%y}t
-
LogExclude は、指定したファイル名拡張子を持つトランザクションのログを防止します。
LogExclude.html
-
NCSA ログファイル形式:LOCAL
-
W3C ログファイル形式:GMT
NCSA と W3C のログ形式を理解する
-
NCSA 共通ログ形式
-
W3C 拡張ログ形式
NCSA 共通ログ形式
Client_IP_address -User_Name [Date:Time -TimeZone] "Method Object HTTP_version" HTTP_StatusCode BytesSent
log.conf ファイルの LogFormat 引数に NCSA と入力します。
| 引数 | Specifies |
|---|---|
| Client_ip_address | クライアントコンピュータの IP アドレス。 |
| ユーザー名 | ユーザー名。 |
| 日付 | トランザクションの日付。 |
| 時間 | トランザクションが完了した時刻。 |
| タイムゾーン | タイムゾーン (グリニッジ標準時または現地時間)。 |
| 方法 | リクエストメソッド (GET、POST など)。 |
| オブジェクト | URL。 |
| HTTP_version | クライアントが使用する HTTP のバージョン。 |
| HTTP_StatusCode | レスポンスのステータスコード。 |
| 送信済みバイト数 | サーバから送信されたバイト数。 |
W3C 拡張ログ形式
%`{`%Y-%m-%d%H:%M:%S}t %a %u %S %A %p %m %U %q %s %j %J %T %H %+{user-agent}i %+{cookie} i%+{referer}i
logFormat W3C %`{`%Y-%m-%d%H:%M:%S}t %m %U
#Version: 1.0
#Fields: date time cs-method cs-uri
#Date: 12-Jun-2001 12:34
2001-06-12 12:34:23 GET /sports/football.html 2001-06-12 12:34:30
GET /sports/football.html
エントリー
ディレクティブ
#Version: 1.0
#Fields: time cs-method cs-uri
#Date: 12-Jan-1996 00:00:00
00:34:23 GET /sports/football.html
12:21:16 GET /sports/football.html
12:45:52 GET /sports/football.html
12:57:34 GET /sports/football.html
フィールド
-
identifier: トランザクション全体に関連します。
-
prefix-identifier: 値プレフィックスによって定義されるパーティ間の情報転送に関連します。
-
prefix (header): 値プレフィックスで定義されるパーティ間の転送用の HTTP ヘッダーフィールドヘッダーの値を指定します。この方法で指定されたフィールドには、常に型があります。
| 前 | Specifies |
|---|---|
| c | Client |
| s | サーバー |
| r | リモート |
| cs | クライアントからサーバへ |
| sc | サーバからクライアントへ |
| sr | サーバーからリモートサーバー (プロキシが使用するプレフィックス) |
| rs | リモートサーバーからサーバー (プロキシが使用するプレフィックス) |
| x | アプリケーション固有識別子 |
Refererフィールド。
| 識別子 | 説明 |
|---|---|
| 日付 | トランザクションが行われた日付。 |
| 時間 | トランザクションが完了した時刻。 |
| 時間かかった | トランザクションの完了にかかった時間 (秒単位)。 |
| bytes | 転送されたバイト数。 |
| キャッシュされます | キャッシュヒットが発生したかどうかを記録します。ゼロはキャッシュミスを示します。 |
| 識別子 | 説明 |
|---|---|
| IP | IP アドレスとポート番号。 |
| DNS | DNS 名。 |
| 状態 | ステータスコード。 |
| comment | コメントはステータスコードとともに返されました。 |
| method | メソッド。 |
| url | URL。 |
| url-stem | URL の語幹部分。 |
| URL クエリ | URL のクエリ部分。 |
| フィールド | 説明 |
|---|---|
| 日付 | トランザクションが完了した日付。 |
| 時間 | トランザクションが完了した時刻。 |
| クライアント IP | クライアントの IP アドレス。 |
| ユーザー名 | ユーザー名。 |
| サービス名 | サービス名。常に HTTP です。 |
| サーバーIP | サーバの IP アドレス。 |
| サーバーポート | サーバのポート番号 |
| 方法 | リクエストメソッド (GET、POST など)。 |
| URLステム | URL ステム。 |
| URL クエリー | URL のクエリ部分。 |
| HTTP ステータス | レスポンスのステータスコード。 |
| 送信済みバイト数 | サーバーに送信されたバイト数 (HTTP ヘッダーを含むリクエストサイズ)。 |
| 受信バイト数 | サーバーから受信したバイト数 (HTTP ヘッダーを含むレスポンスサイズ)。 |
| Time Taken | トランザクションが完了するまでの時間(秒)。 |
| Protocol Version | クライアントが使用している HTTP のバージョン番号。 |
| ユーザー エージェント | HTTP プロトコルの User-Agent フィールド。 |
| クッキー | HTTP プロトコルの Cookie フィールド。 |
Referer |
HTTPプロトコルのRefererフィールド。 |
カスタムログ形式を作成する
NSWL ライブラリを使用してカスタムログ形式を作成する
-
Windows: システムマネージャホストコンピュータ上の
\ns\binディレクトリにある nswl.lib ライブラリ。 -
Solaris:
usr/local/netscaler/binのlibnswl.aNET のライブラリ。
-
システムで定義された次の 2 つの C 関数を C ソースファイルに追加します。ns_userDefFieldName (): この関数は、ログレコードにカスタムフィールド名として追加する必要がある文字列を返します。ns_userDefFieldVal (): この関数は、カスタムフィールド値を実装し、それを文字列として返します。この値はログレコードの最後に追加する必要があります。
-
ファイルをオブジェクトファイルにコンパイルします。
-
オブジェクトファイルを NSWL ライブラリ (およびオプションでサードパーティのライブラリ) にリンクして、新しい NSWL 実行可能ファイルを作成します。
-
設定ファイル (log.conf) の LogFormat 文字列の最後に %d 文字列を追加します。
##########
# A new file is created every midnight or on reaching 20MB file size,
# and the file name is
/datadisk5/netscaler/log/NS<hostname>/Nsmmddyy.log and create
digital
#signature field for each record.
BEGIN CACHE_F
logFormat custom "%a - "%{user-agent}i" [%d/%B/%Y %T -%g] "%x"
%s %b%{referrer}i "%{user-agent}i" "%{cookie}i" %d "
logInterval Daily
logFileSizeLimit 20
logFilenameFormat
/datadisk5/netscaler/log/%v/NS%`{`%m%d%y}t.log
END CACHE_F
カスタムログ形式を手動で作成する
LogFormat Custom ""%a - "%{user-agent}i" %[%d/%m/%Y]t %U %s %b %T"
-
文字列には、新しい行とタブを表す「c」タイプの制御文字\ n と\ t を含めることができます。
-
リテラル引用符とバックスラッシュで Esc キーを使用します。
" *. /: < > ? \ |
%<ASCII value of character in hexadecimal>。
Apache ログ形式を作成する
referer}i" "%{user-agent}i"
Referer Log: LogFormat custom "%{referer}i" -> %U
カスタムログ形式を定義するための引数
| 引数 | 指定 |
|---|---|
| %a | リモート IPv4 アドレス。 |
| %A | ローカル IPv4 アドレス。 |
| %a6 | リモート IPv6 アドレス。 |
| %A6 | ローカルIPv6アドレス。 |
| %B | HTTP ヘッダー (応答サイズ) を除いた送信バイト数。 |
| %b | HTTP ヘッダー (要求サイズ) を除いた受信バイト数。 |
| %d | ユーザー定義フィールド。 |
| %K | クライアントポート情報。 |
| %e1 | 最初のカスタム HTTP リクエストヘッダーの値。 |
| %e2 | 2 番目のカスタム HTTP リクエストヘッダーの値。 |
| %E1 | 最初のカスタム HTTP 応答ヘッダーの値。 |
| %E2 | 2 番目のカスタム HTTP 応答ヘッダーの値。注:カスタムHTTPヘッダーをエクスポートする方法については、「Webサーバーログ用のNetScalerの構成」を参照してください。 |
| %g | グリニッジ標準時のオフセット (たとえば、太平洋標準時は -0800)。 |
| %h | リモートホストの IPv4 アドレス。 |
| %h6 | リモートホストの IPv6 アドレス。 |
| H | 要求プロトコル。 |
| % {Foobar}i | サーバーに送信されたリクエストの Foobar: ヘッダー行の内容。システムは、ユーザーエージェント、リファラー、Cookie ヘッダーをサポートしています。この形式の% の後ろの + は、ロギングクライアントに、+ を単語の区切り文字として使用するように通知します。 |
| %j | ヘッダー (要求サイズ) を含む受信バイト数。 |
| %J | ヘッダー (応答サイズ) を含む送信バイト数。 |
| %l | リモートログ名 (指定されている場合 identd から)。 |
| %m | リクエストメソッド。 |
| %M | リクエストを処理するのにかかった時間 (マイクロ秒単位)。 |
| % {Foobar}o | Foobar の内容:返信のヘッダー行。USER-AGENT、リファラー、および Cookie ヘッダー (セットCookie ヘッダーを含む) がサポートされています。 |
| %p | リクエストを処理するサーバーの標準ポート。 |
| %P | 管理パーティション。 |
| %q | クエリ文字列 (疑問符 (?)クエリ文字列が存在する場合)。 |
| %r | 要求の最初の行。 |
| %s | 内部的にリダイレクトされたリクエスト。これは元のリクエストのステータスです。 |
| %t | 時間、一般的なログ形式 (標準の英語の時間形式)。 |
| % {format}t | format で与えられる形式の Time は strftime (3) フォーマットでなければならない。フォーマットの説明については、時間フォーマットの定義を参照してください。 |
| %T | リクエストの処理にかかった時間 (秒単位)。 |
| %u | リモートユーザ (認証から。リターンステータス (%s) が401の場合は偽物かもしれない)。 |
| %U | URL パスが要求されました。 |
| %v | リクエストを処理するサーバーの正規名。 |
| %V6 | 負荷分散、コンテンツスイッチング、キャッシュリダイレクトが使用されている場合、システム内の仮想サーバーIPv6アドレス。 |
| %D | HTTP トランザクション ID を出力します。 |
| %L | トランザクション時間 (ミリ秒)。 |
| %R | ステータスコードにマップされた HTTP Reason 文字列。 |
| %f | ソースポートロギング。 |
| %V | 仮想サーバーのIPv4アドレス。 |
%+{user-agent}iとして定義し、ユーザーエージェントの値がNetScaler ADCシステムのWebクライアントの場合、情報はNetScaler ADCシステム+Web+クライアントとして記録されます。代わりに、二重引用符を使用することもできます。たとえば、「% {user-agent} i」は、それを「NetScaler ADCシステムWebクライアント」として記録します。%.. .r, %. . .i および%. . .oの文字列には\<Esc\>キーを使用しないでください。これは、共通ログ形式の要件に準拠しています。クライアントはログに制御文字を挿入できます。したがって、raw ログファイルを操作するときは注意が必要です。
時間形式の定義
%{format}t文字列の形式部分について知るための時間形式の定義を示しています。角括弧 () 内の値は、表示される値の範囲を示します。たとえば、次の表の %d の説明の は、1 から 31 までの %d の範囲を示しています。
| 引数 | 指定 |
|---|---|
| %% | % と同じです。 |
| %a | ロケールの曜日の略称です。 |
| %A | ロケールの曜日のフルネーム |
| %b | ロケールの月の略称です。 |
| %B | ロケールの月のフルネーム。 |
| %C | 世紀番号 (年を 100 で割り、10 進数として整数に切り捨てる [1,99])。1 桁の先頭には 0 が付きます。 |
| %d | ユーザー定義フィールド。 |
| %K | 世紀番号 (年を 100 で割り、10 進数として整数に切り捨てる [1,99])。1 桁の先頭には 0 が付きます。 |
| %e | 月の日 [1,31]。一桁の数字の前に空白が付きます。 |
| %h | ロケールの月の略称です。 |
| %H | 時 (24 時間制) [0,23]。1 桁の前に 0 が付きます。 |
| %I | 時 (12 時間表記) [1,12]。1 桁の前に 0 が付きます。 |
| %j | 年の日の数字 [1,366]。一桁の前に 0 が付きます。 |
| %k | 時 (24 時間制) [0,23]。一桁の前に空白が付きます。 |
| %l | 時 (12時間制) [1,12]。一桁の前に空白が付きます。 |
| %m | 年の月の番号 [1,12]。一桁の前に 0 が付きます。 |
| %M | 分 [00,59]; 先頭の 0 は許可されますが、必須ではありません。 |
| %n | 新しい行を挿入します。 |
| %p | ロケールの午前または午後に相当します。 |
| %r | %p を含む 12 時間形式の適切な時間表現 |
| %S | 秒 [00,61]。値の範囲は、たまのうるう秒と二重うるう秒を許容するため[00,59]ではなく[00,61]です。 |
| %3 | ミリ秒 [000,999]。値の範囲は[000,999]です。 |
| %6 | マイクロ秒 [000000,999999]。値の範囲は[000000,999999]です。 |
| %9 | ナノ秒 [000000000,999999999]。値の範囲は[000000000,999999999]です。 |
| %t | タブを挿入します。 |
| %u | 10 進数で表した曜日 [1,7]。1 は |
%Uと%W(および変更されたコンバージョン%OUと%OWの間 )の差は、週の最初の日と見なされる日です。週番号1は、1月の最初の週です(%Uは日曜日、%Wの場合は月曜日から始まる )。週番号 0 には、%Uおよび%Wの1月の第1日曜日または月曜日の前の日が含まれます。
サーバーログを表示する
logfilenameformatをSTDOUTで絞り込んでコンソールに表示します。