RFC 3164 · · Informational (abgelöst durch 5424)
Das Syslog-Format, das nie wirklich ein Standard war.
Der offizielle Titel lautet "The BSD syslog Protocol." Worum es wirklich geht: eine schriftliche Momentaufnahme des chaotischen Syslog-Formats, das Unix-Rechner schon zwanzig Jahre lang sprachen, samt Zeitstempel ohne Jahr. Abgelöst durch RFC 5424, und trotzdem der Dialekt, den die meisten Geräte bis heute senden.
- Status
- Überholt
- Ersetzt durch
- RFC 5424
Geschrieben von Noel Lang · IT-Trainer
Kurzfassung
RFC 3164 ist das alte BSD-Syslog-Format, nachträglich aufgeschrieben. Es ist Informational, kein Standard: Es beschrieb die Log-Konvention, die Unix-Rechner schon zwanzig Jahre lang sprachen, samt eines Zeitstempels ohne Jahr und ohne Zeitzone. RFC 5424 löst es ab, und trotzdem senden die meisten Netzwerkgeräte weiter den 3164-Dialekt, weshalb jeder Log-Parser ihn verstehen muss.
Das Problem, das er löst
Rund zwanzig Jahre lang stand “Syslog” nirgends geschrieben. Es war schlicht das, was BSD-Unix in den 1980ern anfing, von Rechner zu Rechner kopiert, bis das halbe Internet es sprach, wobei jede Implementierung die Details ein bisschen anders improvisierte. Es gab kein Dokument, auf das man zeigen konnte, keine Möglichkeit zu sagen “du machst Syslog falsch”, weil es keine Definition davon gab, es richtig zu machen.
Die Aufgabe von RFC 3164 war, dieses Schweigen zu beenden. Es erfand kein Format, es schrieb das bereits genutzte auf, mit allen Macken. Genau das heißt “Informational” hier: Die Autoren obduzierten ein lebendes, chaotisches Protokoll und veröffentlichten die Notizen, damit wenigstens alle von derselben Seite aus streiten konnten.
Das Wörterbuch, nicht die Grammatik
Denk an den Unterschied zwischen einem Wörterbuch und einem Grammatiklehrbuch. Ein Grammatikbuch sagt dir, wie du schreiben sollst. Ein Wörterbuch hält fest, wie Leute bereits sprechen, Slang und Unregelmäßigkeiten inklusive, und vermerkt leise, wo der Gebrauch uneinheitlich ist.
RFC 3164 ist das Wörterbuch. Es dokumentiert, dass eine Syslog-Zeile eine Prioritätszahl, einen Zeitstempel, einen Hostnamen und eine Nachricht hat, und gibt ehrlich zu, wie oft echte Geräte selbst das verstümmeln. RFC 5424 ist das Grammatikbuch, das später kam und allen vorschreibt, wie es sein soll. Beide sind nützlich, aber nur eines ist präskriptiv, und die zwei zu verwechseln ist der Ursprung der meisten Missverständnisse.
Der Zeitstempel, der das Jahr vergaß
Wenn RFC 3164 ein berüchtigtes Erbe hat, dann die Uhr. Der Zeitstempel ist Mmm dd hh:mm:ss, etwa Oct 11 22:14:15, in der Ortszeit des Senders. Kein Jahr. Keine Zeitzone. Keine Sekundenbruchteile. Das ging, solange man das Log einer Maschine auf ebendieser Maschine las, und war fast nutzlos, sobald man Logs von Servern in drei Ländern einsammelt und einen Vorfall Minute für Minute rekonstruieren will. Genau das zu beheben ist der Grund, warum
RFC 5424
zu einem strikten
RFC 3339
-Zeitstempel griff.
Die Anatomie einer 3164-Zeile
Das Beispiel des Formats, direkt aus dem RFC: ein fehlgeschlagenes su zu root. Fünf lose Teile, und der Zeitstempel ist der schwache. Dasselbe Ereignis unter
RFC 5424
trüge ein volles Jahr und eine Zeitzone.
Was der RFC wirklich sagt
Das Original ist kurz und erfrischend offen darüber, eine Beschreibung zu sein und kein Regelwerk. Die Landkarte, falls du zur Quelle gehst:
| Abschnitt | In einfachen Worten |
|---|---|
| 1 · Einleitung | Ein ungewöhnlich ehrlicher Auftakt: Dies ist keine Spezifikation, sondern eine Beschreibung dessen, was Syslog-Implementierungen in der Praxis ohnehin tun. |
| 4.1 · Nachrichtenteile | Der Kern: Eine Nachricht ist PRI + HEADER + MSG, und das ganze Paket muss in 1024 Byte passen. |
| 4.1.1 · PRI | Die Zahl in spitzen Klammern und die Formel Facility × 8 + Severity, dieselbe Prioritätszahl, die RFC 5424 später beibehielt. |
| 4.1.2 · HEADER | Die berüchtigte Schwäche: ein Mmm dd hh:mm:ss-Zeitstempel ohne Jahr und ohne Zeitzone, gefolgt vom Hostnamen. |
| 5 · Konventionen | Ein offener Katalog, wie nachlässig echte Installationen sind, samt sanftem Rat für Relays, die das Ganze sortieren müssen. |
Was oft falsch verstanden wird
-
"RFC 3164 war der Syslog-Standard."
War es nie. RFC 3164 ist Informational, was im IETF-Sprech "so machen es die Leute bereits" heißt, nicht "so musst du es machen". Es dokumentierte BSD-Syslog nachträglich, 2001, Jahrzehnte nachdem das Format sich durchgesetzt hatte. Die erste echte Standards-Track-Spezifikation für Syslog ist sein Nachfolger RFC 5424. Der Vorgänger beschrieb, der Nachfolger schreibt vor.
-
"Es ist obsolet, also nutzt es niemand."
Das Gegenteil stimmt. Von RFC 5424 abgelöst zu werden, änderte die Aktenlage, nicht die Realität. Ein riesiger Anteil an Firewalls, Switches und Legacy-Diensten sendet jede Sekunde weiter das 3164-Format, und genau deshalb kann kein Parser die Unterstützung dafür fallen lassen. Auf dem Papier obsolet, auf der Leitung allgegenwärtig.
-
"Der 3164-Zeitstempel enthält das Jahr."
Tut er nicht. Das Format ist Mmm dd hh:mm:ss in Ortszeit, ohne Jahr, ohne Zeitzone und ohne Sekundenbruchteile. Sammle Logs von drei Kontinenten ein, und du kannst nicht zuverlässig rekonstruieren, was wann geschah. Diese eine Lücke ist das beste Argument für den Umstieg auf RFC 5424.
Wo dir das 3164-Format noch begegnet
Für ein obsoletes Format ist es erstaunlich lebendig. So erkennst du es in freier Wildbahn:
| Du siehst | Was es bedeutet |
|---|---|
Oct 11 22:14:15 host ... |
Ein Zeitstempel ohne Jahr und ohne Zeitzone am Zeilenanfang ist der unverkennbare Fingerabdruck des 3164-Formats. |
| Cisco-, Fortinet-, MikroTik-Logs | Die meisten Netzwerkgeräte sprechen von Haus aus 3164. Deshalb müssen zentrale Log-Sammler beide Formate parsen. |
/var/log/messages auf älteren Systemen |
Die klassische BSD-Zeile auf der Platte ist im 3164-Stil, lange nachdem 5424 zum Standard wurde. |
| Ein Parser, der das Jahr "verliert" | Logs, die im Januar das falsche Jahr zeigen oder es raten, sind nachgelagerte Werkzeuge, die ausfüllen, was der 3164-Zeitstempel nie mitlieferte. |
Fragen, die wirklich gestellt werden
Was ist RFC 3164? +
RFC 3164 ist das Informational-Dokument von 2001, das das BSD-Syslog-Format aufschrieb, die lose Log-Konvention, die Unix-Systeme schon seit Jahrzehnten nutzten. Es benennt die Teile einer Nachricht: die Prioritätszahl in spitzen Klammern, einen Zeitstempel, einen Hostnamen, einen Tag und die Freitext-Nachricht. Es war nie ein echter Standard, und RFC 5424 hat es inzwischen abgelöst, aber die meisten Netzwerkgeräte senden weiterhin das 3164-Format.
Wird RFC 3164 noch verwendet? +
Ja, massiv, obwohl es obsolet ist. Unzählige Firewalls, Switches, Router und ältere Dienste senden weiterhin das 3164-Format, weshalb jeder Log-Parser es neben dem neueren RFC 5424 beherrschen muss. Es ist der seltene Fall, in dem der offiziell pensionierte Vorgänger nie wirklich gegangen ist.
Was ist der Unterschied zwischen RFC 3164 und RFC 5424? +
RFC 3164 beschrieb nur, was BSD-Syslog ohnehin schon tat, samt seines ungenauen Zeitstempels ohne Jahr und ohne Zeitzone. RFC 5424 ist ein echter Neuentwurf mit einem RFC-3339-Zeitstempel (Jahr, Zeitzone, Sekundenbruchteile), benannten Kopffeldern und optionalen strukturierten Daten. Kurz: 3164 beschrieb die alte Gewohnheit, 5424 schreibt ein echtes Format vor. Neue Systeme sollten 5424 nutzen.
Wie sieht der Zeitstempel von RFC 3164 aus? +
Er lautet Mmm dd hh:mm:ss in Ortszeit, zum Beispiel Oct 11 22:14:15, wobei der Tag auf zwei Zeichen mit Leerzeichen aufgefüllt wird. Er hat kein Jahr, keine Zeitzone und keine Sekundenbruchteile, was fast nutzlos ist, sobald man Logs von Maschinen in verschiedenen Zeitzonen einsammelt. Genau diese Schwäche ist der Hauptgrund, warum RFC 5424 existiert.
Verweise hierher
Andere Erklärseiten auf dieser Website, die auf diesen RFC zurückverweisen:
Wie RFC 3164 zusammenhängt
Seine Gegenstücke
-
RFC 5424 · abgelöst durch
Der echte Neuentwurf
Der Standards-Track-Nachfolger, der diesen hier ablöst, mit echtem RFC-3339-Zeitstempel, benannten Feldern und strukturierten Daten. Neue Systeme sollten ihn ansteuern, auch wenn der 3164-Dialekt sich weigert zu verschwinden.
-
RFC 3339 · die Lösung für seine größte Schwäche
Der Zeitstempel, den es nie hatte
Das strikte Datums- und Zeitformat mit Jahr und Zeitzone. Die jahreslose 3164-Uhr ist die größte Schwäche dieses RFC, und der Wechsel auf einen RFC-3339-Zeitstempel ist die zentrale Änderung von RFC 5424.
Teil eines geführten Clusters: Die Betriebs-RFCs fürs Netzwerk, erklärt