Zentraler Syslog Server

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • 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 :

    Code
    # provides UDP syslog reception
    $ModLoad imudp
    $UDPServerRun 514

    Für den Empfang von TCP :

    Code
    # provides TCP syslog reception
    $ModLoad imtcp
    $InputTCPServerRun 514

    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:

    Code
    mkdir /var/log/remote
    chown -R syslog:adm /var/log/remote

    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:

    Code
    ################################
    #### 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.

    Code
    ################################
    #### One Log per Remotehost ####
    ################################
    $template DynaFile,"/var/log/remote/%FROMHOST-IP%.log"
    *.* -?DynaFile


    Nun noch den Dienst einmal neu starten.

    Code
    service rsyslog restart

    Jetzt sollten nach und nach die Remotehosts im Verzeichnis erscheinen :

    Code
    root@server:/# ls /var/log/remote/
    192.168.0.1.log
    192.168.0.7.log
    192.168.0.12.log

    Logrotate

    Damit die Log's mit Rotiert werden fügen wir noch eine Regel hinzu:

    Code
    nano /etc/logrotate.d/remotelogs

    mit folgendem Inhalt :


    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):

    Code
    *.*  @<remoteloghost>


    Für TCP ( wer es benötigt):

    Code
    *.*  @@<remoteloghost>

    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 :

    Code
    if $syslogseverity <= '5' then @<remoteloghost>


    Nicht vergessen den Dienst neu zu starten !

    Code
    service rsyslog restart

    Die Severity:

    Code
    0       Emergency
    1       Alert
    2       Critical
    3       Error
    4       Warning
    5       Notice
    6       Informational
    7       Debug

    Offizieller Schmier und Schmutzfink des Forum.
    Warum einfach wenn's auch schwer geht ?

    Kein Support per PN !
    Fragen bitte hier im Forum stellen. So hat jeder etwas davon.

    Einmal editiert, zuletzt von Der_Imperator (7. Februar 2015 um 10:12)

  • Lieber Imperator,

    vielen Dank für dieses Tutorial. ich wollte schon immer meine verschiedenen RPis zentral loggen lassen. Aber bis jetzt hatte ich keine Lust mich einzulesen.

    ABER: Leider funktionierte das Tutorial bei mir nicht :( Nach kurzer Suche musste ich feststellen, dass templates & rulesets nicht mit dem alten Debian rsyslog (5.x) funktionieren. Erst mit der Installation des Backport (7.x) läufts *freu*

    Einmal editiert, zuletzt von WernerPI (6. Februar 2015 um 22:36)

  • Danke für den Hinweis.
    Hab ich nicht bedacht da ich hier auf einen HP Server logge und nicht auf einen PI.
    Die Anleitung wurde überarbeitet.

    Offizieller Schmier und Schmutzfink des Forum.
    Warum einfach wenn's auch schwer geht ?

    Kein Support per PN !
    Fragen bitte hier im Forum stellen. So hat jeder etwas davon.

  • Leider bleibe ich bei dem Punkt Rechte fürs Verzeichnis setzen mit folgender Meldung hängen: chown: invalid user: ‘syslog:adm’ :(

    Außerdem kapiere ich als absoluter Pi Neuling die folgenden Punkte überhaupt nicht, vor allem WO das ganze eingetragen werden soll.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!