在NSWL客户端系统上定制日志记录
通过对NSWL客户端配置文件(log.conf)进行更多修改,可以在Citrix ADC Web logging (NSWL)客户端系统上定制日志记录。使用文本编辑器修改客户端系统上的log.conf配置文件。
若要自定义日志记录,请使用配置文件定义过滤器和日志属性。
- 日志过滤器。根据Web服务器的主机IP地址、域名和主机名过滤日志信息。
- 日志属性。每个过滤器都有一组相关的日志属性。日志属性定义如何存储过滤后的日志信息。
样例配置文件
配置文件示例如下:
########## #这是NSWL配置文件#只有默认过滤器是活动的#删除前导#以激活其他过滤器########## ########## #默认过滤器(默认开启)# W3C格式日志记录,每小时或达到10MB文件大小时创建新文件。# Exyymmdd.log文件名 ########## 过滤器默认开始默认logFormat W3C logInterval 10小时logFileSizeLimit logFilenameFormat前任% ' {' % y % m % d} t.log结束违约 ########## # Citrix ADC缓存例# CACHE_F过滤器覆盖所有列出的事务与www.netscaler.com主机名和服务器ip ########## # 过滤器CACHE_F主机www.netscaler.com IP 192.168.100.89 192.168.100.95 192.168.100.52 192.168.100.53 ########## # netscaler原始服务器示例#不感兴趣在源服务器缓存流量事务日志########## #过滤器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关闭########## # netscaler镜像服务器示例#所有镜像服务器日志。########## #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格式日志记录,每天午夜或达到20MB文件大小时创建新文件,#文件名为/datadisk5/netscaler/log/NS/Nsmmddyy.log。排除以.gif .jpg .jar结尾的对象。########## #begin ORIGIN_SERVERS # logFormat NCSA # logInterval Daily # logFileSizeLimit 40 # logFilenameFormat /datadisk5/ORGIN/log/%v/NS% ' {' %m%d%y} .log # logExclude .gif .jpg .jar #end ORIGIN_SERVERS ########## # NCSA格式日志记录,每天午夜或达到20MB文件大小时创建新文件,#文件名为/datadisk5/netscaler/log/NS/Nsmmddyy.log,日志记录时间戳为GMT。########## #begin cache_f# logFormat NCSA # logInterval Daily # logFileSizeLimit 20 # logFilenameFormat /datadisk5/netscaler/log/%v/NS% ' {' %m%d%y} .log # logtime GMT #end CACHE_F ########## # W3C格式日志记录,新文件达到20MB,日志文件路径名为# atadisk6/netscaler/log/server's ip/Exmmyydd.log,日志记录时间戳为LOCAL。########## #begin IMAGE_SERVER # logFormat W3C # logInterval Size # logFileSizeLimit 20 # logFilenameFormat /datadisk6/netscaler/log/%AEx% ' {' %m%d%y}t # logtime LOCAL #end IMAGE_SERVER ########## #虚拟主机名称公司,可以过滤出基于主机名的日志。########## #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配置##########
创建过滤器
您可以使用配置文件(log.conf)中的默认过滤器定义,也可以修改过滤器或创建过滤器。您可以创建多个日志过滤器。
请注意
统一日志记录记录未为其定义筛选器的事务,如果启用了默认筛选器,则使用默认筛选器。可以通过仅定义默认筛选器来完成所有服务器的统一日志记录。
如果服务器上有多个网站,每个网站都有自己的域名,并且每个域名都与虚拟服务器相关联,则可以配置Web服务器日志,为每个网站创建单独的日志目录。下表显示了创建过滤器的参数。
参数 | 指定 |
---|---|
filterName | 过滤器的名称。过滤器名称可以包含字母和数字,长度不超过59个字符。超过59个字符的过滤器名称将被截断为59个字符。 |
主机名 | 记录事务的服务器的主机名。 |
知识产权知识产权 |
要为其记录事务的服务器的IP地址(例如,如果服务器有多个具有一个IP地址的域)。 |
知识产权知识产权2… 护士: |
多个IP地址(例如服务器域中有多个IP地址)。 |
ip6 IP | 要记录事务的服务器的IPv6地址。 |
IP IP NETMASK掩码 | 子网中需要使用的IP地址和子网掩码组合。 |
开bbbboff |
启用或禁用筛选器以记录事务。如果不选择任何参数,则启用过滤器(ON)。 |
表1。创建过滤器参数说明
创建一个过滤器
要创建过滤器,请在log.conf文件中输入以下命令:
filter
<主机名> | [IP< IP >] | [IP< IP 2…]ip n>] | < ip ip NETMASK掩码> [ON | OFF] filter
<主机名> | [IP6 ip/<前缀长度>][ON | OFF]
为虚拟服务器创建过滤器
要为虚拟服务器创建一个过滤器,在log.conf文件中输入以下命令:
filter
例子
以IP地址为192.168.100.0,子网掩码为255.255.255.0为例。适用于192.168.100.1 ~ 192.168.100.254的IP地址。
过滤器F1主机www.netscaler.com在过滤器过滤F2主机www.netscaler.com IP 192.168.100.151 F3主机www.netscaler.com IP 192.168.100.151 192.165.100.152过滤器F4 IP 192.168.100.151过滤器F5 IP 192.168.100.151主机www.netscaler.com从过滤器F6主机www.netscaler.com主机www.xyz.com主机www.abcxyz.com IP 192.168.100.200过滤器F7 IP 192.250.100.0子网掩码255.255.255.0过滤器F8主机www.xyz.com IP 192.250.100.0子网掩码为服务器创建过滤器有255.255.255.0IPv6地址。Filter F9 2002::8/112 ON Filter F10 HOST www.abcd.com IP6 2002::8 ON
指定日志属性
日志属性应用于与过滤器关联的所有日志项。日志属性定义以关键字BEGIN开始,以END结束,如下例所示:
BEGIN logFormat…logFilenameFormat……logInterval……文件大小……logExclude……logTime……结束< !——NeedCopy >
定义中的条目可以包括以下内容:
LogFormat指定支持NCSA、W3C Extended和自定义日志文件格式的Web服务器日志记录特性。
默认情况下,
logformat
属性为w3c。如果要覆盖,请在配置文件中输入custom或NCSA,例如:
NCSA
请注意
对于NCSA和自定义日志格式,本地时间用于时间戳事务和文件旋转。
LogInterval指定创建新日志文件的时间间隔。使用以下值之一:
- 每小时:每小时创建一个文件。
- 每天:每天午夜创建一个文件。默认值。
- 每周:在每周日的午夜创建一个文件。
- 按月:在每月的第一天午夜创建文件。
- . None:只在Web服务器开始日志记录时创建一次文件
例子:
LogInterval Daily
LogFileSizeLimit指定日志文件的最大大小,单位为MB。支持任意日志周期(每周、每月等)。当达到最大文件大小限制或超过定义的日志间隔时间时,将创建文件。
要覆盖此行为,请将大小指定为loginterval
属性,以便仅在达到日志文件大小限制时创建文件。
默认的LogFileSizeLimit是10 MB。
例子:
日志文件限制35
LogFilenameFormat日志文件的文件名格式。文件名可以是以下类型:
Static:指定包含绝对路径和文件名的常量字符串。
Dynamic:指定包含以下格式的表达式:
- 服务器IP地址
- 日期(%{格式}t)
- URL后缀(%x)
- 主机名(%v)
例子:
LogFileNameFormat Ex% ' {' %m%d%y} .log
该命令将第一个文件名创建为Exmmddyy.log,然后每隔一小时创建一个文件名为:Exmmddyy.log的文件。0, Exmmddyy.log。1,…,Exmmddyy.log.n。
例子:
LogInterval大小LogFileSize 100 LogFileNameFormat Ex% ' {' %m%d%y}t
谨慎
在LogFilenameFormat命令中指定的日期格式%t将覆盖该过滤器的日志间隔属性。为了避免每天创建一个新文件,而不是在达到指定的日志文件大小时创建,请不要在LogFilenameFormat中使用%t。
- LogExclude阻止记录具有指定文件扩展名的事务。
例子:
该命令创建一个日志文件,该文件排除*.html文件的日志事务。
LogTime指定日志时间为GMT或LOCAL。
默认值为:
- NCSA日志文件格式为“LOCAL”
- W3C日志文件格式:GMT。
了解NCSA和W3C日志格式
Citrix ADC支持以下标准日志文件格式:
- NCSA通用日志格式
- W3C扩展日志格式
NCSA通用日志格式
如果日志文件格式为NCSA,则日志文件以以下格式显示日志信息:
Client_IP_address -User_Name [Date:Time -TimeZone] "方法对象HTTP_version" HTTP_StatusCode BytesSent
如果使用NCSA通用日志格式,请在log.conf文件的LogFormat参数中输入NCSA。
NCSA常用日志格式说明如下表所示。
论点 | 指定 |
---|---|
Client_IP_address | 客户端的IP地址。 |
用户名 | 用户名。 |
日期 | 交易日期。 |
时间 | 事务完成的时间。 |
时区 | 时区(格林威治标准时间或当地时间)。 |
方法 | 请求方法(例如;GET、POST)。 |
对象 | URL。 |
HTTP_version | 客户端使用的HTTP版本。 |
HTTP_StatusCode | 响应中的状态码。 |
字节发送 | 从服务器发送的字节数。 |
W3C扩展日志格式
扩展日志文件包含一系列行,其中包含以换行符(LF)或回车换行符(CRLF)结尾的ASCII字符。日志文件生成器必须遵循运行它们的平台的行终止约定。
日志分析器必须接受LF或CRLF格式。每行可能包含一个指令或一个条目。如果您希望使用W3C扩展日志格式,请在log.conf文件中输入W3C作为日志格式参数。
默认情况下,W3C标准日志格式在内部定义为自定义日志格式,如下所示:
% ' {' % Y - % m - H % d %: % m: % S} t % % u % S % % p % m % u % % S % j % % t % H % +{用户代理}我% +{饼干}我% +{推荐人}< !——NeedCopy >
您还可以更改该W3C日志格式中的顺序或删除某些字段。例如:
日志格式W3C % ' {' %Y-%m-%d%H:% m:%S}t %m %U
W3C日志条目以以下格式创建:
#版本:1.0 #字段:date time cs-method cs-uri #日期:12-06-2001 12:34 2001-06-12 12:34:23 GET /sports/football.html 2001-06-12 12:34:30 GET /sports/football.html
条目
条目由与单个HTTP事务相关的一系列字段组成。字段之间用空白分隔。Citrix建议使用制表符。如果没有使用特定条目中的字段,则用破折号(-)标记被省略的字段。
指令
看到指令表中显示了日志记录进程的信息。以井号(#)开头的行包含指令。
例子:
下面的示例日志文件显示了W3C扩展日志格式的日志条目:
#Version: 1.0 #Fields: time cs-method cs-uri #Date: 12-01-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
字段
Fields指令列出了一系列字段标识符,这些标识符指定了记录在每个条目中的信息。字段标识符可能具有以下形式之一:
- 标识符:与整个交易相关。
- prefix-identifier:涉及由值前缀定义的各方之间的信息传递。
- 前缀(头):指定由值前缀定义的双方之间传输的HTTP报头字段报头的值。以这种方式指定的字段总是具有类型。
定义的前缀说明如下表所示。
前缀 | 指定 |
---|---|
c | 客户端 |
年代 | 服务器 |
r | 远程 |
cs | 客户机到服务器 |
sc | 服务器到客户端 |
老 | 服务器到远程服务器(代理使用的前缀) |
rs | 远程服务器到服务器(代理使用的前缀) |
x | 特定于应用程序的标识符 |
例子:
以下示例是使用前缀的已定义标识符:
cs方法:客户端发送给服务器的请求中的方法。
sc(推荐人):的推荐人
字段。
c-ip:客户端的IP地址。
标识符
下表描述了不需要前缀的W3C扩展日志格式标识符。
标识符 | 描述 |
---|---|
日期 | 交易完成的日期。 |
时间 | 事务完成的时间。 |
时间 | 事务完成所需的时间(以秒为单位)。 |
字节 | 传输的字节数。 |
缓存 | 记录缓存命中是否发生。0表示缓存未命中。 |
表5所示。W3C扩展日志格式标识符(不需要前缀)
下表描述了需要前缀的W3C扩展日志格式标识符。
标识符 | 描述 |
---|---|
知识产权 | IP地址和端口号。 |
DNS | DNS名称。 |
状态 | 状态码。 |
评论 | 该注释返回一个状态码。 |
方法 | 该方法。 |
url | URL。 |
url-stem | URL的词干部分。 |
url查询 | URL的查询部分。 |
表6所示。W3C扩展日志格式标识符(需要前缀)
W3C扩展日志文件格式允许您选择日志字段。这些字段如下表所示。
场 | 描述 |
---|---|
日期 | 交易完成的日期。 |
时间 | 事务完成的时间。 |
客户端IP | 客户端的IP地址。 |
用户名 | 用户名。 |
服务名称 | 服务名称,总是HTTP。 |
服务器IP | 服务器IP地址。 |
服务器端口 | 服务器端口号 |
方法 | 请求方法(例如;GET、POST)。 |
Url茎 | URL茎。 |
Url查询 | URL的查询部分。 |
HTTP状态 | 响应中的状态码。 |
字节发送 | 发送到服务器的字节数(请求大小,包括HTTP头)。 |
字节收到 | 从服务器接收到的字节数(响应大小,包括HTTP头)。 |
时间 | 事务完成所需的时间,以秒为单位。 |
协议版本 | 客户端使用的HTTP版本号。 |
用户代理 | HTTP协议中的User-Agent字段。 |
饼干 | HTTP协议的Cookie字段。 |
推荐人 |
的推荐人 HTTP协议字段。 |
表7所示。W3C扩展日志文件格式(允许日志字段)
创建自定义日志格式
您可以手动或使用NSWL库自定义日志文件数据的显示格式。通过使用自定义日志格式,您可以派生Apache当前支持的大多数日志格式。
通过使用NSWL库创建自定义日志格式
根据NSWL可执行文件是否已安装在Windows或Solaris主机上,使用以下NSWL库之一:
- 窗口:nswl。在系统管理器主机的\ns\bin目录下的Lib库。
- Solaris:libnswl。在/usr/local/netscaler/bin中的库。
通过使用NSWL库创建自定义日志格式
在C源文件中添加以下两个系统定义的C函数:
ns_userDefFieldName():该函数返回必须作为自定义字段名添加到日志记录中的字符串。
ns_userDefFieldVal():此函数实现自定义字段值,然后将其作为必须添加在日志记录末尾的字符串返回。
将该文件编译为目标文件。
将目标文件与NSWL库(以及可选的第三方库)链接起来,形成一个新的NSWL可执行文件。
在配置文件(log.conf)的logFormat字符串的末尾添加一个%d字符串。
例子:
########## #每天午夜或达到20MB文件大小时创建一个新文件,#文件名为/datadisk5/netscaler/log/NS/Nsmmddyy.log,并为每条记录创建数字#签名字段。BEGIN CACHE_F logFormat自定义"%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} .log END CACHE_F
手动创建自定义日志格式
若要自定义日志文件数据必须显示的格式,请指定一个字符串作为LogFormat日志属性定义的参数。使用字符串创建日志格式的示例如下:
LogFormat定制”“%——“%{用户代理}我“% (% d / Y % m / %) t % U % s % b % t”< !——NeedCopy >
- 字符串可以包含“c”类型的控制字符\n和\t来表示新的行和制表符。
- 使用带有双引号和反斜杠的Esc键。
通过在格式字符串中放置%指令来记录请求的特征,这些指令在日志文件中被值替换。
如果日志文件名格式字符串中存在%v(主机名)或%x (URL后缀)格式说明符,则文件名中的以下字符将被日志配置文件名中的下划线符号替换:
”*。/: < > ?\ |
ASCII值在0 ~ 31范围内的字符替换为:
%<十六进制>中字符的ASCII值
.
例如,ASCII值为22的字符被替换为%16。
谨慎
如果%v格式说明符存在于日志文件名格式字符串中,则为每个虚拟主机打开一个单独的文件。为了确保连续的日志记录,进程可以打开的最大文件数量必须足够大。有关更改可打开文件数量的过程,请参阅操作系统文档。
创建Apache日志格式
您可以从自定义日志中派生出Apache当前支持的大多数日志格式。匹配Apache日志格式的自定义日志格式是:
NCSA/combined: LogFormat custom %h %l %u [%t] " %r " %s %B " %{推荐人
}我”“%{用户代理}我”
NCSA/Common:日志格式自定义%h %l %u [%t]“%r”%s %B
推荐人
日志:LogFormat自定义“%{”推荐人
' ' ' ' ' ' ' ' '
用户代理:LogFormat custom %{User -agent}i
类似地,您可以从自定义格式派生其他服务器日志格式。
用于定义自定义日志格式的参数
看到自定义日志格式PDF表格以获取有关定义自定义日志格式的更多信息。
请注意
有关如何导出自定义HTTP头的说明,请参见配置用于Web服务器日志的Citrix ADC
例如:定义日志格式为“%+{user-agent}i”,用户代理的值为“Citrix ADC system Web Client”,则日志格式为“Citrix ADC system+Web+Client”。另一种选择是使用双引号。例如,“%{user-agent}i”将其记录为“Citrix ADC系统Web Client”。不要对来自%….r, %….i和,%….o的字符串使用
时间格式定义
看到时间格式定义表可以了解自定义日志格式表中描述的%{format}t字符串的格式部分。括号([])内的值显示出现的值范围。例如,下表中%d描述中的[1,31]表示%d的取值范围为1 ~ 31。
请注意
如果您指定的转换不对应于上表中描述的任何转换,也不对应于下一段中列出的任何修改后的转换规范,则该行为是未定义的,并返回0。
%U和%W之间(以及修改后的转换%OU和%OW之间)的差值是被认为是一周的第一天的那一天。第1周是一月份的第一个星期(%U从星期天开始,%W从星期一开始)。对于%U和%W,周号0包含一月份第一个星期日或星期一之前的天数。
显示服务器日志
您可以配置NSWL特性以在控制台中显示服务器日志,或者将服务器日志重定向到Citrix ADC设备上的目录。
在控制台中显示日志(标准输出)有两种方式:选项1:在控制台中显示所有日志。选项2:在带有过滤器的控制台上仅显示选定的日志logfilenameformat
STDOUT。