Citrix ADC

Personalizar el registro en el sistema cliente NSWL

Puede personalizar el registro en el sistema cliente Citrix ADC Web Logging (NSWL) realizando más modificaciones en el archivo de configuración del cliente NSWL (log.conf). Utilice un editor de texto para modificar el archivo de configuración log.conf en el sistema cliente.

Para personalizar el registro, use el archivo de configuración para definir los filtros y las propiedades del registro.

  • Filtros de registro. Filtre la información de registro en función de la dirección IP del host, el nombre de dominio y el nombre de host de los servidores web.
  • Propiedades de registro. Cada filtro tiene un conjunto asociado de propiedades de registro. Las propiedades de registro definen cómo almacenar la información de registro filtrada.

Archivo de configuración de ejemplo

A continuación se muestra un archivo de configuración de ejemplo:

##########
# 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 ##########
<!--NeedCopy-->

Creación de filtros

Puede utilizar la definición de filtro predeterminada en el archivo de configuración (log.conf) o bien modificar el filtro o crear un filtro. Puede crear más de un filtro de registro.

Nota

El registro consolidado, que registra las transacciones para las que no se ha definido ningún filtro, utiliza el filtro predeterminado si está habilitado. El registro consolidado de todos los servidores se puede realizar al definir solo el filtro predeterminado.

Si el servidor aloja varios sitios web y cada sitio web tiene su propio nombre de dominio y cada dominio está asociado a un servidor virtual, puede configurar el registro del servidor web para crear un directorio de registro independiente para cada sitio web. En la siguiente tabla se muestran los parámetros para crear un filtro.

Parámetro Especifica
Nombre del filtro Nombre del filtro. El nombre del filtro puede incluir caracteres alfanuméricos y no puede tener más de 59 caracteres. Los nombres de filtro de más de 59 caracteres se truncan a 59 caracteres.
Nombre de host Nombre de host del servidor para el que se registran las transacciones.
IP ip Dirección IP del servidor para el que se van a registrar las transacciones (por ejemplo, si el servidor tiene varios dominios que tienen una dirección IP).
IP ip 2...ip n: Varias direcciones IP (por ejemplo, si el dominio del servidor tiene varias direcciones IP).
ip6 IP Dirección IPv6 del servidor para el que se van a registrar las transacciones.
IP ip NETMASK mask Combinación de direcciones IP y máscara de red que se utilizará en una subred.
ON | OFF Habilite o inhabilite el filtro para registrar transacciones. Si no se selecciona ningún argumento, el filtro se habilita (ACTIVADO).

Tabla 1. Parámetros para crear un filtro

Para crear un filtro

Para crear un filtro, introduzca el siguiente comando en el archivo log.conf:

  • 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]

Para crear un filtro para un servidor virtual

Para crear un filtro para un servidor virtual, introduzca el siguiente comando en el archivo log.conf:

filter <filterName> <VirtualServer IP address>

Ejemplo

En el siguiente ejemplo, especifica una dirección IP de 192.168.100.0 y una máscara de red de 255.255.255.0. El filtro se aplica a las direcciones IP 192.168.100.1 a 192.168.100.254.

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

<!--NeedCopy-->

Especificación de propiedades de registro

Las propiedades de registro se aplican a todas las entradas de registro asociadas al filtro. La definición de la propiedad de registro comienza con la palabra clave BEGIN y termina por END, como se ilustra en el siguiente ejemplo:

BEGIN <filtername>
 logFormat ...
 logFilenameFormat ...
 logInterval ...
 logFileSize ....
 logExclude ....
 logTime ….
 END
<!--NeedCopy-->

Las entradas de la definición pueden incluir lo siguiente:

- LogFormat especifica la función de registro del servidor web que admite los formatos de archivo de registro NCSA, W3C Extended y personalizados.

By default, the `logformat` property is w3c. To override, enter custom or NCSA in the configuration file, for example:
     LogFormat NCSA
