Streaming logs via rsyslog
Deepak Kodihalli
dkodihal at linux.vnet.ibm.com
Thu Aug 16 20:21:09 AEST 2018
Hi,
We have a requirement to forward BMC logs (the systemd journal) to an
external logging server.
We're proposing doing this by making use of rsyslog. Here are notes
based on some initial investigation.
Forwarding the journal logs to a syslog daemon :
Journald has this feature of being able to write journal logs to a
socket which then can be read by a syslog daemon. I see that (on
Witherspoon at least) the syslog daemon running by default (busybox
syslogd) doesn't support reading logs forwarded by the journald to due
to this commit :
https://git.busybox.net/busybox/commit/?id=accd9eeb719916da974584b33b1aeced5f3bb346.
However, I could get the forwarding working with the rsyslog daemon. I
found an existing rsyslog recipe in the meta-oe layer.
rsyslog configuration :
rsyslog is configurable in various ways. For example, I can turn off
local logging altogether via a config file, if I'm interested only in
using rsyslog for streaming journal logs out. Various optional features
can be turned off at build time to save flash space.
rsyslog server provision :
The BMC would need to be made aware of the external rsyslog server. This
can just be an admin updating the rsyslog config file on the BMC, and
there could also be a REST API if need be. I think a small app can
implement the
https://github.com/openbmc/phosphor-dbus-interfaces/blob/master/xyz/openbmc_project/Network/Client.interface.yaml
interface to update the rsyslog config.
streaming :
rsyslog can be configured to make use of TCP, or UDP, and optionally
TLS. I think TCP is the default.
Thoughts on this proposal? If this sounds okay, I'm planning to get some
commits up in Gerrit for review. I can pull rsyslog in a phosphor layer
(I mean as the default choice of a syslog daemon, replacing busybox
syslog) if there's interest, as opposed to making it only a
meta-witherspoon package. Specific rsyslog package config and config
file overrides are possible in system specific layers.
Regards,
Deepak
More information about the openbmc
mailing list