ADC

Anpassen der Protokollierung auf dem NSWL-Clientsystem

Sie können die Anmeldung am NetScaler Web Logging (NSWL) -Clientsystem anpassen, indem Sie weitere Änderungen an der NSWL-Clientkonfigurationsdatei (log.conf) vornehmen. Verwenden Sie einen Texteditor, um die Konfigurationsdatei log.conf auf dem Clientsystem zu ändern.

Um die Protokollierung anzupassen, verwenden Sie die Konfigurationsdatei, um Filter und Protokolleigenschaften zu definieren.

  • Filter protokollieren. Filtern Sie Protokollinformationen basierend auf der Host-IP-Adresse, dem Domänennamen und dem Hostnamen der Webserver.
  • Eigenschaften protokollieren. Jeder Filter hat einen zugehörigen Satz von Protokolleigenschaften. Protokolleigenschaften definieren, wie die gefilterten Protokollinformationen gespeichert werden.

Beispiel für eine Konfigurationsdatei

Es folgt ein Beispiel für eine Konfigurationsdatei:

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

Erstellen von Filtern

Sie können die Standardfilterdefinition in der Konfigurationsdatei (log.conf) verwenden oder den Filter ändern oder einen Filter erstellen. Sie können mehrere Protokollfilter erstellen.

Hinweis:

Die konsolidierte Protokollierung, die Transaktionen protokolliert, für die kein Filter definiert ist, verwendet den Standardfilter, wenn er aktiviert ist. Die konsolidierte Protokollierung aller Server kann nur durch Definition des Standardfilters erfolgen.

Wenn der Server mehrere Websites hostet und jede Website einen eigenen Domänennamen hat und jede Domäne einem virtuellen Server zugeordnet ist, können Sie die Webserver-Protokollierung so konfigurieren, dass für jede Website ein separates Protokollverzeichnis erstellt wird. In der folgenden Tabelle werden die Parameter zum Erstellen eines Filters angezeigt.

Tabelle 1. Parameter für die Erstellung eines Filters

Parameter Spezifiziert
Filtername Name des Filters. Der Filtername kann alphanumerische Zeichen enthalten und darf nicht länger als 59 Zeichen sein. Filternamen, die länger als 59 Zeichen sind, werden auf 59 Zeichen abgeschnitten.
Hostname Hostname des Servers, für den die Transaktionen protokolliert werden.
IP ip IP-Adresse des Servers, für den Transaktionen protokolliert werden sollen (z. B. wenn der Server mehrere Domänen mit einer IP-Adresse hat).
IP ip 2…ip n Mehrere IP-Adressen (z. B. wenn die Serverdomäne über mehrere IP-Adressen verfügt).
ip6 IP IPv6-Adresse des Servers, für den Transaktionen protokolliert werden sollen.
IP-IP-NETMASK-Maske In einem Subnetz zu verwendende Kombination aus IP-Adressen und Netzwerkmasken.
ON | OFF Aktivieren oder Deaktivieren des Filters zur Protokollierung von Transaktionen Wenn kein Argument ausgewählt ist, ist der Filter aktiviert (EIN).

Um einen Filter zu erstellen, geben Sie in der Datei log.conf den folgenden Befehl ein:

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

Erstellen Sie einen Filter für einen virtuellen Server

Um einen Filter für einen virtuellen Server zu erstellen, geben Sie in der Datei log.conf den folgenden Befehl ein:

filter <filterName> <VirtualServer IP address>

Beispiel

Im folgenden Beispiel geben Sie eine IP-Adresse von 192.168.100.0 und eine Netzmaske von 255.255.255.0 an. Der Filter gilt für die IP-Adressen 192.168.100.1 bis 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-->

Geben Sie die Protokolleigenschaften an

Protokolleigenschaften werden auf alle Protokolleinträge angewendet, die mit dem Filter verknüpft sind. Die Definition der Protokolleigenschaft beginnt mit dem Schlüsselwort BEGIN und endet mit END, wie im folgenden Beispiel dargestellt:

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

Einträge in der Definition können Folgendes enthalten:

  • LogFormat gibt die Webserverprotokollierungsfunktion an, die NCSA, W3C Extended und benutzerdefinierte Protokolldateiformate unterstützt.

