Syslog leer nach logrotate

  • Habe einen frisch installierten vServer mit Ubuntu 10.04:

    Code
    ~$ uname -srvm
    Linux 2.6.35.10-vs2.3.0.36.33-netcup #3 SMP Tue Dec 21 06:50:01 UTC 2010 x86_64

    Dabei habe ich morgens das Problem, daß /var/log/syslog leer ist (und weiter in die 'alte' syslog geschrieben wird).


    Ich denke, das liegt daran, daß der rsyslogd nach dem Rotieren der Logdateien nicht neu gestartet wird, obwohl es eigentlich passieren sollte:

    Das - glaube ich - liegt daran, daß der Status von rsyslog falsch gemeldet wird:

    Code
    ~$ sudo status rsyslog
    rsyslog stop/waiting

    Und das obwohl er doch läuft:

    Code
    ~$ ps aux|grep ^syslog
    syslog    4287  0.0  0.2 177200  1440 ?        Sl   May02   0:00 rsyslogd -c4

    Mit anderen daemons funktioniert das aber klaglos:

    Code
    ~$ sudo status ssh
    ssh start/running, process 4288

    Hat irgendjemand eine Idee dazu?

  • Es würde auch schon helfen, wenn jemand anderer dasselbe Problem auf einem netcup Vserver hat - dann macht es vielleicht Sinn den netcup Support einzuschalten.

  • Ich konnte das zugrundeliegende Problem nicht lösen (Status wird falsch gemeldet), habe jedoch einen Workaround gefunden, damit syslog wieder befüllt wird.


    In der Datei '/etc/logrotate.d/rsyslog' habe ich folgende Modifikation vorgenommen:

    Der ursprüngliche Eintrag hat so ausgesehen:

  • Danke für deinen Hinweis. Bei meinem vServer mit Ubuntu 10.04 wird tatsächlich auch seit der Installation vor ca. 4 Wochen in /var/log/syslog.1 geschrieben. "status rsyslog" ist wie bei dir falsch.

  • Hallo, hatte das selbe Problem nach Update auf 10.04.


    Ich habe bei mir die /etc/init/rsyslog.conf angepasst, seitdem funktioniert wieder alles ...



    # rsyslog - system logging daemon
    #
    # rsyslog is an enhanced multi-threaded replacement for the traditional
    # syslog daemon, logging messages from applications


    description "system logging daemon"


    start on filesystem
    #start on startup
    stop on runlevel [06]


    expect fork
    respawn


    script
    . /etc/default/rsyslog
    exec rsyslogd $RSYSLOGD_OPTIONS
    end script



    ansonsten habe ich keine weitern Anpassungen vornehmen müssen.

  • Danke für die Information.


    Meine 'rsyslog.conf' ist noch unmodifiziert und sieht so aus:

    Die Unterschiede sind somit:

    Code
    start on filesystem
    expect fork

    Und laut netcup Wiki sollen genau diese beiden Settings nicht verwendet werden: http://www.netcup-wiki.de/wiki/Startup


    Ich bin verwirrt.

  • Hm, mein Fehler - im Wiki hab ich natürlich nicht nachgelesen ...


    Aber seit ich meine Konfig wie beschrieben angepasst habe funktioniert der Logrotate sauber und ich habe auch noch keine Probleme bei einem Neustart gehabt !?!


    Nachdem ich den Wiki Artikel jetzt gelesen habe :)
    Habe ich folgende Anpassung vorgenommen


    root@mail:~# cat /etc/init/rsyslog.conf
    # rsyslog - system logging daemon
    #
    # rsyslog is an enhanced multi-threaded replacement for the traditional
    # syslog daemon, logging messages from applications


    description "system logging daemon"


    start on filesystem
    #start on startup
    stop on runlevel [06]


    #expect fork
    respawn


    script
    . /etc/default/rsyslog
    exec rsyslogd $RSYSLOGD_OPTIONS
    end script


    root@mail:~# cat /etc/default/rsyslog
    # Options for rsyslogd
    # -m 0 disables 'MARK' messages (deprecated, only used in compat mode < 3)
    # -r enables logging from remote machines (deprecated, only used in compat mode < 3)
    # -x disables DNS lookups on messages received with -r
    # -c compatibility mode
    # See rsyslogd(8) for more details
    RSYSLOGD_OPTIONS="-c4 -n"


    Die Option -n bedeutet: Avoid auto-backgrounding, mit diesem Parameter gibt "status rsyslog" dann auch den Dienststatus korrekt zurück. Ich werde die Sache in den nächsten Tagen mal beobachten, aber ich denke das es so funktioniert. Zumindest läuft nach einem Neustart und nach manuellem stop/start des rsyslog alles sauber.


    Danke für den Tipp mit dem Wiki, wer lesen kann ist halt klar im Vorteil :-))


    Gruß
    Andreas