Ersetzen des Datum-/Uhrzeit-Platzhalters im Protokollpfad

Übersicht

In Urchin können Sie Platzhalter und Variablen für den Abgleich von Datumsangaben im Pfad zu einer Protokolldatei angeben. Wenn eine Urchin-Aufgabe ausgeführt und der Protokollpfad gelesen wird, werden diese Variablen konvertiert und auf Übereinstimmungen mit den Verzeichnissen und Dateinamen auf Ihrem System verglichen.

Die Funktionen für den Abgleich von Datumsangaben sind in Urchin 6 umfassender als in früheren Versionen von Urchin:

  • Das Datum kann an beliebiger Stelle im Pfadnamen der Protokolldatei ersetzt werden. In früheren Versionen von Urchin war das Ersetzen des Datums nur in der tatsächlichen Beschreibung des Dateinamens möglich.
  • Ein stabilerer und flexiblerer Algorithmus zur Musterübereinstimmung bei Datumsangaben ist implementiert worden. Die frühere TTMMJJJJ-Musterübereinstimmung wird jedoch für die Kompatibilität mit Vorgängerversionen noch immer unterstützt.

Im Folgenden werden die am häufigsten verwendeten Variablen und Formate zum Abgleich von Zeitangaben aufgeführt. Eine vollständige Liste aller unterstützten Variablen zur Formatierung von Zeitangaben wird am Ende dieses Artikels aufgeführt.

* Ein Sternchen stimmt mit null oder weiteren folgenden Zeichen überein. TT wird durch zwei Ziffern für einen Tag im Monat ersetzt, z. B. 31.01. %d entspricht TT. MM wird durch zwei Ziffern für einen Monat ersetzt, z. B. 01.12. %m entspricht MM JJ wird durch zwei Ziffern für ein Jahr ersetzt, z. B. 01-99. JJJJ wird durch vier Ziffern für ein Jahr ersetzt, z. B. 0001-2003. %Y entspricht JJJJ.

Beachten Sie, dass sich das Sternchen in diesem Kontext wie bei einem Abgleich von Dateinamen in einer Befehls-Shell in UNIX oder DOS verhält und nicht wie bei einem Abgleich eines regulären Ausdrucks, in dem das Zeichen mit null oder mehr Instanzen des vorhergehenden Zeichens übereinstimmen würde. Diese Variablen können in jeder vom Nutzer gewünschten Form kombiniert werden.

Die folgende Liste enthält Beispiele dazu, wie diese Variablen für das Datum 13.08.2003 umgewandelt werden. Beachten Sie dabei, dass die Tagesvariablen TT und %d in den Tag vor dem 13. konvertiert werden.

  • TTMMJJJJ wird in 12082003 umgewandelt.
  • %d.%m.%Y wird in 12.08.2003 umgewandelt.
  • %Y/%m/%d wird in 2003/08/12 umgewandelt (das hat Folgen in einem Pfad).
  • *TTMMJJJJ stimmt mit jedem Dateinamen überein, der mit der Zeichenfolge „12082003“ endet.

Tagesvariablen TT und %d werden standardmäßig in den vorherigen Tag konvertiert. Das liegt an der Methode, nach der Webserver-Protokolle und die Urchin-Verarbeitung verwaltet werden. Ihre Protokolle werden normalerweise täglich gewechselt, damit sie nicht zu groß werden und jedes Protokoll hauptsächlich Daten eines einzigen Tages enthält. Dieser Wechsel findet meist kurz vor Mitternacht statt. Die Urchin-Verarbeitung erfolgt dann anschließend, nach Mitternacht, wenn der nächste Tag des Monats begonnen hat. Hätten Sie Ihrem Protokolldateinamen einen TTMMJJJJ-Monatsstempel für den Wechsel hinzugefügt, würden folglich dieses Datum und die Laufzeit von Urchin um einen Tag abweichen. Eine Auswertung der Datumskonvertierung nach der Zeit, in der Urchin ausgeführt wird, gäbe dann einen Fehler zurück. Denn der richtige Protokollname könnte nicht gefunden werden, da der Zeitstempel des Protokolls 12082003 lauten würde, während Urchin unter 13082003 ausgeführt wurde.

