madm4x
Goto Top

Rsyslog was HUPed durch logrotate

Nabend,

ich hoffe der Bereich ist passend, ansonsten Bitte verschieben, Danke.

Seit kurzem habe ich ein RPi für Pi-Hole bereitgestellt. In diesem Zuge habe ich mir gedacht ich erweitere das ganze mal und nutzen den
RPi direkt auch mal als (R)syslog Server inkl. Loganalyzer.

Das klappt bisher auch Super....
Die "Standard" Logfiles werden auch ordnungsgemäß rotiert und die empfangenen Logs werden ebenfalls vernünftig Protokolliert.

Um die eigengehenden Logs übersichtlich zu halten und auch um sie übersichtlicher/getrennt
im Loganalyzer angezeigt zu bekommen habe ich folgende Konfig. erstellt.

/etc/rsyslog.d/10-netzlog.conf
# Logging external network devices
if $fromhost-ip == '**.**.**.**' then /var/log/synology  
& stop

if $fromhost-ip startswith '**.**.' then /var/log/netzlog  
& stop

if $fromhost-ip startswith '***.***.**.' then /var/log/netzlog  
& stop

Bis hierhin klappt auch alles wie gewünscht und fehlerfrei. Für das Rotieren der Logfiles die die
Einträge der externen Geräte empfangen hatte ich Ursprünglich folgende Konfig.

/etc/logrotate.de/loganalyzer
/var/log/synology
/var/log/netzlog
{
rotate 12
daily
missingok
notifempty
delaycompress
compress
postrotate
              invoke-rc.d rsyslog rotate > /dev/null
              invoke-rc.d rsyslog restart > /dev/null
endscript
}

Allerdings erhalte ich nach dem "Ausführen" dieser Konfig. für rsyslog immer den Status "rsyslog was HUPed".
Nach einigen Recherchen ist dies wohl "nur" ein Hinweis darauf das eben die Logfiles rotiert wurden.
Nur wird nachdem Rotieren nichts mehr in den neu erstellten Logfiles geschrieben.

Ein ändern der Konfig. in:
postrotate
invoke-rc.d rsyslog rotate > /dev/null
endscript
}

war leider Erfolglos und führte zum selben Ergebnis. Daraufhin habe ich mich ein wenig mehr mit Rsyslog bzw. Logrotate beschäftigt
und die Konfig. wie folgt geändert.

prerotate
    invoke-rc.d rsyslog stop > /dev/null
endscript
postrotate
    invoke-rc.d rsyslog rotate > /dev/null
    invoke-rc.d rsyslog restart > /dev/null
endscript

Das funktionierte sogar Überraschenderweise auf Anhieb, da dadurch während des Rotieren keine neuen Einträge empfangen werden können. Nachteil an der ganze Sache ist aber die Tatsache das die Einträge "prerotate" und "postrotate" für jede einzeln Angegebene Logfile separat ausgeführt werden. So daß nun rsyslog zwei mal gestoppt und wieder gestartet wird.

Wie bekomme ich es hin bzw. wie kann logrotate vermittelt das rsyslog vor dem Rotieren gestoppt wird und erst nach dem Rotieren aller Logfiles wieder gestartet wird???

Wäre schön wenn mir da jemand weiterhelfen kann.
Danke schon mal an alle die Helfen möchten.

VG und einen schönen Sonntagabend noch


p.s Etwas off-topic

Weiß jemand den genauen Syntax für das Filtern von Nachrichten per "msg isequal" unter aktueller Raspbian Version?

Für "msg contains" konnte ich das nach einigen Test erfolgreich einrichten mit
if $msg contains"EMBY.downloader" or $msg contains  
und falls in der msg selbst "" vorhanden sein müssen ist der Syntax
$msg contains'"type": "boxsets",'  

Für isequal habe ich nichts hinbekommen weder if $msg isequal"" oder if $msg, isequal,"" usw.
Weiß von euch jemand wie der genaue Syntax lautet? Damit dieser unter aktueller Raspbian Stretch läuft?

Content-Key: 465442

Url: https://administrator.de/contentid/465442

Printed on: April 20, 2024 at 00:04 o'clock

Member: aqui
aqui Jun 23, 2019 updated at 18:34:46 (UTC)
Goto Top
ansonsten Bitte verschieben, Danke.
Das kannst aus guten Gründen immer nur DU selber als der Besitzer dieses Threads (ThreadOwner !)
In sofern ist dieser Appell an die Forencommunity also mehr oder minder sinnfrei.

Eine Anleitung für einen Syslog Server auf dem RasPi findest du u.a. auch hier:
Netzwerk Management Server mit Raspberry Pi
Member: MadM4x
MadM4x Jun 23, 2019, updated at Mar 14, 2023 at 09:07:27 (UTC)
Goto Top
Das kannst aus guten Gründen immer nur DU selber als der Besitzer dieses Threads (ThreadOwner !)
In sofern ist dieser Appell an die Forencommunity also mehr oder minder sinnfrei.

Gut zu Wissen face-wink

Eine Anleitung für einen Syslog Server auf dem RasPi findest du u.a. auch hier:

Dein Thread kenne ich und er Dient auch als Grundlage zur Einrichtung des Servers.
Der Server sowie Loganalyzer funktionieren ja auch einwandfrei.
Mein Problem ist ja, daß beim Rotieren der Log in die Quasi "permanent" reingeschrieben wird durch
Logrotate ein "rsyslog was HUPed" verursacht wird und ich nicht weiß wie ich dies Sinnvoll unterbinden
bzw. vermeiden kann.

Einzig bisher funktionierende Lösung ist:
/etc/logrotate.d/loganalyzer
.
.
prerotate
    invoke-rc.d rsyslog stop > /dev/null
endscript
postrotate
    invoke-rc.d rsyslog rotate > /dev/null
    invoke-rc.d rsyslog restart > /dev/null
endscript

Da es aber mittlerweile 3 Logfiles in dieser Konfig. gibt bedeutet dies, dass rsyslog dreimal (also für jedes Logfile einzeln)
gestoppt und gestartet wird und ich gerne, falls möglich, einen besseren Weg hätte.

Dazu finde ich aber leider nichts in dem von dir genanten Link.
Member: bloodstix
Solution bloodstix Jun 24, 2019 updated at 09:12:13 (UTC)
Goto Top
Hallo,

das sollte eigentlich völlig ausreichen:
postrotate
                invoke-rc.d rsyslog rotate > /dev/null
        endscript

Aus der default-Konfig von rsyslog:
/var/log/mail.info
/var/log/mail.warn
/var/log/mail.err
/var/log/mail.log
/var/log/daemon.log
/var/log/kern.log
/var/log/auth.log
/var/log/user.log
/var/log/lpr.log
/var/log/cron.log
/var/log/debug
/var/log/messages
/var/log/dhcp.log
/var/log/cyrus.log
{
        rotate 4
        weekly
        missingok
        notifempty
        compress
        delaycompress
        sharedscripts
        postrotate
                invoke-rc.d rsyslog rotate > /dev/null
        endscript
}

Nachtrag: Das mit dem "was HUPed" ist völlig normal.
Member: MadM4x
MadM4x Jun 27, 2019 at 15:04:24 (UTC)
Goto Top
Nachtrag: Das mit dem "was HUPed" ist völlig normal.

Das konnte ich mittlerweile auch mehrfach nach Lesen und ums zu Testen
habe ich die seperaten Logfiles mal von daily auf weekly umgestellt.

Und sollte es dennoch zu Problemen kommen habe ich auch dafür bereits ne
Lösung und lasse in dem Fall rsyslog einfach per Cronjob neu starten face-wink