Bug#762700: systemd: journald fails to forward most boot messages to syslog

Christian Seiler christian at iwakd.de
Wed Feb 25 23:25:16 GMT 2015


Am 2015-02-26 00:04, schrieb Michael Biebl:
>> Also: I'm not looking for a solution that solves this for any
>> possible amount of log messages, but I do think that the current
>> limit doesn't provide enough of a safety zone that one would like
>> to rely on.
>
> If we can make the journald -> syslog forwarding more robust, without
> introducing side-effects, by all means, let's do that. I'm happy to 
> take
> suggestions how to achieve that.

Well, see my suggestion to increase the max dgram queue length
(towards the end of [1]). Basically, call sysctl to increase it
before syslog.socket is started, I did that with a oneshot
service.

[1] 
http://lists.alioth.debian.org/pipermail/pkg-systemd-maintainers/2015-February/006197.html

>> w.r.t. imjournal: I wouldn't really care about configuration there,
>> but rsyslog is built without imjournal support
>
> That is not true, journal support has been enabled in rsyslog for 
> quite
> a while. It's split into a separate package called "rsyslog-journal",
> maybe that's why you didn't notice it?

$ apt-cache search rsyslog-journal
$ rmadison rsyslog-journal
$

(imjournal also yields nothing)

Am I doing something wrong?

>> And irrespective of all that, the problem of the boot messages
>> remains (and I don't mean only the really early ones, I mean
>> especially those of services ordered after $syslog under sysvinit).
>
> What specific problem are you talking about here?

http://lists.alioth.debian.org/pipermail/pkg-systemd-maintainers/2015-February/006207.html

I listed a couple of boot messages in there in response to your
question that do appear in the journal, and did appear in syslog
in Wheezy, but don't appear in the syslog in Jessie.

In case my explanation wasn't quite clear:

  - Wheezy or Jessie w/ sysvinit:
    Most non-early boot services are ordered after $syslog, which
    translates to rsyslog or syslog-ng init script. That means all
    messages they generate are stored in syslog.

  - Jessie w/ systemd:
    $syslog is equivalent to syslog.socket, so once
    remote-fs.target is reached, these services are immedaitely
    started. But syslog.service is also ordered after
    remote-fs.target, so it's started in parallel. syslog.service
    might take a while to start up, and other services are going
    to be faster. During that time, syslog.socket is still full
    with the first 11 early-boot messages, so messages generated
    by those services before syslog.service has started consuming
    the queued messages will be dropped from forwarding and not
    appear in syslog. This is clearly a regression compared to
    Wheezy. Not only very early boot messages get dropped, but
    also those that would have been logged under sysvinit.

    (Ok, technically some of those messages are from stderr of
    those daemons, so Wheezy wasn't quite as verbose, but
    still...)

    For example, if exim doesn't start up because of some weird
    temporary error, I would like to be able to figure that out
    once I notice it, which might not be immediately, depending
    on the circumstances. And if the journal has then already
    rotated the boot messages away, and it's not persistent, I
    won't be able to find out what happened.

Christian




More information about the Pkg-systemd-maintainers mailing list