Standardmäßig ist die Eigenschaft logformat w3c. Geben Sie zum Überschreiben custom oder NCSA in die Konfigurationsdatei ein, z. B.:

LogFormat NCSA
<!--NeedCopy-->

Hinweis:

Für die NCSA- und benutzerdefinierten Protokollformate wird die Ortszeit verwendet, um Transaktionen zu zeitstempeln und für die Dateirotation.

  • LogInterval gibt die Intervalle an, in denen neue Protokolldateien erstellt werden. Verwenden Sie einen der folgenden Werte:

    • Stündlich: Jede Stunde wird eine Datei erstellt.
    • Täglich: Jeden Tag um Mitternacht wird eine Datei erstellt. Standardwert.
    • Wöchentlich: Jeden Sonntag um Mitternacht wird eine Datei erstellt.
    • Monatlich: Eine Datei wird am ersten Tag des Monats um Mitternacht erstellt.
    • Keine: Eine Datei wird nur einmal erstellt, wenn die Web-Server-Protokollierung gestartet wird.</span>

Beispiel:

LogInterval Daily
<!--NeedCopy-->

LogFileSizeLimit gibt die maximale Größe der Protokolldatei in MB an. Es kann mit jedem Protokollintervall (wöchentlich, monatlich usw.) verwendet werden. Eine Datei wird erstellt, wenn die maximale Dateigröße erreicht ist oder wenn die definierte Protokollintervall-Zeit verstrichen ist.

Um dieses Verhalten zu überschreiben, geben Sie die Größe als Eigenschaft loginterval an, damit eine Datei nur erstellt wird, wenn die Größenbeschränkung der Protokolldatei erreicht ist.

Die Standardeinstellung für LogFileSizeLimit ist 10 MB.

Beispiel:

LogFileSizeLimit 35
<!--NeedCopy-->
  • LogFileNameFormat gibt das Format des Dateinamens der Protokolldatei an. Der Name der Datei kann aus folgenden Typen bestehen:

    • Statisch: Gibt eine konstante Zeichenfolge an, die den absoluten Pfad und den Dateinamen enthält.

      Dynamisch: Gibt einen Ausdruck an, der das folgende Format enthält:

      • Server-IP-Adresse
      • Datum (% {format} t)
      • URL-Suffix (%x)
      • Hostname (%v)

Beispiel:

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

Dieser Befehl erstellt den ersten Dateinamen als Exmmddyy.log und erstellt dann jede Stunde eine Datei mit einem Dateinamen: ExmmDdyy.log.0, ExmmDdyy.Log.1,…, Exmmddyy.log.n.

Beispiel:

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

Achtung:

Das im Befehl LogFileNameFormat angegebene Datumsformat%t überschreibt die Protokollintervall-Eigenschaft für diesen Filter. Um zu verhindern, dass täglich eine neue Datei erstellt wird, anstatt wenn die angegebene Protokolldateigröße erreicht ist, verwenden Sie nicht %t im LogFileNameFormat.

  • LogexClude verhindert das Protokollieren von Transaktionen mit den angegebenen Dateinamenerweiterungen.

Beispiel:

LogExclude.html
<!--NeedCopy-->

Mit diesem Befehl wird eine Protokolldatei erstellt, die Protokolltransaktionen für *.html-Dateien ausschließt.

LogTime gibt die Protokollzeit entweder als GMT oder LOCAL an.

Die Standardeinstellungen sind:

  • NCSA-Protokolldateiformat: LOCAL
  • W3C-Protokolldateiformat: GMT.

Verstehen Sie die NCSA- und W3C-Protokollformate

Der NetScaler unterstützt die folgenden Standardprotokolldateiformate:

  • Allgemeines NCSA-Protokollformat
  • Erweitertes W3C-Protokollformat

NCSA: Allgemeines Protokollformat

Wenn das Protokolldateiformat NCSA ist, zeigt die Protokolldatei Protokollinformationen im folgenden Format an:

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

Um das NCSA Common Protokollformat zu verwenden, geben Sie NCSA in das Argument LogFormat in der Datei log.conf ein.

