Citrix ADC< / span >

在NSWL客户端系统上自定义日志记录

您可以通过对NSWL客户端配置文件(log.conf)进行更多修改,在Citrix ADC Web日志记录(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原始服务器示例#不感兴趣in Origin server to Cache流量事务日志########## #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. in Origin server to Cache流量事务日志########## #Filter ORIGIN_SERVERS IP 192.168.100.64 192.168.100.65 192.168.100.66100.227 192.168.100.228 OFF ########## # 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文件大小时创建新文件,文件名为/ dataddisk5 /netscaler/log/NS/ nsmmddy .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/ nsmmddy .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 ########## # Virtual Host by Name firm,可以根据主机名过滤日志########## #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 ########## 

创建过滤器

您可以在配置文件(log.conf)中使用默认筛选器定义,也可以修改筛选器或创建筛选器。您可以创建多个日志筛选器。

注意

统一日志记录记录未定义过滤器的事务,如果启用了默认筛选器,则使用默认筛选器。可以通过仅定义默认筛选器来完成所有服务器的统一日志记录。

如果服务器托管多个网站,并且每个网站都有自己的域名,并且每个域都与虚拟服务器关联,则可以配置Web服务器日志记录以为每个网站创建单独的日志目录。下表显示了用于创建筛选器的参数。

参数 说明
filterName 筛选器的名称。筛选器名称可以包含字母数字字符,且不得超过 59 个字符。超过 59 个字符的过滤器名称将被截断为 59 个字符。
主机名 正在为其记录事务的服务器的主机名。
知识产权知识产权 要记录事务的服务器的IP地址(例如,如果服务器有多个域,具有一个IP地址)。
知识产权知识产权2…护士: 多个IP地址(例如,如果服务器域有多个IP地址)。
ip6 IP 要记录事务的服务器的IPv6地址。
IP IP NETMASK掩码 要在子网上使用的IP地址和网络掩码组合。
|关闭 启用或禁用过滤器以记录事务。如果未选择任何参数,则启用筛选器 (开)。

表 1.用于创建过滤器的参数

创建过滤器

要创建筛选器,请在log.conf文件中输入以下命令:

  • filter | [IP< IP >] | [IP< IP 2…ip n>] | < ip ip NETMASK mask> [ON | OFF]

  • filter | [IP6 ip/] [ON | OFF]

为虚拟服务器创建筛选器

要为虚拟服务器创建筛选器,请在log.conf文件中输入以下命令:

filter

示例

在以下示例中,您指定的IP地址为192.168.100.0,网络掩码为255.255.255.0。该过滤器适用于IP地址192.168.100.1到192.168.100.254。

过滤器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 

指定日志属性

日志属性将应用于与筛选器关联的所有日志条目。日志属性定义以关键字开始开头,以结束结尾,如以下示例所示:

 logFormat…logFilenameFormat……logInterval……文件大小……logExclude……logTime……结束< !——NeedCopy >

定义中的条目可以包括以下内容:

  • 日志格式指定支持NCSA, W3C扩展和自定义日志文件格式的Web服务器日志记录功能。

    默认情况下,logformat属性为w3c。要覆盖,请在配置文件中输入自定义或ncsa,例如:

LogFormat机子< !——NeedCopy >

注意

对于ncsa和自定义日志格式,本地时间用于时间戳交易和文件轮换。

  • LogInterval指定创建新日志文件的时间间隔。使用以下值之一:

    • 每小时:每小时创建一个文件。
    • 每日:每天午夜创建一个文件。默认值。
    • 每周:每周日午夜创建一个文件。
    • 每月:文件将在每月的第一天午夜创建。
    • 无:当Web服务器日志记录开始时,文件仅创建一次。< / span >

例如

LogInterval每日< !——NeedCopy >

LogFileSizeLimit指定日志文件的最大大小(以MB为单位)。它可以用于任何日志间隔(每周、每月等)。当达到最大文件大小限制或定义的日志间隔时间过去时,将创建文件。

要覆盖此行为,请将大小指定为loginterval属性,以便仅在达到日志文件大小限制时才创建文件。

默认LogFileSizeLimit为10 MB。

例如

LogFileSizeLimit 35 < !——NeedCopy >
  • logfilenameformat指定日志文件的文件名格式。文件的名称可以是以下类型:

    • 静态:指定包含绝对路径和文件名的常量字符串。

      动态:指定包含以下格式的表达式:

      • 服务器IP地址
      • 日期(%{格式}t)
      • URL后缀(%x)
      • 主机名称(%v)

例如

LogFileNameFormat前任% ' {' % m % d % y} t.log < !——NeedCopy >

