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
##########
# Citrix ADC 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 <filtername>
logFormat ...
logFilenameFormat ...
logInterval ...
logFileSize ....
logExclude ....
logTime ….
END
-
LogFormat は、NCSA、W3C 拡張、およびカスタムログファイル形式をサポートする Web サーバーロギング機能を指定します。By default, the
logformatproperty is w3c. To override, enter custom or NCSA in the configuration file, for example:
LogFormat NCSA
-
LogInterval は、新しいログファイルが作成される間隔を指定します。次のいずれかの値を使用します。
-
Hourly: 1 時間ごとにファイルが作成されます。
-
毎日:毎日午前 0 時にファイルが作成されます。デフォルト値です。
-
Weekly: 毎週日曜日の午前 0 時にファイルが作成されます。
-
毎月:月の初日の午前 0 時にファイルが作成されます。
-
LogInterval Daily
logintervalプロパティとして指定します。
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
| 引数 | 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 | クライアント |
| 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.a ライブラリです。
NSWL ライブラリを使用してカスタムログ形式を作成するには
-
システムで定義された次の 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
カスタムログ形式を定義するための引数
時間形式の定義
サーバーログの表示
logfilenameformatフィルタを使用して、選択したログのみをコンソールに表示します。