In der folgenden Tabelle wird das Protokollformat von NCSA Common beschrieben.

Argument Spezifiziert
Client_IP_Adresse Die IP-Adresse des Clientcomputers.
Benutzername Der Benutzername.
Datum Das Datum der Transaktion.
Zeit Der Zeitpunkt, zu dem die Transaktion abgeschlossen wurde.
Zeitzone Die Zeitzone (Greenwich Mean Time oder Ortszeit).
Methode Die Anforderungsmethode (z. B. GET, POST).
Objekt Die URL.
HTTP_version Die vom Client verwendete HTTP-Version.
HTTP_StatusCode Der Statuscode in der Antwort.
Byte gesendet Die Anzahl der vom Server gesendeten Byte.

W3C erweitertes Protokollformat

Eine erweiterte Protokolldatei enthält eine Folge von Zeilen mit ASCII-Zeichen, die entweder durch einen Line Feed (LF) oder die Sequenz Carriage Return Line Feed (CRLF) abgeschlossen sind. Protokolldateigeneratoren müssen die Konvention für die Leitungsbeendigung für die Plattform einhalten, auf der sie ausgeführt werden.

Protokollanalysatoren müssen entweder LF- oder CRLF-Formular akzeptieren. Jede Zeile kann entweder eine Direktive oder einen Eintrag enthalten. Wenn Sie das W3C Extended Logformat verwenden möchten, geben Sie W3C als Log-Format Argument in der Datei log.conf ein.

Standardmäßig ist das Standard-W3C-Protokollformat intern als benutzerdefiniertes Protokollformat definiert, wie folgt dargestellt:

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

Sie können auch die Reihenfolge ändern oder einige Felder in diesem W3C-Protokollformat entfernen. Zum Beispiel:

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

W3C-Protokolleinträge werden mit dem folgenden Format erstellt:

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

Einträge

Einträge bestehen aus einer Folge von Feldern, die sich auf eine einzelne HTTP-Transaktion beziehen. Felder sind durch Leerzeichen getrennt. Citrix empfiehlt die Verwendung von Tabulatorzeichen. Wenn ein Feld in einem bestimmten Eintrag nicht verwendet wird, markiert ein Bindestrich (-) das ausgelassen Feld.

Richtlinien