此命令将第一个文件名创建为Exmmddyy.log,然后每小时创建一个带有文件名的文件:exmmddyy.log.0, exmmddyY.log.1,…,exmmddyY.logn。

例如

LogInterval size LogFileSize 100 LogFileNameFormat Ex% ' {' %m%d%y}t 

小心

在logfilenameformat命令中指定的日期格式%t将覆盖该筛选器的日志间隔属性。要防止每天创建一个新文件,而不是达到指定的日志文件大小时,请勿在logfilenameformat中使用% t。

  • LogExclude防止记录具有指定文件扩展名的事务。

示例:

LogExclude . html < !——NeedCopy >

此命令创建一个日志文件,该文件排除*.html文件的日志事务。

LogTime将日志时间指定为GMT或本地。

默认值为:

  • Ncsa日志文件格式:local
  • W3c日志文件格式:格林威治标准时间。

了解ncsa和w3c日志格式

Citrix ADC支持以下标准日志文件格式:

  • Ncsa通用日志格式
  • W3c扩展日志格式

Ncsa通用日志格式

如果日志文件格式为ncsa,则日志文件以以下格式显示日志信息:

Client_IP_address -User_Name[日期:时间-时区]"方法对象HTTP_version" HTTP_StatusCode BytesSent 

若要使用NCSA通用日志格式,请在log.conf文件的日志格式参数中输入NCSA .conf。

下表介绍了ncsa通用日志格式。

参数 说明
Client_IP_address 客户端计算机的IP地址。
用户名 用户名。
日期 交易记录的日期。
时间 完成交易记录的时间。
时区 时区(格林威治标准时间或本地时间)。
方法 请求方法(例如,get, post)。
对象 网址。
HTTP_version 客户端使用的HTTP版本。
HTTP_StatusCode 响应中的状态代码。
发送的字节数 从服务器发送的字节数。

W3c扩展日志格式

扩展日志文件包含一系列行,其中包含ASCII字符由换行符(低频)或序列回车换行符(CRLF)终止。日志文件生成器必须遵循运行它们的平台的行终止约定。

对数分析仪必须接受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日志格式中的某些字段。例如:

logFormat W3C % ' {' %Y-%m-%d%H:% m:%S}t %m %U 

W3c日志条目使用以下格式创建:

#版本:1.0 #字段:date time cs-method cs-uri #日期: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 

条目

条目由一系列与单个HTTP事务相关的字段组成。字段用空格分隔。Citrix 建议使用标签字符。如果未使用特定条目中的字段,则短划线 (-) 标记省略字段。

指令