Dies ist zwar das häufigste Modell für den Protokollwechsel, jedoch nicht die einzige Möglichkeit. Deshalb verfügt Urchin über einen Konfigurationsparameter, der steuert, wie diese Variablen in einen bestimmten Tag aufgelöst werden. Durch das Ersetzen von Datum und Uhrzeit in der Einstellung des Protokollpfadnamens kann ein Zeitversatz angepasst werden, mit dem die Auswertung von TT und %d gesteuert wird. Diese Einstellung wird am Ende dieses Artikels genauer erklärt.

Die Jahres-, Monats- und Tagesvariablen können im Namen der Protokolldatei oder im Verzeichnispfad zu der Protokolldatei verwendet werden. Die Verwendung des Sternchens ist nur in dem Teil des Protokolldateipfads möglich, der sich auf den Dateinamen bezieht. Zeitformatvariablen können in einem Protokolldateipfad auch wiederholt werden, das Sternchen darf jedoch nur einmal vorkommen. Dies wird mit den Beispielen im Abschnitt „Vorgehensweise“ näher erläutert.

Vorgehensweise

Verwenden Sie beim Erstellen einer Protokollquelle möglichst die Zeitvariablen im Pfad, die Sie auch auf der Registerkarte „Protokolleinstellungen“ im Feld „Protokolldateipfad“ verwendet haben. Beispiel: Nach einem typischen Schema für einen täglichen Protokollwechsel bei einem Apache-Webserver wird ein Datumsstempel erstellt, der das Datum der Protokolleinträge angibt. Dabei archiviert der Protokollwechselmechanismus beispielsweise am 16.07.2002 (07/16/2002) eine Minute nach Mitternacht das Protokoll

/var/log/httpd/access.log

und speichert es als

/var/log/httpd/access.log.20020715

Zum Abgleich dieses Musters in der Protokollquelle für ein Urchin-Profil würden Sie ganz einfach

/var/log/httpd/access.log.YYYYMMDD

in der Protokolldatei angeben. Urchin sucht dann automatisch beim Ausführen dieses Tages nach dem Protokoll des vorherigen Tages. Weiteres Beispiel: Ist der IIS-Webserver von Microsoft so konfiguriert, dass Protokolle täglich gewechselt werden, wird die Protokolldatei benannt und das aktuelle Datum als Teil des Dateinamens eingeschlossen, z. B. „ex021127.log“. Deshalb würden Sie zur Verarbeitung eines täglichen IIS-Protokolls eine Protokolldateibeschreibung nach dem Schema

C:\WINNT\System32\LogFiles\W3SVC1\exYYMMDD.log

im Feld „Protokolldateipfad“ der Protokollquelle für das Profil verwenden.

Soll Urchin Protokolle verarbeiten, die häufiger als täglich gewechselt werden, können Sie eine Kombination aus der TTMMJJJJ-Syntax und Platzhaltern verwenden, um alle am vorherigen Tag erstellten Protokolldateien abzugleichen. Zu diesem Zweck müssen Sie sicherstellen, dass die gewechselte Protokolldatei einheitlich benannt wird, z. B. indem an den Dateinamen eine Stundenangabe angehängt wird. In der Beschreibung des Protokolldateipfads verwenden Sie dann das Muster

/var/log/httpd/access.log.YYYYMMDD*

oder

C:\WINNT\System32\LogFiles\W3SVC1\exYYMMDD*.log

Bei einer komplexeren Verwendung werden Protokolle in Verzeichnissen gespeichert, deren Name Jahr, Monat und Tag wiedergeben. Angenommen, Sie verwenden die folgenden Verzeichnispfade zum Speichern von Protokollen:

/logs/2003/07
/logs/2003/08
/logs/2003/09

