Personnaliser la connexion sur le système client NSWL

Vous pouvez personnaliser la journalisation sur le système client NSWL en apportant des modifications supplémentaires au fichier de configuration du client NSWL (log.conf). Utilisez un éditeur de texte pour modifier le fichier de configuration log.conf sur le système client.

Pour personnaliser la journalisation, utilisez le fichier de configuration pour définir les filtres et les propriétés du journal.

  • Filtres de journal. Filtrez les informations du journal en fonction de l’adresse IP de l’hôte, du nom de domaine et du nom d’hôte des serveurs Web.
  • Propriétés du journal. Chaque filtre a un ensemble de propriétés de journal associé. Les propriétés du journal définissent le mode de stockage des informations du journal filtrées.

Exemple de fichier de configuration

Voici un exemple de fichier de configuration :

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

Création de filtres

Vous pouvez utiliser la définition de filtre par défaut située dans le fichier de configuration (log.conf), modifier le filtre ou créer un nouveau filtre. Vous pouvez créer plusieurs filtres de journal.

Note : Lajournalisation consolidée, qui enregistre les transactions pour lesquelles aucun filtre n’est défini, utilise le filtre par défaut s’il est activé. La journalisation consolidée de tous les serveurs peut être effectuée en définissant uniquement le filtre par défaut.

Si le serveur héberge plusieurs sites Web et que chaque site Web possède son propre nom de domaine et que chaque domaine est associé à un serveur virtuel, vous pouvez configurer la journalisation du serveur Web pour créer un répertoire de journaux distinct pour chaque site Web. Le tableau suivant affiche les paramètres de création d’un filtre.

Paramètre Spécifie
Nom du filtre Nom du filtre. Le nom du filtre peut inclure des caractères alphanumériques et ne peut pas dépasser 59 caractères. Les noms de filtre de plus de 59 caractères sont tronqués à 59 caractères.
Nom HOST Nom d’hôte du serveur pour lequel les transactions sont enregistrées.
IP IP Adresse IP du serveur pour lequel les transactions doivent être consignées (par exemple, si le serveur a plusieurs domaines qui ont une adresse IP).
IP ip 2…ip n: Plusieurs adresses IP (par exemple, si le domaine du serveur a plusieurs adresses IP).
ip6 ip Adresse IPv6 du serveur pour lequel les transactions doivent être consignées.
Masque NETMASK IP IP Adresses IP et combinaison de masque de réseau à utiliser sur un sous-réseau.
ON | OFF Activez ou désactivez le filtre pour enregistrer les transactions. Si aucun argument n’est sélectionné, le filtre est activé (ON).

Tableau 1. Paramètres de création d’un filtre

Pour créer un filtre

Pour créer un filtre, entrez la commande suivante dans le fichier 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]

Pour créer un filtre pour un serveur virtuel

Pour créer un filtre pour un serveur virtuel, entrez la commande suivante dans le fichier log.conf :

filter <filterName> <VirtualServer IP address>

Exemple

Dans l’exemple suivant, vous spécifiez une adresse IP 192.168.100.0 et un masque de réseau 255.255.255.0. Le filtre s’applique aux adresses IP 192.168.100.1 à 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

Spécification des propriétés du journal

Les propriétés du journal sont appliquées à toutes les entrées du journal associées au filtre. La définition de la propriété de journal commence par le mot-clé BEGIN et se termine par END, comme illustré dans l’exemple suivant :

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

Les entrées de la définition peuvent inclure les éléments suivants :

  • LogFormat spécifie la fonctionnalité de journalisation du serveur Web qui prend en charge les formats de fichiers journaux NCSA, W3C Extended et personnalisés.

    Par défaut, la propriété logformat est w3c. Pour remplacer, entrez personnalisé ou NCSA dans le fichier de configuration, par exemple :

     LogFormat NCSA

