Hinweis : hier wird als root gearbeitet. Wer nicht als root arbeitet muß sudo verwenden
Manchmal ist es von Vorteil den Syslog Zentral auf einem Server zu haben.
Hier wird beschrieben wie Ihr einen PI als Zentralen Syslogserver konfiguriert und die anderen PI dazu bringt die Logs dort hin zu senden.
Der Server verarbeitet auch Remote Syslog von Firewalls, Routern etc...
Der Server
Konfiguration
Wir öffnen die Datei /etc/rsyslog.conf und ändern folgende Einträge :
Für den Empfang von UDP :
Für den Empfang von TCP :
Um nicht alles im syslog des Server zu haben schreiben wir eine Datei pro Remote Client in ein extra Verzeichnis.
Wir erstellen das Verzeichnis und setzen die Rechte:
Damit jetzt für jeden Clienten ein eigenes Logfile erstellet wird und NICHT in das Server Syslog zu schreiben fügen wir folgenden Eintrag vor den Global Directives hinzu:
################################
#### One Log per Remotehost ####
################################
template(name="DynFile" type="string" string="/var/log/remote/%FROMHOST-IP%.log")
ruleset(name="RemoteDevice"){
action(type="omfile" dynaFile="DynFile")
}
module(load="imudp")
input(type="imudp" port="514" ruleset="RemoteDevice")
Ältere versionen des rsyslog kommen mit den Template und Ruleset noch nicht klar.
Danke an WernerPI für den Hinweis.
hier kann man die Logfile folgendermaßen in ein extra Verzeichnis umleiten :
Allerdings landen hier auch alle Remotelogs im syslog des Server.
################################
#### One Log per Remotehost ####
################################
$template DynaFile,"/var/log/remote/%FROMHOST-IP%.log"
*.* -?DynaFile
Nun noch den Dienst einmal neu starten.
Jetzt sollten nach und nach die Remotehosts im Verzeichnis erscheinen :
Logrotate
Damit die Log's mit Rotiert werden fügen wir noch eine Regel hinzu:
mit folgendem Inhalt :
/var/log/remote/*.log {
daily # täglich Rotieren
missingok # Falls das Log nicht existiert ignoriere es
rotate 5 # Behalte 5 Logiles
compress # Komprimiere die alten Logs
delaycompress # Verschiebt die Kompression des letzten Logfiles auf den nächsten Rotationszyklus.
# Das hat nur im Zusammenhang mit compress Bedeutung. Es kann verwendet werden, wenn
# Programme nicht dazu veranlasst werden können, ihre Logdateien zu schließen und
# daher noch in die alte Datei weiterschreiben wollen.
notifempty # Leere Logdateien werden nicht rotiert
}
Alles anzeigen
Der Client
Log alles zum Remotehost
Wir öffnen die /etc/rsyslog.conf und fügen als erste Regel unter Global Diretives folgendes hinzu :
Für UDP (Standart):
Für TCP ( wer es benötigt):
Nicht alles zum Server schicken
Um nicht alles an den Server weiterzuleiten kann man die Regel auch einschränken.
Im folgenden Beispiel wird nur alles was eine Severity kleiner/gleich 5 hat an den Remote-Server weitergeleitet.
Meldungen vom Typ
Informational ( Severity 6 ) und
Debug ( Severity 7 )
werden nicht weitergeleitet.
Dazu einfach den Eintrag folgendermassen ändern :
Nicht vergessen den Dienst neu zu starten !
Die Severity: