Host Serial Console Logs via Redfish

Nan Zhou nanzhou at google.com
Thu Mar 11 07:53:10 AEDT 2021


Hi Brad,

Thanks for your reply!

>that phosphor-hostlogger collects host serial console logs via obmc-console
> >and generates tarballs in a rotation manner. These tarballs are then
> >consumed and exposed by a new node in bmcweb log service.
>
> Is it one console line per LogEntry?
>

Yes, one line per LogEntry. A line produced by phosphor-hostlogger in the
zip file has a timestamp + log message in it. The timestamp is then filled
into LogEntries.

>We propose the following methods to improve it.
> >
> >   - Method 1: *D-Bus Signal*; phosphor-hostlogger implements an interface
> >   which contains a signal. The payload of the signal should contain
> >   timestamps and log messages.  BmcWeb registers as a listener and once
> it
> >   receives a signal, it populates a new LogEntry. BmcWeb should
> implement its
> >   own configurable ring buffer to store log entries received from D-Bus.
> >   - Method 2: *File Watcher*; add file watchers in BmcWeb to monitor the
> >   log files produced by phosphor-hostlogger. This method is similar to
> method
> >   1. But persistence is still a necessary condition.
> >   - Method 3: *obmc-console + bmcweb*: install the console collection and
> >   ring buffer parts of phosphor-hostlogger as a library. Use the library
> >   directly in BmcWeb to collect console logs.
> >   - Method 4: *phosphor-hostlogger + journal + rsyslog + bmcweb*: this
> >   architecture is very similar to what the current OpenBMC uses for
> >   redfish-event
> >   <
> https://github.com/openbmc/docs/blob/master/architecture/redfish-logging-in-bmcweb.md
> >.
> >   Add a new schema for log entries. Publish journal logs in
> >   phosphor-hostlogger. Add file watchers in BmcWeb to monitor the log
> files
> >   produced by rsyslog. rsyslog should have log rotation enabled.
> Persistence
> >   is still a necessary condition.
> Perhaps a missing option here is a single dbus object per LogEntry?  I'm
> not necessarily advocating for that - can I assume that was not
> considered because of performance/scaling concerns?

Yes, one DBus object per LogEntry is an option. But as you said, this
option might not scale. We want to mimic a near real-time console via
Redfish and we care about latency.

Sincerely,
Nan

On Tue, Mar 9, 2021 at 6:30 AM Brad Bishop <bradleyb at fuzziesquirrel.com>
wrote:

> Hi Nan
>
> Thanks for this announcement.  I don't have a lot of specific feedback
> for you, but this sort of introduction to new content is super helpful
> for the overall health of OpenBMC.
>
> On Mon, Mar 08, 2021 at 01:45:00PM -0800, Nan Zhou wrote:
>
> >Implementation for Phase 1 is in
> >https://gerrit.openbmc-project.xyz/c/openbmc/bmcweb/+/39093. It is
> >based on obmc-console, phosphor-hostlogger, and bmcweb. The basic idea is
>
> I like how you are making use of these existing projects.
>
> >that phosphor-hostlogger collects host serial console logs via
> obmc-console
> >and generates tarballs in a rotation manner. These tarballs are then
> >consumed and exposed by a new node in bmcweb log service.
>
> Is it one console line per LogEntry?
>
> >We propose the following methods to improve it.
> >
> >   - Method 1: *D-Bus Signal*; phosphor-hostlogger implements an interface
> >   which contains a signal. The payload of the signal should contain
> >   timestamps and log messages.  BmcWeb registers as a listener and once
> it
> >   receives a signal, it populates a new LogEntry. BmcWeb should
> implement its
> >   own configurable ring buffer to store log entries received from D-Bus.
> >   - Method 2: *File Watcher*; add file watchers in BmcWeb to monitor the
> >   log files produced by phosphor-hostlogger. This method is similar to
> method
> >   1. But persistence is still a necessary condition.
> >   - Method 3: *obmc-console + bmcweb*: install the console collection and
> >   ring buffer parts of phosphor-hostlogger as a library. Use the library
> >   directly in BmcWeb to collect console logs.
> >   - Method 4: *phosphor-hostlogger + journal + rsyslog + bmcweb*: this
> >   architecture is very similar to what the current OpenBMC uses for
> >   redfish-event
> >   <
> https://github.com/openbmc/docs/blob/master/architecture/redfish-logging-in-bmcweb.md
> >.
> >   Add a new schema for log entries. Publish journal logs in
> >   phosphor-hostlogger. Add file watchers in BmcWeb to monitor the log
> files
> >   produced by rsyslog. rsyslog should have log rotation enabled.
> Persistence
> >   is still a necessary condition.
>
> Perhaps a missing option here is a single dbus object per LogEntry?  I'm
> not necessarily advocating for that - can I assume that was not
> considered because of performance/scaling concerns?
>
> -brad
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ozlabs.org/pipermail/openbmc/attachments/20210310/1a714799/attachment.htm>


More information about the openbmc mailing list