Hi!

I'm from the team that develops ABRT [1], the Automatic Bug Reporting Tool
that is currently used in Fedora and RH Enterprise Linux. ABRT can
detect several types of application problems (e.g. binary segfaults,
uncaught python exceptions, ...), collect related data, and more or less
automatically report them somewhere.

For the detected crashes, ABRT can send something called uReport [2], a
small, machine-friendly report that doesn't necessarily contain enough
information to fix the underlying problem but can be useful to determine
whether similar problem happened before and to maintain crash
statistics. These reports can be collected by ABRT server (called "FAF"
in some places) - Fedora users send them to the instance located here
[3].

What we would like to do is to provide a Foreman plugin that would
associate to every Foreman-managed machine the uReports the machine
sent. The reports would then be displayed in the web interface so that
the administrator can see if something bad is going on on their machine.

We're not familiar with Foreman and still trying to figure out how would
this integration work. After a quick discussion with Foreman guys in Red
Hat Brno office, we've identified two design problems:


1. How should Foreman and ABRT server interact
----------------------------------------------

We were able to come up with two scenarios:

A) uReports are collected by ABRT server deployed by the administrator.
   Upon receiving a report, the ABRT server notifies Foreman (or Foreman
   can periodically ask the ABRT server for new reports). Foreman
   communicates with ABRT server using some kind of REST API.

* machine authentication has to be handled by ABRT server
* ABRT server has to provide suitable API
* not necessary to duplicate ABRT server code in Foreman

B) uReports are collected by Foreman, or some kind of proxy written for
   this purpose. The reports can be browsed in Foreman and can be
   forwarded to ABRT server instance, either automatically or after the
   administrator manually accepts the report. The report can be
   forwarded to ABRT server run by the administrator, or it can be
   forwarded to the instance managed by Fedora/Red Hat/etc.

* Foreman handles machine authentication
* administrator can benefit from this without deploying their own ABRT
  server
* subset of the ABRT server functionality would have to be implemented
  by the Foreman plugin/proxy


2. Machine authentication
-------------------------

uReports were originally designed to allow anonymous reporting, mainly
for Fedora users. They only contain data that are not considered
sensitive and we currently have no way to find out where did an uReport
come from.

While we could just add an item containing e.g. FQDN to the uReport,
such information can be easily spoofed. Can we take advantage of the
fact that there already exists authentication between the managed
machines and Foreman (or Puppet?)?


I'll be grateful for your thoughts on this subject.
Cheers,
Martin

[1] https://github.com/abrt
[2] https://github.com/abrt/faf/wiki/uReport#ureport2
[3] https://retrace.fedoraproject.org/faf/summary/

Reply via email to