<!--NeedCopy-->

Nota

Para los formatos de registro NCSA y personalizados, la hora local se utiliza para las transacciones de marca de tiempo y para la rotación de archivos.

  • LogInterval especifica los intervalos en los que se crean los nuevos archivos de registros. Use uno de los valores siguientes:

    • Cada hora: se crea un archivo cada hora.
    • Diariamente: se crea un archivo todos los días a medianoche. Este es el valor predeterminado.
    • Semanalmente: se crea un archivo todos los domingos a medianoche.
    • Mensualmente: se crea un archivo el primer día del mes a medianoche.
    • Ninguno: un archivo se crea solo una vez, cuando se inicia el registro del servidor web.</span>

Ejemplo:

LogInterval Daily
<!--NeedCopy-->

LogFileSizeLimit especifica el tamaño máximo del archivo de registros en MB. Se puede usar con cualquier intervalo de registro (semanal, mensual, etc.). Un archivo se crea cuando se alcanza el límite máximo de tamaño de archivo o cuando transcurre el tiempo del intervalo de registro definido.

Para anular este comportamiento, especifique el tamaño como propiedad loginterval de modo que se cree un archivo solo cuando se alcanza el límite de tamaño del archivo de registros.

El valor predeterminado de LogFileSizelimit es de 10 MB.

Ejemplo:

LogFileSizeLimit 35
<!--NeedCopy-->
  • LogFilenameFormat especifica el formato de nombre de archivo del archivo de registros. El nombre del archivo puede ser de los siguientes tipos:

    • Estático: especifica una cadena constante que contiene la ruta absoluta y el nombre del archivo.

      Dinámico: especifica una expresión que contiene el siguiente formato:

      • Dirección IP del servidor
      • Fecha (% {format} t)
      • Sufijo de URL (%x)
      • Nombre de host (%v)

Ejemplo:

LogFileNameFormat Ex%`{`%m%d%y}t.log
<!--NeedCopy-->

Este comando crea el primer nombre de archivo como Exmmddyy.log y, a continuación, cada hora crea un archivo con un nombre de archivo: Exmmddyy.log.0, Exmmddyy.log.1,…, Exmmddyy.log.n.

Ejemplo:


     LogInterval size
     LogFileSize 100
     LogFileNameFormat Ex%`{`%m%d%y}t
<!--NeedCopy-->

Precaución

El formato de fecha%t especificado en el comando LogFilenameFormat reemplaza la propiedad de intervalo de registro para ese filtro. Para evitar que se cree un nuevo archivo todos los días en lugar de cuando se alcance el tamaño del archivo de registros especificado, no util%t en LogFilenameFormat.

  • LogExclude evita el registro de transacciones con las extensiones de nombre de archivo especificadas.

Ejemplo:

     LogExclude .html
<!--NeedCopy-->

Este comando crea un archivo de registros que excluye las transacciones de registro de los archivos*.html.

LogTime especifica el tiempo de registro como GMT o LOCAL.

Los valores predeterminados son:

  • Formato de archivo de registros NCSA: LOCAL
  • Formato del archivo de registros del W3C: GMT.

Comprender los formatos de registro NCSA y W3C

Citrix ADC admite los siguientes formatos de archivo de registros estándar:

  • Formato de registro común de NCSA
  • Formato de registro extendido del W3C

Formato de registro común de NCSA

Si el formato del archivo de registros es NCSA, el archivo de registros muestra la información de registro en el siguiente formato:

Client_IP_address -User_Name [Date:Time -TimeZone] "Method Object HTTP_version" HTTP_StatusCode BytesSent
<!--NeedCopy-->

Para usar el formato de registro común de NCSA, introduzca NCSA en el argumento LogFormat del archivo log.conf.

En la siguiente tabla se describe el formato de registro común de NCSA.