Remarque : Pour les formats de journal NCSA et personnalisés, l’heure locale est utilisée pour horodater les transactions et pour la rotation des fichiers.

**LogInterval** spécifie les intervalles auxquels les nouveaux fichiers journaux sont créés. Utilisez l'une des valeurs suivantes :

-  Horaire : Un fichier est créé toutes les heures.
-  Quotidien : Un fichier est créé tous les jours à minuit. Valeur par défaut.
-  Hebdomadaire : Un fichier est créé tous les dimanches à minuit.
-  Mensuel : Un fichier est créé le premier jour du mois à minuit.
-  Aucun : un fichier n'est créé qu'une seule fois, lorsque la journalisation du serveur Web démarre. </span>

Exemple :

LogInterval Daily

LogFileSizeLimit spécifie la taille maximale du fichier journal en Mo. Il peut être utilisé avec n’importe quel intervalle de log (hebdomadaire, mensuel, etc.) Un fichier est créé lorsque la limite de taille maximale du fichier est atteinte ou lorsque l’intervalle de journalisation défini s’écoule.

Pour remplacer ce comportement, spécifiez la taille comme propriété loginterval afin qu’un fichier soit créé uniquement lorsque la limite de taille du fichier journal est atteinte.

La valeur par défaut LogFileSizeLimit est de 10 Mo.

Exemple :

LogFileSizeLimit 35
  • LogFileNameFormat spécifie le format de nom de fichier du fichier journal. Le nom du fichier peut être des types suivants :

    • Statique : spécifie une chaîne constante qui contient le chemin absolu et le nom du fichier.

      Dynamique : spécifie une expression contenant le format suivant :

      • Adresse IP du serveur
      • Date (%{format}t)
      • Suffixe d’URL (%x)
      • Nom d’hôte (%v)

Exemple :

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

Cette commande crée le premier nom de fichier comme Exmmddyy.log, puis chaque heure crée un fichier avec le nom de fichier : Exmmddyy.log.0, Exmmddyy.log.1,…, Exmmddyy.log.n.

Exemple :


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

Avertissement :

Le format de date%t spécifié dans la commande LogFileNameFormat remplace la propriété d’intervalle de journalisation de ce filtre. Pour empêcher la création d’un nouveau fichier tous les jours plutôt que lorsque la taille du fichier journal spécifiée est atteinte, n’utilisez pas%t dans LogFileNameFormat.

  • LogExclude empêche l’enregistrement des transactions avec les extensions de fichier spécifiées.

Exemple :

     LogExclude .html

Cette commande crée un fichier journal qui exclut les transactions de journal pour les fichiers*.html.

LogTime spécifie l’heure du journal en tant que GMT ou LOCAL.

Les valeurs par défaut sont :

- Format du fichier journal de la  NCSA : LOCAL
- Format du fichier journal  W3C : GMT.

Présentation des formats de journaux NCSA et W3C

Citrix ADC prend en charge les formats de fichier journal standard suivants :

  • Format journal commun de la NCSA
  • Format de journal étendu W3C

Format journal commun de la NCSA

Si le format de fichier journal est NCSA, le fichier journal affiche les informations de journal dans le format suivant :

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

Pour utiliser le format journal commun NCSA, entrez NCSA dans l’argument LogFormat dans le fichier log.conf.

Le tableau suivant décrit le format de journal commun de la NCSA.

Argument Spécifie
Client_IP_Adresse_client Adresse IP de l’ordinateur client.
Nom d’utilisateur Nom d’utilisateur.
Date Date de la transaction.
Heure Heure à laquelle la transaction a été terminée.
Fuseau horaire Le fuseau horaire (heure moyenne de Greenwich ou heure locale).
Méthode La méthode de requête (par exemple ; GET, POST).
Objet L’URL.
HTTP_version Version de HTTP utilisée par le client.
Code HTTP_status Code d’état de la réponse.
Octets envoyés Nombre d’octets envoyés à partir du serveur.