有关日志记录过程的信息,请参阅指令表。以英镑符号 (#) 开头的行包含指令。

例如

以下示例日志文件以w3c扩展日志格式显示日志条目:

#版本:1.0 #Fields: time c -method c -uri #日期:12-01-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 

字段

“字段”指令列出了一系列字段标识符,用于指定每个条目中记录的信息。字段标识符可能具有以下表单之一:

  • 标识符:与整个交易相关。
  • 前缀标识符:与由值前缀定义的当事方之间的信息传输有关。
  • 前缀(标头):指定HTTP标头字段标头的值,用于在由值前缀定义的各方之间进行传输。以此方式指定的字段始终具有类型。

下表描述了定义的前缀。

前缀 说明
c 客户端
服务器
r 远程
cs 客户端到服务器
sc 服务器到客户端
服务器到远程服务器(代理使用的前缀)
rs 远程服务器到服务器(代理使用的前缀)
x 特定于应用程序的标识符

示例

以下示例是使用前缀的定义标识符:

cs方法:客户端发送到服务器的请求中的方法。

sc(推荐人):回复中的推荐人字段。

c-ip:客户端的IP地址。

标识符

下表介绍了不需要前缀的w3c扩展日志格式标识符。

标识符 说明
日期 完成交易记录的日期。
时间 完成事务的时间。
时间 完成交易所花费的时间(以秒为单位)。
字节 传输的字节数。
缓存 记录是否发生缓存命中。零表示缓存未命中。

表 5.W3c扩展日志格式标识符(无需前缀)

下表描述了需要前缀的w3c扩展日志格式标识符。

标识符 说明
知识产权 IP地址和端口号。
DNS DNS名称。
状态 状态代码。
评论 返回时带有状态码的评论。
方法 这个方法。
url 网址。
url-stem 网址:的茎部分。
url查询 网址:的查询部分。

表 6.W3c扩展日志格式标识符(需要前缀)

W3c扩展日志文件格式允许您选择日志字段。下表显示了这些字段。

字段 说明
日期 完成交易记录的日期。
时间 完成事务的时间。
客户端IP 客户端的IP地址。
用户名 用户名。
服务名称 服务名称,始终是http。
服务器IP 服务器IP地址。
服务器端口 服务器端口号
方法 请求方法(例如,get, post)。
Url茎 URL茎。
Url查询 网址:的查询部分。
HTTP状态 响应中的状态代码。
发送的字节数 发送到服务器的字节数(请求大小,包括HTTP标头)。
接收的字节数 从服务器接收的字节数(响应大小,包括HTTP标头)。
所需时间 交易完成所需的时间(以秒为单位)。
协议版本 客户端正在使用的HTTP版本号。
用户代理 HTTP协议中的用户代理字段。
饼干 HTTP协议的Cookie字段。
推荐人 HTTP协议的推荐人字段。

表 7.W3c扩展日志文件格式(允许日志字段)

创建自定义日志格式

您可以手动或使用NSWL库自定义日志文件数据的显示格式。通过使用自定义日志格式,您可以派生Apache当前支持的大多数日志格式。

使用NSWL库创建自定义日志格式

根据Windows或Solaris主机计算机上是否安装了NSWL可执行文件,请使用以下NSWL库之一:

  • 窗口:系统管理器主机上\ ns\ bin目录中的nswl。lib库。
  • Solaris:/usr/本地/netscaler/bin中的linbnswl . txt一个库。

使用NSWL库创建自定义日志格式

  1. 在c源文件中添加系统定义的以下两个c函数:

    ns_userdefFieldName():此函数返回必须作为自定义字段名添加到日志记录中的字符串。

    ns_userdefFieldVal():此函数实现自定义字段值,然后将其作为字符串返回,该字符串必须添加到日志记录末尾。

  2. 将文件编译为目标文件。

  3. 将目标文件与NSWL库(可选,与第三方库)链接,以形成新的NSWL可执行文件。

  4. 在配置文件(log.conf)中的日志格式字符串末尾添加%d个字符串.conf。

例如

########## #每天午夜或达到20MB文件大小#时创建一个新文件,文件名为/ dataddisk5 /netscaler/log/NS/ nsmmddy .log,并为每条记录创建数字签名字段#。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每日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/组合:日志格式自定义%h%l%u [%t] " %r " %s%B " % {推荐人} i " " %{用户代理}i "

NCSA/Common: LogFormat custom %h %l %u [%t] " %r " %s %B

推荐人日志:日志格式自定义" % {推荐人}我”——> % U

用户代理:logFormat自定义%{用户代理

同样,您可以从自定义格式派生其他服务器日志格式。

定义自定义日志格式的参数

有关定义自定义日志格式的详细信息,请参阅自定义日志格式PDF表格。

注意

有关如何导出自定义HTTP标头的说明,请参阅为Web服务器日志记录配置Citrix ADC

例如,如果将日志格式定义为% +{用户代理}我,并且如果用户代理值是Citrix ADC系统Web客户端,则将信息记录为Citrix ADC系统+网络+客户端。另一种方法是使用双引号。例如,“% {用户代理} i” 将其记录为 “Citrix ADC 系统 Web 客户端”。“ 不 要在字符串上使用 %.. .r、%. . .i 和 %. . .o。它符合通用日志格式的要求。客户端可以在日志中插入控制字符。因此,在处理原始日志文件时必须小心。

时间格式定义

请参阅时间格式定义表,了解自定义日志格式表中描述的% {format} t字符串的格式部分。括号 ([ ]) 中的值显示出现的值范围。例如,下表中 %d 说明中的 [1,31] 显示了 %d 个范围介于 1 到 31 之间。

注意

如果您指定的转换与上表中描述的任何转换或下一段中列出的任何修改的转换规范不对应,则行为未定义并返回 0。

% u与% W之间的差异(以及修改后的转换率%或者与%噢之间的差异)的日期被认为是星期一。第1周是1月份的第一周(从% u的星期日开始,或% w的星期一开始)。周数0包含%u和%W的第一个星期日或星期一的前几天。

显示服务器日志

您可以配置NSWL功能以在控制台上显示服务器日志或将服务器日志重定向到Citrix ADC设备上的目录。

在控制台上显示日志的方法有两种(标准输出): 选项 1:显示控制台上的所有日志。选项 2:在控制台上仅显示带有标准输出过滤器logfilenameformat的选定日志。

在NSWL客户端系统上自定义日志记录< / span >< / span >