Argumento Qué especifica
Client_IP_address La dirección IP del equipo cliente.
User Name El nombre de usuario.
Date La fecha de la transacción.
Time La hora en que se completó la transacción.
Time Zone La zona horaria (hora del meridiano de Greenwich u hora local).
Method El método de solicitud (por ejemplo, GET, POST).
Object La URL.
HTTP_version La versión de HTTP que utiliza el cliente.
HTTP_StatusCode El código de estado de la respuesta.
Bytes Sent La cantidad de bytes enviados desde el servidor.

Formato de registro extendido del W3C

Un archivo de registros extendido contiene una secuencia de líneas que contienen caracteres ASCII terminados por un salto de línea (LF) o la secuencia Avance de línea de retorno de carro (CRLF). Los generadores de archivos de registros deben seguir la convención de terminación de línea para la plataforma en la que se ejecutan.

Los analizadores de troncos deben aceptar el formulario LF o CRLF. Cada línea puede contener una directiva o una entrada. Si quiere utilizar el formato de registro extendido de W3C, escriba W3C como argumento Log-Format en el archivo log.conf.

De forma predeterminada, el formato de registro estándar del W3C se define internamente como el formato de registro personalizado, que se muestra a continuación:

%`{`%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
<!--NeedCopy-->

También puede cambiar el orden o eliminar algunos campos en este formato de registro del W3C. Por ejemplo:

logFormat W3C %`{`%Y-%m-%d%H:%M:%S}t %m %U
<!--NeedCopy-->

Las entradas de registro del W3C se crean con el siguiente formato:

#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
<!--NeedCopy-->

Entradas

Las entradas consisten en una secuencia de campos relacionados con una única transacción HTTP. Los campos están separados por espacios en blanco. Citrix recomienda el uso de caracteres de tabulación. Si no se utiliza un campo de una entrada determinada, un guión (-) marca el campo omitido.

Directivas