Format de journal étendu W3C

Un fichier journal étendu contient une séquence de lignes contenant des caractères ASCII terminées par un saut de ligne (LF) ou la séquence Carriage Return Line Feed (CRLF). Les générateurs de fichiers journaux doivent suivre la convention de terminaison de ligne de la plate-forme sur laquelle ils sont exécutés.

Les analyseurs de log doivent accepter le formulaire LF ou CRLF. Chaque ligne peut contenir soit une directive, soit une entrée. Si vous souhaitez utiliser le format de journal étendu W3C, entrez W3C comme argument Log Format dans le fichier log.conf.

Par défaut, le format de journal standard W3C est défini en interne comme le format de journal personnalisé, illustré comme suit :

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

Vous pouvez également modifier l’ordre ou supprimer certains champs dans ce format de journal W3C. Par exemple :

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

Les entrées du journal W3C sont créées avec le format suivant :

#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

Entrées

Les entrées consistent en une séquence de champs relatifs à une seule transaction HTTP. Les champs sont séparés par des espaces blancs ; Citrix recommande l’utilisation de caractères de tabulation. Si un champ d’une entrée particulière n’est pas utilisé, un tiret (-) marque le champ omis.

Directives

Reportez-vous aux informationsDirectivesde la table fpr sur le processus de journalisation. Les lignes commençant par le signe dièse (#) contiennent des directives.

Exemple :

L’exemple de fichier journal suivant montre les entrées de journal au format de journal étendu 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

Champs

La directive Fields répertorie une séquence d’identificateurs de champ qui spécifient les informations enregistrées dans chaque entrée. Les identificateurs de champ peuvent avoir l’un des formulaires suivants :

  • identificateur : se rapporte à l’ensemble de la transaction.
  • prefix-identifier : concerne le transfert d’informations entre les parties définies par le préfixe de valeur.
  • prefix (header) : Spécifie la valeur de l’en-tête de champ d’en-tête HTTP pour le transfert entre les parties définies par le préfixe de valeur. Les champs spécifiés de cette manière ont toujours le type.

Le tableau suivant décrit les préfixes définis.

Préfixe Spécifie
c Client
s Serveur
r Distant
cs Client vers serveur
sc Serveur vers client
sr Serveur vers serveur distant (préfixe utilisé par les proxy)
rs Serveur distant à serveur (préfixe utilisé par les proxy)
x Identificateur spécifique à l’application

Exemples :

Les exemples suivants sont des identificateurs définis qui utilisent des préfixes :

cs-method : La méthode dans la requête envoyée par le client au serveur.

sc (Referer) : Le champ Referer dans la réponse.

c-ip : L’adresse IP du client.

Identificateurs

Le tableau suivant décrit les identificateurs de format journal étendu W3C qui ne nécessitent pas de préfixe.

Identificateur Description
date Date à laquelle la transaction a été effectuée.
temps Heure à laquelle la transaction est effectuée.
prise de temps Temps pris (en secondes) pour la fin de la transaction.
octets Nombre d’octets transférés.
mis en cache Enregistre si un accès au cache s’est produit. Un zéro indique une absence de cache.

Tableau 5. Identificateurs de format de journal étendu W3C (aucun préfixe requis)

Le tableau suivant décrit les identificateurs de format journal étendu W3C qui nécessitent un préfixe.

Identificateur Description
Adresse IP L’adresse IP et le numéro de port.
dns Nom DNS.
état Code d’état.
commentaire Le commentaire retourné avec le code d’état.
méthode La méthode.
URL L’URL.
tige d’URL La partie de la tige de l’URL.
requête URL Partie requête de l’URL.

Tableau 6. Identificateurs de format de journal étendu W3C (nécessite un préfixe)

Le format de fichier journal étendu W3C vous permet de choisir des champs de journal. Ces champs sont présentés dans le tableau suivant.

Champ Description
Date Date à laquelle la transaction est effectuée.
Heure Heure à laquelle la transaction est effectuée.
IP du client Adresse IP du client.
Nom d’utilisateur Nom d’utilisateur.
Nom du service Le nom du service, qui est toujours HTTP.
IP du serveur Adresse IP du serveur.
Port du serveur Numéro de port du serveur
Méthode La méthode de requête (par exemple ; GET, POST).
Potence Url La tige d’URL.
Requête d’URL Partie requête de l’URL.
Statut Http Code d’état de la réponse.
Octets envoyés Nombre d’octets envoyés au serveur (taille de la requête, y compris les en-têtes HTTP).
Octets reçus Nombre d’octets reçus du serveur (taille de réponse, y compris les en-têtes HTTP).
Temps pris Temps nécessaire à la fin de la transaction, en secondes.
Version du protocole Numéro de version de HTTP utilisé par le client.
Agent utilisateur Champ User-Agent dans le protocole HTTP.
Cookie Le champ Cookie du protocole HTTP.
Référent Champ Referer du protocole HTTP.

Tableau 7. Format de fichier journal étendu W3C (autorise les champs de journal)

Création d’un format de journal personnalisé

Vous pouvez personnaliser le format d’affichage des données du fichier journal manuellement ou à l’aide de la bibliothèque NSWL. En utilisant le format de journal personnalisé, vous pouvez dériver la plupart des formats de journal actuellement pris en charge par Apache.

Création d’un format de journal personnalisé à l’aide de la bibliothèque NSWL

Utilisez l’une des bibliothèques NSWL suivantes selon que l’exécutable NSWL a été installé sur un ordinateur hôte Windows ou Solaris :

  • Windows : bibliothèque nswl.lib située dans le répertoire nsbin sur l’ordinateur hôte du gestionnaire système.
  • Solaris : bibliothèque libnswl.a située dans /usr/local/netscaler/bin.

Pour créer le format de journal personnalisé à l’aide de la bibliothèque NSWL

  1. Ajoutez les deux fonctions C suivantes définies par le système dans un fichier source C :

    NS_UserDeffieldName () : Cette fonction renvoie la chaîne qui doit être ajoutée en tant que nom de champ personnalisé dans l’enregistrement du journal.

    NS_UserDeffielDval () : Cette fonction implémente la valeur du champ personnalisé, puis la renvoie sous la forme d’une chaîne qui doit être ajoutée à la fin de l’enregistrement de journal.

  2. Compilez le fichier dans un fichier objet.

  3. Liez le fichier objet avec la bibliothèque NSWL (et éventuellement avec des bibliothèques tierces) pour former un nouvel exécutable NSWL.

  4. Ajoutez une chaîne %d à la fin de la chaîne LogFormat dans le fichier de configuration (log.conf).

Exemple :

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

Création manuelle d’un format de journal personnalisé

Pour personnaliser le format dans lequel les données du fichier journal doivent apparaître, spécifiez une chaîne de caractères comme argument de la définition de la propriété journal LogFormat. Voici un exemple où des chaînes de caractères sont utilisées pour créer un format de journal :

LogFormat Custom ""%a - "%{user-agent}i" %[%d/%m/%Y]t %U %s %b %T"
  • La chaîne peut contenir les caractères de contrôle de type « c » n et t pour représenter de nouvelles lignes et tabulations.
  • Utilisez la touche Echap avec des guillemets littéraux et des barres obliques inverses.

Les caractéristiques de la demande sont consignées en plaçant les directions% dans la chaîne de format, qui sont remplacées dans le fichier journal par les valeurs.

Si le spécificateur de format%v (nom d’hôte) ou%x (suffixe d’URL) est présent dans une chaîne de format de nom de fichier journal, les caractères suivants du nom de fichier sont remplacés par un symbole de trait de soulignement dans le nom du fichier de configuration du journal :

” * . / : < > ? \

Les caractères dont les valeurs ASCII se situent entre 0 et 31 sont remplacés par ce qui suit :

%<ASCII value of character in hexadecimal>.

Par exemple, le caractère avec la valeur ASCII 22 est remplacé par%16.

Attention :

Si le spécificateur de format%v est présent dans une chaîne de format de nom de fichier journal, un fichier distinct est ouvert pour chaque hôte virtuel. Pour garantir une journalisation continue, le nombre maximal de fichiers qu’un processus peut ouvrir doit être suffisamment grand. Consultez la documentation de votre système d’exploitation pour obtenir une procédure permettant de modifier le nombre de fichiers pouvant être ouverts.

Création de formats de journal Apache

Vous pouvez dériver à partir des journaux personnalisés la plupart des formats de journaux qu’Apache prend actuellement en charge. Les formats de journal personnalisés qui correspondent aux formats de journal Apache sont les suivants :

NCSA/combiné : personnel%h%l%u [%t] « %r » %s%b «  % {referer} i » «  % {user-agent} i »

NCSA/Commun : personnel%h%l%u [%t] « %r » %s%b

Journal des référents : LogFormat personnalisé «  % {referer} i » ->%U

Agent utilisateur : LogFormat personnalisé% {user-agent} i

De même, vous pouvez dériver les autres formats de journal du serveur à partir des formats personnalisés.

Arguments de définition d’un format de journal personnalisé

Reportez-vous au tableauFormat de journal personnalisépdf pour plus d’informations sur la définition d’un format de journal personnalisé.

Remarque :

Pour obtenir des instructions sur l’exportation d’en-têtes HTTP personnalisés, consultez Configuration de Citrix ADC pour la journalisation du serveur Web

Par exemple, si vous définissez le format du journal en%+ {user-agent} i, et si la valeur de l’agent utilisateur est Citrix ADC System Web Client, les informations sont enregistrées en tant que Citrix ADC System+Web+Client. Une alternative consiste à utiliser des guillemets doubles. Par exemple, «  % {user-agent} i » le consigne en tant que « Client Web système Citrix ADC ». N’utilisez pas la touche <Esc> sur les chaînes de %.. .r, %. . .i et, %. . .o. Ceci est conforme aux exigences du format journal commun. Notez que les clients peuvent insérer des caractères de contrôle dans le journal. Par conséquent, vous devez faire attention lorsque vous travaillez avec des fichiers journaux bruts.

Définition du format temporel

Reportez-vous auDéfinition du format temporeltableau pour connaître la partie format de la chaîne % {format} t décrite dans le tableau Format journal personnalisé. Les valeurs entre crochets ([ ]) indiquent la plage de valeurs qui s’affichent. Par exemple,[1,31]dans la description de%d du tableau suivant affiche%d plages comprises entre 1 et 31.

Remarque :

Si vous spécifiez une conversion qui ne correspond à aucune des conversions décrites dans le tableau précédent ou à l’une des spécifications de conversion modifiées répertoriées dans le paragraphe suivant, le comportement est indéfini et renvoie 0.

La différence entre%U et%W (ainsi que entre les conversions modifiées%OU et%OW) est le jour considéré comme le premier jour de la semaine. La semaine numéro 1 est la première semaine de janvier (commençant par un dimanche pour%U ou un lundi pour%W). La semaine numéro 0 contient les jours précédant le premier dimanche ou lundi de janvier pour%U et%W.

Affichage des journaux du serveur

Vous pouvez configurer une fonctionnalité NSWL (Citrix ADC Web Logging) pour afficher les journaux du serveur sur la console ou rediriger les journaux du serveur vers un répertoire sur l’appliance Citrix ADC.

Il existe deux façons d’afficher les journaux sur la console (sortie standard) : Option 1 : Afficher tous les journaux sur la console. Option 2 : affiche uniquement les journaux sélectionnés sur la console où les filtres avec logfilenameformat STDOUT.