openbmc.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
From: Nan Zhou <nanzhou@google.com>
To: Brad Bishop <bradleyb@fuzziesquirrel.com>
Cc: Spencer Ku <spencer.ku@quanta.corp-partner.google.com>,
	Litzung Chen <litzung.chen@quanta.corp-partner.google.com>,
	openbmc@lists.ozlabs.org, Ofer Yehielli <ofery@google.com>,
	Ed Tanous <edtanous@google.com>,
	Richard Hanley <rhanley@google.com>,
	Justin Chen <juschen@google.com>, Zhenfei Tai <ztai@google.com>
Subject: Re: Host Serial Console Logs via Redfish
Date: Wed, 10 Mar 2021 12:53:10 -0800	[thread overview]
Message-ID: <CAOLfGj7sWt9S=NgCNgKdeeB+8JQJKq_A7b+J4nz8T7hhREXXPg@mail.gmail.com> (raw)
In-Reply-To: <20210309142956.ywqxbryyjcyffj75@thinkpad.fuzziesquirrel.com>

[-- Attachment #1: Type: text/plain, Size: 4703 bytes --]

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@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
>

[-- Attachment #2: Type: text/html, Size: 7182 bytes --]

  reply	other threads:[~2021-03-10 20:53 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-03-08 21:45 Host Serial Console Logs via Redfish Nan Zhou
2021-03-09 14:29 ` Brad Bishop
2021-03-10 20:53   ` Nan Zhou [this message]
2021-03-15  8:29 ` Spencer Ku (古世瑜)
2021-05-06  8:37 ` Spencer Ku (古世瑜)

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAOLfGj7sWt9S=NgCNgKdeeB+8JQJKq_A7b+J4nz8T7hhREXXPg@mail.gmail.com' \
    --to=nanzhou@google.com \
    --cc=bradleyb@fuzziesquirrel.com \
    --cc=edtanous@google.com \
    --cc=juschen@google.com \
    --cc=litzung.chen@quanta.corp-partner.google.com \
    --cc=ofery@google.com \
    --cc=openbmc@lists.ozlabs.org \
    --cc=rhanley@google.com \
    --cc=spencer.ku@quanta.corp-partner.google.com \
    --cc=ztai@google.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).