Dabei speichern Sie alle Protokolle für einen bestimmen Monat im jeweiligen Verzeichnis und darin wird jedem Protokoll der Tag angefügt (z. B. „access.log.01“, „access.log.02“). Damit Urchin nun erkennen kann, welche Protokolle zu verarbeiten sind, können Sie eines der folgenden Protokollpfadformate verwenden:

/logs/YYYY/MM/access.log.DD
/logs/%Y/%M/access.log.%d

Zum Zeitpunkt der Verarbeitung werden dann alle Protokolle von Urchin verarbeitet, die mit dem Muster des gestrigen Datums übereinstimmen und ein beliebiges Suffix aufweisen. Wie immer bei der Verwendung von Platzhaltern in Feldbeschreibungen des Protokolldateipfads ist es wichtig, dass das Protokoll-Tracking für das Profil aktiviert ist. Damit wird sichergestellt, dass Protokolle nicht erneut von Urchin verarbeitet werden.

Hinweise

Urchin subtrahiert basierend auf der Ortszeit 24 Stunden von der aktuellen Zeit, um das Datum für das Ersetzungsmuster zu bestimmen. Monats- und Jahresübergänge werden ordnungsgemäß verarbeitet. Sie können dieses Verhalten jedoch auf der Registerkarte „Erweiterte Einstellungen“ einer Protokollquelle mit der Einstellung zum Ersetzen des Datum-/Uhrzeit-Platzhalters im Protokollpfad ändern. Sie können die Ortszeit oder die GMT-Zeit als Basis für die Zeitanpassungen auswählen und dann im Bearbeitungsfeld „Stunden“ einen Plus- oder Minus-Zeitversatz in Stunden angeben.

Liste der Datums- und Zeitformate

Die folgende Liste enthält alle von der strftime()-Routine der Standard C Library unterstützten Zeitformatvariablen:

  • %A = landesspezifische Darstellung des ausgeschriebenen Wochentags.
  • %a = landesspezifische Darstellung des abgekürzten Wochentags.
  • %B = landesspezifische Darstellung des ausgeschriebenen Monats.
  • %b = landesspezifische Darstellung des abgekürzten Monats.
  • %d = Tag des Monats als Dezimalzahl (01-31).
  • %e = Tag des Monats als Dezimalzahl (1-31); einstelligen Zahlen wird eine Leerstelle vorangestellt.
  • %H = Stunde im 24-Stunden-Format als Dezimalzahl (00-23).
  • %I = Stunde im 12-Stunden-Format als Dezimalzahl (01-12).
  • %j = Tag des Jahres als Dezimalzahl (001-366).
  • %k = Stunde im 24-Stunden-Format als Dezimalzahl (0-23); einstelligen Zahlen wird eine Leerstelle vorangestellt.
  • %l = Stunde im 12-Stunden-Format als Dezimalzahl (1-12); einstelligen Zahlen wird eine Leerstelle vorangestellt.
  • %M = Minute als Dezimalzahl (00-59).
  • %m = Monat als Dezimalzahl (01-12).
  • %p = landesspezifische Darstellung von „ante meridiem“ bzw. „post meridiem“.
  • %S = Sekunde als Dezimalzahl (00-60).
  • %s = Anzahl der Sekunden seit Epoch, UTC (siehe mktime(3)).
  • %w = Wochentag (Sonntag als erster Tag der Woche) als Dezimalzahl (0-6).
  • %Y = vollständige vierstellige Jahreszahl.
  • %y = gekürzte zweistellige Jahreszahl (00-99).
  • %z = Zeitversatz der Zeitzone zu UTC; ein führendes Pluszeichen bedeutet östlich von UTC, ein Minuszeichen westlich von UTC, Stunden und Minuten folgen mit jeweils zwei Ziffern ohne Trennzeichen (übliche Form bei RFC 822-Datumskopfzeilen).
  • %% = `%‘. (Wenn ein tatsächliches Prozentzeichen in einem Datums-/Uhrzeiteintrag erforderlich ist.)

Kommentieren

Suchen