Informationen zum Protokollierungsprozess finden Sie in der Tabelle Richtlinien . Zeilen, die mit dem Pfundzeichen (#) beginnen, enthalten Anweisungen.

Beispiel:

Die folgende Beispielprotokolldatei zeigt die Protokolleinträge im W3C-Extended-Protokollformat:

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

Felder

Die Fields Direktive listet eine Sequenz von Feldbezeichnern auf, die die in jedem Eintrag aufgezeichneten Informationen angeben. Feldbezeichner haben möglicherweise eine der folgenden Formen:

  • Bezeichner: Bezieht sich auf die Transaktion als Ganzes.
  • prefix-identifier: Bezieht sich auf Informationsübertragung zwischen Parteien, die durch das Wertpräfix definiert sind.
  • Präfix (Header): Gibt den Wert des HTTP-Header-Feld-Headers für die Übertragung zwischen Parteien an, die durch das Wertpräfix definiert Auf diese Weise angegebene Felder haben immer den Typ.

In der folgenden Tabelle werden definierte Präfixe beschrieben.

Präfix Spezifiziert
c Client
s Server
r Remote
cs Client zum Server
Sc Server zum Client
sr Server zum Remoteserver (von Proxys verwendetes Präfix)
rs Remote-Server zum Server (von Proxys verwendetes Präfix)
x Anwendungsspezifischer Bezeichner

Beispiele:

Die folgenden Beispiele sind definierte Bezeichner, die Präfixe verwenden:

cs-method: Die Methode in der Anforderung, die vom Client an den Server gesendet wird.

sc(Referer): Das Feld Referer in der Antwort.

c-ip: Die IP-Adresse des Clients.

Identifikatoren

In der folgenden Tabelle werden die Bezeichner des erweiterten W3C-Protokollformats beschrieben, die kein Präfix benötigen.

Identifier Beschreibung
Datum Das Datum, an dem die Transaktion abgeschlossen wurde.
Zeit Der Zeitpunkt, zu dem die Transaktion abgeschlossen ist.
Zeit in Anspruch genommen Die für den Abschluss der Transaktion benötigte Zeit (in Sekunden).
Bytes Die Anzahl der übertragenen Byte.
zwischengespeichert Zeichnet auf, ob ein Cache-Treffer aufgetreten ist. Eine Null gibt an, dass ein Cache fehlschlägt.

In der folgenden Tabelle werden die Bezeichner des erweiterten W3C-Protokollformats beschrieben, die ein Präfix erfordern.

Identifier Beschreibung
IP Die IP-Adresse und die Portnummer.
DNS Der DNS-Name.
Status Der Statuscode.
comment Der Kommentar wurde mit einem Statuscode zurückgegeben.
method Die Methode.
url Die URL.
url-Stamm Der Stammteil der URL.
url-Abfrage Der Abfrageteil der URL.

Mit dem Dateiformat W3C Extended Log können Sie Protokollfelder auswählen. Diese Felder sind in der folgenden Tabelle aufgeführt.

Feld Beschreibung
Datum Das Datum, an dem die Transaktion abgeschlossen ist.
Zeit Der Zeitpunkt, zu dem die Transaktion abgeschlossen ist.
Client-IP Die IP-Adresse des Clients.
Benutzername Der Benutzername.
Dienstname Der Dienstname, der immer HTTP ist.
Server-IP Die Server-IP-Adresse.
Serverport Die Server-Portnummer
Methode Die Anforderungsmethode (z. B. GET, POST).
Url-Stamm Der URL-Stamm.
URL-Abfrage Der Abfrageteil der URL.
HTTP-Status Der Statuscode in der Antwort.
Byte gesendet Die Anzahl der an den Server gesendeten Byte (Anforderungsgröße, einschließlich HTTP-Header).
Bytes empfangen Die Anzahl der vom Server empfangenen Byte (Größe der Antwort, einschließlich HTTP-Header).
Zeitaufwand Die Zeit, die für den Abschluss einer Transaktion in Sekunden gebraucht wird.
Protokollversion Die Versionsnummer von HTTP, die vom Client verwendet wird.
Benutzeragent Das Feld User-Agent im HTTP-Protokoll.
Cookie Das Cookie-Feld des HTTP-Protokolls.
Referer Das Feld Referer des HTTP-Protokolls.

Erstellen Sie ein benutzerdefiniertes Protokollformat

Sie können das Anzeigeformat der Protokolldateidaten manuell oder mithilfe der NSWL-Bibliothek anpassen. Mithilfe des benutzerdefinierten Protokollformats können Sie die meisten Protokollformate ableiten, die Apache derzeit unterstützt.

Erstellen Sie ein benutzerdefiniertes Protokollformat mithilfe der NSWL-Bibliothek

Verwenden Sie eine der folgenden NSWL-Bibliotheken, je nachdem, ob die ausführbare NSWL-Datei auf einem Windows- oder Solaris-Hostcomputer installiert wurde:

  • Windows: Die nswl.lib-Bibliothek im Verzeichnis \ns\bin auf dem Hostcomputer des Systemmanagers.
  • Solaris: Die Bibliothek libnswl.a in usr/local/netscaler/bin.
  1. Fügen Sie die folgenden zwei vom System definierten C-Funktionen in einer C-Quelldatei hinzu:

    ns_userdeffieldName (): Diese Funktion gibt die Zeichenfolge zurück, die als benutzerdefinierter Feldname im Protokolldatensatz hinzugefügt werden muss.

    ns_userdeffieldVal (): Diese Funktion implementiert den Wert des benutzerdefinierten Feldes und gibt ihn dann als String zurück, der am Ende des Protokolldatensatzes hinzugefügt werden muss.

  2. Kompilieren Sie die Datei in eine Objektdatei.
  3. Verknüpfen Sie die Objektdatei mit der NSWL-Bibliothek (und optional mit Bibliotheken von Drittanbietern), um eine neue ausführbare NSWL-Bibliothek zu bilden.
  4. Fügen Sie am Ende der LogFormat-Zeichenfolge in der Konfigurationsdatei (log.conf) eine %d Zeichenfolge hinzu.

Beispiel:

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

Manuelles Erstellen eines benutzerdefinierten Protokollformats

Um das Format anzupassen, in dem Protokolldateidaten angezeigt werden müssen, geben Sie eine Zeichenfolge als Argument der LogFormat-Protokolleigenschaftsdefinition an. Im Folgenden finden Sie ein Beispiel, in dem Zeichenfolgen verwendet werden, um ein Protokollformat zu erstellen:

LogFormat Custom ""%a - "%{user-agent}i" %[%d/%m/%Y]t %U %s %b %T"
<!--NeedCopy-->
  • Die Zeichenfolge kann die Steuerzeichen vom Typ “c”\ n und\ t enthalten, um neue Zeilen und Registerkarten darzustellen.
  • Verwenden Sie die Esc-Taste mit literalen Anführungszeichen und umgekehrten Schrägstrichen.

Die Merkmale der Anforderung werden protokolliert, indem %-Direktiven in die Formatzeichenfolge eingefügt werden, die in der Protokolldatei durch die Werte ersetzt werden.

Wenn der Formatbezeichner %v (Hostname) oder %x (URL-Suffix) in einer Protokolldateinamenformatzeichenfolge vorhanden ist, werden die folgenden Zeichen im Dateinamen durch einen Unterstreichungsstrich im Namen der Protokollkonfigurationsdatei ersetzt:

" *. /: < > ? \ |

Zeichen, deren ASCII-Werte im Bereich von 0-31 liegen, werden wie folgt ersetzt:

%<ASCII value of character in hexadecimal>.

Beispielsweise wird das Zeichen mit dem ASCII-Wert 22 durch %16 ersetzt.

Achtung:

Wenn der Formatbezeichner%v in einer Protokolldateinamen-Formatzeichenfolge vorhanden ist, wird für jeden virtuellen Host eine separate Datei geöffnet. Um eine kontinuierliche Protokollierung sicherzustellen, muss die maximale Anzahl von Dateien, die ein Prozess geöffnet haben kann, ausreichend groß sein. Eine Vorgehensweise zum Ändern der Anzahl der Dateien, die geöffnet werden können, finden Sie in der Dokumentation des Betriebssystems.

Erstellen Sie Apache-Protokollformate

Sie können aus den benutzerdefinierten Protokollen die meisten Protokollformate ableiten, die Apache derzeit unterstützt. Die benutzerdefinierten Protokollformate, die den Apache-Protokollformaten entsprechen, sind:

NCSA/Combined: LogFormat custom%h%l%u [%t] “%r” %s%b “% {referer} i” “% {useragent} i”

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

Referer Log: LogFormat benutzerdefiniert “% {referer} i” ->%U

Benutzeragent: LogFormat custom% {user-agent} i

Ebenso können Sie die anderen Serverprotokollformate aus den benutzerdefinierten Formaten ableiten.

Argumente zum Definieren eines benutzerdefinierten Protokollformats

In der folgenden Tabelle wird das benutzerdefinierte Protokollformat beschrieben.

Argument Spezifiziert
%a Remote-IPv4-Adresse.
%A Lokale IPv4-Adresse.
%a6 Remote-IPv6-Adresse.
%A6 Lokale IPv6-Adresse.
%B Gesendete Byte, mit Ausnahme der HTTP-Header (Antwortgröße).
%b Empfangene Byte, ohne die HTTP-Header (Anforderungsgröße).
%d Benutzerdefiniertes Feld.
%K Informationen zum Client-Port.
%e1 Wert des ersten benutzerdefinierten HTTP-Anforderungsheaders.
%e2 Wert des zweiten benutzerdefinierten HTTP-Anforderungsheaders.
%E1 Wert des ersten benutzerdefinierten HTTP-Antwortheaders.
%E2 Wert des zweiten benutzerdefinierten HTTP-Antwortheaders. Hinweis: Anweisungen zum Exportieren benutzerdefinierter HTTP-Header finden Sie unter Konfiguration des NetScaler für die Webserverprotokollierung
%g Greenwich Mean Time Offset (z. B. -0800 für Pacific Standard Time).
%h IPv4-Adresse eines Remote-Hosts.
%h6 IPv6-Adresse eines Remote-Hosts.
H Protokoll anfordern.
% {Foobar} Inhalt der Foobar: Kopfzeile (n) in der an den Server gesendeten Anfrage. Das System unterstützt die Header User -Agent, Referer und Cookie. Das + nach dem% in diesem Format informiert den Logging-Client, das + als Worttrennzeichen zu verwenden.
%j Empfangene Byte, einschließlich Header (Anforderungsgröße).
%J Gesendete Byte, einschließlich Header (Antwortgröße).
%l Name des Remote-Logs (von identd, falls angegeben).
%m Methode anfordern.
%M Zeit, die für die Bearbeitung der Anfrage benötigt wurde (in Mikrosekunden).
% {Foobar} Inhalt von Foobar: Kopfzeile (n) in der Antwort. USER -AGENT-, Referrer- und Cookie-Header (einschließlich gesetzter Cookie-Header) werden unterstützt.
%p Kanonischer Port des Servers, der die Anfrage bedient.
%P Die Admin-Partition.
%q Abfragezeichenfolge (vorangestellt mit einem Fragezeichen (?) wenn eine Abfragezeichenfolge existiert).
%r Erste Zeile der Anfrage.
%s Anfragen, die intern umgeleitet wurden, dies ist der Status der ursprünglichen Anfrage.
%t Uhrzeit im gängigen Protokollformat (englisches Standardzeitformat).
% {format} t Zeit muss in der vom Format angegebenen Form im Format strftime (3) vorliegen. Formatbeschreibungen finden Sie unter Definition des Zeitformats.
%T Zeit, die für die Bearbeitung der Anfrage benötigt wurde, in Sekunden.
%u Remote-Benutzer (von Auth; möglicherweise falsch, wenn der Rückgabewert (%s) 401 ist).
%U URL-Pfad angefordert.
%v Kanonischer Name des Servers, der die Anfrage bedient.
%V6 IPv6-Adresse des virtuellen Servers im System, wenn Load Balancing, Content Switching und/oder Cache-Umleitung verwendet werden.
%D Druckt die HTTP-Transaktions-ID.
%L Transaktionszeit in Millisekunden.
%R HTTP-Reason-Zeichenfolge, die dem Statuscode zugeordnet ist.
%f Protokollierung des Quellports.
%V IPv4-Adresse des virtuellen Servers.

Hinweis

Anweisungen zum Exportieren benutzerdefinierter HTTP-Header finden Sie unter Konfigurieren des NetScaler für die Webserver-Protokollierung

Wenn Sie beispielsweise das Protokollformat als %+{user-agent}idefinieren und wenn der Benutzeragentwert NetScaler System Web Client ist, werden die Informationen als NetScaler System+Web+Client protokolliert. Eine Alternative besteht darin, doppelte Anführungszeichen zu verwenden. Zum Beispiel protokolliert “%{user-agent}i” es als “NetScaler System Web Client. “ Verwenden Sie den Schlüssel \<Esc\> nicht für Zeichenfolgen von %.. .r,%. .i und %. .o. Es entspricht den Anforderungen des Common Log Formats. Clients können Steuerzeichen in das Protokoll einfügen. Daher müssen Sie vorsichtig sein, wenn Sie mit rohen Logfiles arbeiten.

Zeitformatdefinition

In der folgenden Tabelle wird die Zeitformatdefinition beschrieben, um Informationen zum Formatteil der Zeichenfolge %{format}t zu erhalten, die in der Tabelle “Benutzerdefiniertes Protokollformat” beschrieben wird. Werte in Klammern ([]) zeigen den Wertebereich an, der angezeigt wird. Beispielsweise zeigt [1,31] in der %d-Beschreibung in der folgenden Tabelle, dass %d zwischen 1 und 31 liegt.

| Argument | Spezifiziert | | ———— | ———- | | %% | Das Gleiche wie%. | | %a | Der abgekürzte Name des Wochentags für das Gebietsschema. | | %A | Der vollständige Name des Wochentags für das Gebietsschema | | %b | Der abgekürzte Name des Monats für das Gebietsschema. | | %B | Der vollständige Name des Monats für das Gebietsschema. | | %C | Die Jahrhundertzahl (das Jahr geteilt durch 100 und als Dezimalzahl auf eine Ganzzahl gekürzt [1,99]); einzelnen Ziffern geht eine 0 voraus.| | %d | Benutzerdefiniertes Feld. | | %K | Die Jahrhundertzahl (das Jahr geteilt durch 100 und als Dezimalzahl auf eine Ganzzahl gekürzt [1,99]); einzelnen Ziffern geht eine 0 voraus.| | %e | Der Tag des Monats [1,31]; einzelnen Ziffern steht ein Leerzeichen vorangestellt. | | %h | Der abgekürzte Name des Monats für das Gebietsschema. | | %H |Die Stunde (24-Stunden-Uhr) [0,23]; einzelnen Ziffern geht eine 0 voraus. | | %I | Die Stunde (12-Stunden-Uhr) [1,12]; einzelnen Ziffern geht eine 0 voraus.| | %j | Die Zahl des Tages im Jahr [1,366]; einstelligen Ziffern wird 0 vorangestellt. | | %k | Die Stunde (24-Stunden-Uhr) [0,23]; einzelnen Ziffern ist ein Leerzeichen vorangestellt. | | %l | Die Stunde (12-Stunden-Uhr) [1,12]; einzelnen Ziffern geht ein Leerzeichen voraus. | | %m | Die Zahl des Monats im Jahr [1,12]; einstelligen Ziffern geht eine 0 voraus. | | %M |Die Minute [00,59]; eine 0 führende Zahl ist zulässig, aber nicht erforderlich.| | %n | Fügt eine neue Zeile ein. | | %p | Entspricht entweder morgens oder nachmittags für das Gebietsschema. | | %r | Die entsprechende Zeitdarstellung im 12-Stunden-Uhrformat mit %p| | %S | Die Sekunden [00,61]; der Wertebereich ist [00,61] eher als [00,59], um die gelegentliche Schaltsekunde und die doppelte Schaltsekunde zuzulassen. | | %3 | Die Millisekunden [000,999]; der Wertebereich ist. [000,999] | | %6 | Die Mikrosekunden [000000,999999]; der Wertebereich ist [000000,999999]. | | %9 | Die Nanosekunden [000000000,999999999]; der Wertebereich ist [000000000,999999999]. | | %t | Fügt eine Registerkarte ein. | | %u | Der Wochentag als Dezimalzahl [1,7]. 1 steht Sonntag, 2 steht für Dienstag und so weiter. | | %U | Die Zahl der Woche im Jahr als Dezimalzahl [00,53], wobei Sonntag der erste Tag der Woche 1 ist. |

Hinweis:

Wenn Sie eine Konvertierung angeben, die keiner der in der vorhergehenden Tabelle beschriebenen Konvertierungsspezifikationen entspricht, oder einer der im nächsten Absatz aufgeführten geänderten Konvertierungsspezifikationen entspricht, ist das Verhalten nicht definiert und gibt 0 zurück.

Der Unterschied zwischen %U und %W (und auch zwischen modifizierten Konvertierungen %OU und %OW) ist der Tag, der als erster Wochentag angesehen wird. Woche Nummer 1 ist die erste Januarwoche (beginnend mit einem Sonntag für %U oder einem Montag für %W). Die Wochennummer 0 enthält die Tage vor dem ersten Sonntag oder Montag im Januar für %U und %W.

Serverprotokolle anzeigen

Sie können eine NSWL-Funktion so konfigurieren, dass Serverprotokolle auf der Konsole angezeigt werden oder Serverprotokolle in ein Verzeichnis auf der NetScaler-Appliance umleiten.

Es gibt zwei Möglichkeiten, Protokolle auf der Konsole anzuzeigen (Standardausgabe): Option 1: Alle Protokolle auf der Konsole anzeigen. Option 2: Zeigen Sie nur ausgewählte Protokolle auf der Konsole mit Filtern mit logfilenameformat als STDOUT an.

Anpassen der Protokollierung auf dem NSWL-Clientsystem