Citrix ADC

Personalizar el registro en el sistema cliente NSWL

Puede personalizar el registro en el sistema cliente NSWL realizando modificaciones adicionales 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, utilice el archivo de configuración para definir filtros y propiedades de registro.

  • Filtros de registro. Filtrar 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 ##########

Creación de filtros

Puede utilizar la definición de filtro predeterminada ubicada en el archivo de configuración (log.conf), o bien puede modificar el filtro o crear un nuevo 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 HOST Nombre de host del servidor para el que se registran las transacciones.
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.
Máscara IP IP NETMASK Direcciones IP y combinación de máscara de red que se utilizarán en una subred.
ON | OFF Habilite o inhabilite el filtro para registrar transacciones. Si no se selecciona ningún argumento, el filtro está activado (ON).

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 ejemplo siguiente, especifique una dirección IP 192.168.100.0 y una máscara de red 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

Especificación de propiedades de registro

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

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

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

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

    De forma predeterminada, la propiedad logformat es w3c. Para sustituir, introduzca personalizado o NCSA en el archivo de configuración, por ejemplo:

     LogFormat NCSA

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

  • LogInterval especifica los intervalos a los que se crean nuevos archivos de registro. Utilice uno de los siguientes valores:

    • Cada hora: Se crea un archivo cada hora.
    • Diario: Se crea un archivo todos los días a medianoche. Este es el valor predeterminado.
    • Semanal: Cada domingo a medianoche se crea un archivo.
    • Mensual: 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

LogFileSizelimit especifica el tamaño máximo del archivo de registro 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 la propiedad loginterval para que un archivo se cree solo cuando se alcance el límite de tamaño del archivo de registro.

El valor predeterminado de LogFileSizelimit es de 10 MB.

Ejemplo:

LogFileSizeLimit 35
  • LogFileNameFormat especifica el formato de nombre de archivo del archivo de registro. El nombre del archivo puede ser de los siguientes tipos:

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

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

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

Ejemplo:

LogFileNameFormat Ex%`{`%m%d%y}t.log

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

Ejemplo:


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

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 registro especificado, no util%t en LogFileNameFormat.

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

Ejemplo:

     LogExclude .html

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

LogTime especifica la hora de registro como GMT o LOCAL.

Los valores predeterminados son:

  • Formato de archivo de registro NCSA: LOC
  • Formato de archivo de registro W3C: GMT.

Descripción de los formatos de registro NCSA y W3C

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

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

Formato de registro común de NCSA

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

Client_IP_address -User_Name [Date:Time -TimeZone] "Method Object HTTP_version" HTTP_StatusCode BytesSent

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

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

Argumento Especifica
Client_dirección_IP_cliente La dirección IP del equipo cliente.
Nombre de usuario El nombre de usuario.
Fecha La fecha de la transacción.
Hora Hora en la que se completó la transacción.
Zona horaria La zona horaria (hora media de Greenwich o hora local).
Método El método request (por ejemplo; GET, POST).
Objeto La URL.
Versión HTTP Versión de HTTP utilizada por el cliente.
Http_statusCode El código de estado de la respuesta.
Bytes enviados El número de bytes enviados desde el servidor.

Formato de registro extendido W3C

Un archivo de registro extendido contiene una secuencia de líneas que contienen caracteres ASCII terminados por un avance de línea (LF) o la secuencia de avance de línea de retorno de carro (CRLF). Los generadores de archivos de registro 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 W3C estándar se define internamente como el formato de registro personalizado, que se muestra de la siguiente manera:

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

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

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

Las entradas de registro 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

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 el signo de libra (#) contienen directivas.

Ejemplo:

El siguiente archivo de registro 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

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.
  • prefix-identifier: Se relaciona con la transferencia de información entre partes definida por el prefijo de valor.
  • prefix (header): especifica el valor del encabezado de campo de encabezado HTTP para la transferencia entre partes definidas por el prefijo de valor. Los campos especificados de esta manera siempre tienen el tipo.

En la tabla siguiente se describen los prefijos definidos.

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

Ejemplos:

Los siguientes ejemplos son identificadores definidos que utilizan prefijos:

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

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

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

Identificadores

En la siguiente tabla se describen los identificadores de formato de registro extendido 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.
tiempo tomado El tiempo que se tarda (en segundos) en completar la transacción.
bytes El número de bytes transferidos.
en caché Registra si se ha producido un golpe de caché. Un cero indica una pérdida de caché.

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

En la siguiente tabla se describen los identificadores de formato de registro extendido de 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 devuelto con código de estado.
método El método.
URL La URL.
url-stem La parte madre de la URL.
consulta url- La parte de consulta de la URL.

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

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

Campo Descripción
Fecha La fecha en la que se realiza la transacción.
Hora La hora en que se realiza la transacción.
IP del cliente 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 request (por ejemplo; GET, POST).
Origen de URL El origen de URL.
Consulta de URL La parte de consulta de la URL.
Estado Http El código de estado de la respuesta.
Bytes enviados Número de bytes enviados al servidor (tamaño de solicitud, incluidos los encabezados HTTP).
Bytes recibidos Número de bytes recibidos del servidor (tamaño de respuesta, incluidos los encabezados HTTP).
Tiempo tomado Tiempo necesario para completar la transacción, 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 en el protocolo HTTP.
Galleta El campo Cookie del protocolo HTTP.
Referente El campo Referer del protocolo HTTP.

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

Crear un formato de registro personalizado

Puede personalizar el formato de visualización de los datos del archivo de registro manualmente o mediante la biblioteca NSWL. Mediante el uso del 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: la biblioteca nswl.lib ubicada en el directorio nsbin en el equipo host del administrador del sistema.
  • Solaris: la biblioteca libnswl.a ubicada 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 se debe agregar como un nombre de campo personalizado en el registro de registro.

    NS_UserDefFieldVal (): Esta función implementa el valor de campo personalizado, luego 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

Creación manual de un formato de registro personalizado

Para personalizar el formato en el que deben aparecer los datos del archivo de registro, 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"
  • 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 % directives en la cadena de formato, que se reemplazan en el archivo de registro 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 registro, 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 registro, 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 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 soporta 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

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

Useragent: 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 en 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 del Citrix ADC para el registro de servidores 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 “Citrix ADC system Web Client”. No utilice la <Esc> clave en cadenas de%.. .r,%. .i y,%. .o. Esto cumple con los requisitos del formato común de registro. Tenga en cuenta que los clientes pueden insertar caracteres de control en el registro. Por lo tanto, debe tener cuidado al trabajar con archivos de registro 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 tabla siguiente muestra rangos %d 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 conversiones modificadas %OU y %OW) es el día considerado el primer día de la semana. La semana número 1 es la primera semana de enero (comenzando 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 de servidor

Puede configurar una función Citrix ADC Web Logging (NSWL) para mostrar los registros del servidor en la consola o redirigir los registros del servidor a un directorio en el 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 donde se filtra con logfilenameformat como STDOUT.