Consulte la tabla Directivas para obtener información sobre el proceso de registro. Las líneas que comienzan con almohadillas (#) contienen directivas.

Ejemplo:

El siguiente archivo de registros de ejemplo muestra las entradas de registro en formato de registro extendido W3C:

#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
<!--NeedCopy-->

Campos

La directiva Fields muestra una secuencia de identificadores de campo que especifican la información registrada en cada entrada. Los identificadores de campo pueden tener uno de los siguientes formularios:

  • identificador: se relaciona con la transacción en su conjunto.
  • prefijo-identificador: se refiere a la transferencia de información entre partes definida por el prefijo de valor.
  • prefijo (encabezado): especifica el valor del encabezado del campo de encabezado HTTP para la transferencia entre partes definido por el prefijo de valor. Los campos especificados de esta manera siempre tienen el tipo.

En la siguiente tabla se describen los prefijos definidos.

Prefix Especifica
c Cliente
s Servidor
r Remota
cs De cliente a servidor
sc De servidor a cliente
sr De servidor a servidor remoto (prefijo utilizado por los proxies)
rs De servidor a servidor remoto (prefijo utilizado por los proxies)
x Identificador específico de la aplicación

Ejemplos:

Los siguientes ejemplos son identificadores definidos que usan prefijos:

cs-method: El método en la solicitud enviada por el cliente al servidor.

sc(Referer): El campo Referer de la respuesta.

c-ip: La dirección IP del cliente.

Identificadores

En la siguiente tabla se describen los identificadores de formato de registro extendido del W3C que no requieren un prefijo.

Identificador Descripción
fecha Fecha en la que se realizó la transacción.
tiempo La hora en que se realiza la transacción.
tomado el tiempo El tiempo que tarda (en segundos) la transacción en completarse.
bytes El número de bytes transferidos.
en caché Registra si se ha producido una coincidencia en la caché. Un cero indica un error en la memoria caché.

Tabla 5. Identificadores de formato de registro extendido del W3C (no se requiere prefijo)

En la siguiente tabla se describen los identificadores de formato de registro extendido del W3C que requieren un prefijo.

Identificador Descripción
IP La dirección IP y el número de puerto.
DNS El nombre DNS.
estado El código de estado.
comentario El comentario se ha devuelto con un código de estado.
método El método.
url La URL.
url-tallo La parte principal de la URL.
url-consulta La parte de consulta de la URL.

Tabla 6. Identificadores de formato de registro extendido del W3C (requiere un prefijo)

El formato de archivo de registros extendido del W3C le permite elegir campos de registro. Estos campos se muestran en la siguiente tabla.

Campo Descripción
Fecha Fecha en la que se realiza la transacción.
Hora La hora en que se realiza la transacción.
Client IP La dirección IP del cliente.
Nombre de usuario El nombre de usuario.
Nombre del servicio El nombre del servicio, que siempre es HTTP.
IP de servidor La dirección IP del servidor.
Puerto del servidor El número de puerto del servidor
Método El método de solicitud (por ejemplo, GET, POST).
Vástago URL La raíz de la URL.
Consulta de URL La parte de consulta de la URL.
Estado HTTP El código de estado de la respuesta.
Bytes enviados La cantidad de bytes enviados al servidor (tamaño de la solicitud, incluidos los encabezados HTTP).
Bytes recibidos La cantidad de bytes recibidos del servidor (tamaño de respuesta, incluidos los encabezados HTTP).
Tiempo tomado El tiempo que tarda una transacción en completarse, en segundos.
Versión del protocolo El número de versión de HTTP que utiliza el cliente.
Agente de usuario El campo User-Agent del protocolo HTTP.
Cookie El campo Cookie del protocolo HTTP.
Referer El campo Referer del protocolo HTTP.

Tabla 7. Formato de archivo de registro extendido del W3C (permite campos de registro)

Creación de un formato de registro personalizado

Puede personalizar el formato de visualización de los datos del archivo de registros manualmente o mediante la biblioteca NSWL. Al usar el formato de registro personalizado, puede derivar la mayoría de los formatos de registro que Apache admite actualmente.

Crear un formato de registro personalizado mediante la biblioteca NSWL

Utilice una de las siguientes bibliotecas NSWL dependiendo de si el ejecutable NSWL se ha instalado en un equipo host Windows o Solaris:

  • Windows: biblioteca nswl.lib del directorio\ ns\ bin del equipo host del administrador del sistema.
  • Solaris: La biblioteca libnswl.a en /usr/local/netscaler/bin.

Para crear el formato de registro personalizado mediante la biblioteca NSWL

  1. Agregue las siguientes dos funciones C definidas por el sistema en un archivo fuente C:

    NS_userDeffieldName (): Esta función devuelve la cadena que debe agregarse como nombre de campo personalizado en el registro de registro.

    NS_userDeffieldVal (): Esta función implementa el valor de campo personalizado y, a continuación, lo devuelve como una cadena que debe agregarse al final del registro de registro.

  2. Compilar el archivo en un archivo de objeto.

  3. Vincule el archivo objeto con la biblioteca NSWL (y, opcionalmente, con bibliotecas de terceros) para formar un nuevo ejecutable NSWL.

  4. Agregue una cadena %d al final de la cadena LogFormat en el archivo de configuración (log.conf).

Ejemplo:

##########
# 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
<!--NeedCopy-->

Creación manual de un formato de registro personalizado

Para personalizar el formato en el que deben aparecer los datos del archivo de registros, especifique una cadena de caracteres como argumento de la definición de propiedad de registro LogFormat. A continuación se muestra un ejemplo en el que se utilizan cadenas de caracteres para crear un formato de registro:

LogFormat Custom ""%a - "%{user-agent}i" %[%d/%m/%Y]t %U %s %b %T"
<!--NeedCopy-->
  • La cadena puede contener los caracteres de control de tipo “c”\ n y\ t para representar nuevas líneas y fichas.
  • Use la tecla Esc con comillas literales y barras invertidas.

Las funciones de la solicitud se registran colocando directivas % en la cadena de formato, que se sustituyen en el archivo de registros por los valores.

Si el especificador de formato%v (nombre de host) o%x (sufijo de URL) está presente en una cadena de formato de nombre de archivo de registros, los siguientes caracteres del nombre de archivo se sustituyen por un símbolo de subrayado en el nombre del archivo de configuración de registro:

” *. /: < > ? \

Los caracteres cuyos valores ASCII se encuentran en el intervalo de 0 a 31 se sustituyen por los siguientes:

%<ASCII value of character in hexadecimal>.

Por ejemplo, el carácter con el valor ASCII 22 se reemplaza por%16.

Precaución

Si el especificador de formato%v está presente en una cadena de formato de nombre de archivo de registros, se abre un archivo independiente para cada host virtual. Para garantizar el registro continuo, el número máximo de archivos que un proceso puede tener abierto debe ser lo suficientemente grande. Consulte la documentación del sistema operativo para ver un procedimiento para cambiar el número de archivos que se pueden abrir.

Creación de formatos de registro de Apache

Puede derivar de los registros personalizados la mayoría de los formatos de registro que Apache admite actualmente. Los formatos de registro personalizados que coinciden con los formatos de registro de Apache son:

NCSA/Combinado: LogFormat personalizado%h%l%u [%t] “%r” %s%b “% {referer} i” “% {user-agent} i”

NCSA/Common: LogFormat personalizado%h%l%u [%t] “%r” %s%b

Referer Registro: LogFormat personalizado “% {referer} i” ->%U

Agente de usuario: LogFormat custom% {user-agent} i

Del mismo modo, puede derivar los otros formatos de registro del servidor a partir de los formatos personalizados.

Argumentos para definir un formato de registro personalizado

Consulte la tabla PDF Formato de registro personalizado para obtener más información sobre cómo definir un formato de registro personalizado.

Nota

Para obtener instrucciones sobre cómo exportar encabezados HTTP personalizados, consulte Configuración de Citrix ADC para el registro del servidor web

Por ejemplo, si define el formato de registro como %+{user-agent}i, y si el valor del agente de usuario es Citrix ADC system Web Client, la información se registra como Citrix ADC System+Web+Client. Una alternativa es usar comillas dobles. Por ejemplo, “%{user-agent}i” lo registra como “Cliente web del sistema Citrix ADC”. No utilice la tecla <Esc> en cadenas de %.. .r, %. . .i y %. . .o. Cumple con los requisitos del formato de registro común. Los clientes pueden insertar caracteres de control en el registro. Por lo tanto, debe tener cuidado al trabajar con archivos de registros sin procesar.

Definición de formato de hora

Consulte la tabla Definición de formato de hora para conocer la parte de formato de la cadena% {format} t descrita en la tabla Formato de registro personalizado. Los valores entre corchetes ([ ]) muestran el rango de valores que aparecen. Por ejemplo, [1,31] en la descripción %d de la siguiente tabla muestra %d rangos de 1 a 31.

Nota

Si especifica una conversión que no corresponde a ninguna de las descritas en la tabla anterior o a ninguna de las especificaciones de conversión modificadas enumeradas en el párrafo siguiente, el comportamiento no está definido y devuelve 0.

La diferencia entre %U y %W (y también entre las conversiones modificadas %OU y %OW) es el día que se considera el primer día de la semana. La semana número 1 es la primera semana de enero (comienza con un domingo para %U o un lunes para %W). El número de semana 0 contiene los días anteriores al primer domingo o lunes de enero para %U y %W.

Visualización de registros del servidor

Puede configurar una función NSWL para mostrar los registros del servidor en la consola o redirigir los registros del servidor a un directorio del dispositivo Citrix ADC.

Hay dos formas de mostrar los registros en la consola (salida estándar): Opción 1: Mostrar todos los registros en la consola. Opción 2: Mostrar solo los registros seleccionados en la consola con filtros con logfilenameformat como STDOUT.