Ich verwende rsyslog, um Protokolle von Remote-Hosts auf folgende Weise auf einem Server zu speichern:
Server:
# Logfile for each host
$template DynaFile,"/var/log/rsyslog/%HOSTNAME%.log"
*.* -?DynaFile
Kunden:
*.* @servername
Dadurch werden Protokolldateien für jeden Client-Host auf Servern erstellt, /var/log/rsyslog/
aber jede Nachricht wird auch auf den Servern protokolliert /var/log/syslog
. So wird es wirklich aufgebläht. Wie kann ich verhindern, dass /var/log/syslog
nur Nachrichten vom Server selbst enthalten sind?
/var/log/syslog
Antworten:
Folgendes funktioniert bei mir:
quelle
TempAuth
undTempMsg
?Ich habe viel daran gearbeitet und ich denke, ich habe eine Lösung gefunden. Ich ermutige andere, dies zu versuchen und nach potenziell nachteiligen Folgen zu suchen. Ich schlage vor, dies zuerst auf Labor- / Test- und nicht kritischen Maschinen zu implementieren.
Die obigen 4 Zeilen befinden sich im obersten Abschnitt meiner Datei /etc/rsyslog.conf
Ich beobachte derzeit zwei Protokolldateien:
/var/log/net-hosts/10.1.1.1
und / var / log / syslog,
während ich beide beobachte. Ich sehe, dass Protokolle in die Remote-Host-Datei eingefügt werden, jedoch nicht im Syslog . Ich habe Apache neu gestartet und Protokolleinträge in Syslog für diese Aufgabe gesehen.
quelle
Sie müssen sicherstellen, dass Ihre neuen Regeln ausgewertet werden, bevor Sie sich bei / var / log / syslog anmelden.
Zum Beispiel unter Ubuntu Trusty (rsyslog 7.4.4) enthält /etc/rsyslog.conf,
$IncludeConfig /etc/rsyslog.d/*.conf
sodass die Standardregeln geladen werden
/etc/rsyslog.d/50-default.conf
, einschließlich der für / var / log / syslog.In diesem Fall können Sie eine neue Datei hinzufügen, die vor dieser geladen werden soll, z
00-remote.conf
. Der Vollständigkeit halber ist hier der Inhalt für ein System, das ich verwalte:quelle