Wie sortiere ich eingehende Protokollnachrichten mit Rsyslog nach Hostnamen und Zeitstempel?

Wie sortiere ich eingehende Protokollnachrichten mit Rsyslog nach Hostnamen und Zeitstempel?

Ich war neugierig, ob jemand die von Rsyslog erfassten eingehenden Protokolle nach Hostname und Zeitstempel im Protokoll sortiert hat.

Momentan sortiere ich Rsyslog, indem ich die Nachrichten nach dem Hostnamen in die entsprechenden Ordner verschiebe und Logrotate dann auf „täglich“ einstelle. Ich mache mir Sorgen, wenn nach Logrotation Protokolle eingehen, die einen Zeitstempel für den vorherigen Tag haben. Da nicht alle Serverzeiten synchron sind, dachte ich, dass dies zu Verwirrung führen könnte, wenn ich jemals die Protokolle durchsuchen muss und der Dateiname nicht 100 %ig das richtige Datum für die darin enthaltenen Protokolle ist.

Irgendeine Hilfe?

Prost

Antwort1

Stellen Sie sicher, dass Sie NTP zum Synchronisieren der Zeit verwenden. Wenn nicht, versuchen Sie, Nachrichteneigenschaftsvariablen zu verwenden. Dies sind Elemente, die aus der Nachricht oder den Verbindungsinformationen abgeleitet werden, wie etwa der Zeitstempel innerhalb der Nachricht, der Zeitstempel, wann die Nachricht auf dem lokalen System empfangen wurde, der Hostname in der Nachricht, der Hostname/die IP des Systems, das die Nachricht an die lokale Box übermittelt hat, PRI-Informationen usw. Für rsyslog Version 5 und früher waren dies die einzigen verfügbaren Variablen.

Versuchen Sie daher, die Empfangszeitvariable anstelle des Zeitstempels zu verwenden, um sicherzustellen, dass dieses Problem nie auftritt.

> $template TEMPLATE_NAME,"%timegenerated:::date-rfc3339% %fromhost% %syslogtag%%msg:::sp-if-no-1st-sp%%msg:::drop-last-lf%\n"

verwandte Informationen