Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

9.4. ABRT (自動バグ報告ツール)

Red Hat Enterprise Linux 6.6 以降、ABRT (バグ報告ツール) はバージョン 2 に更新されています。この更新により制約が一部取り除かれますが、 設定および動作に変更点があります。
クラッシュなどに伴う問題データがデータベースに格納されなくなります。この情報は問題データディレクトリーにしか格納されなくなります。これにより /etc/abrt/abrt.conf 設定ファイルが簡略化され設定ディレクティブの一部が廃止予定になる、または別の場所で指定されることになります。
  • OpenGPGCheckBlackListProcessUnpackagedBlackListedPaths のディレクティブ /etc/abrt/abrt.conf ファイルではなく、/etc/abrt/abrt-action-save-package-data.conf ファイルで指定するようになります。
  • Database ディレクティブは不要になるため対応しなくなります。
  • ActionsandReporters ディレクティブは post-create イベントに置き換えられています。ABRT 2 でのイベントに関する詳細は 「ABRT イベント」 を参照してください。
  • abrt.conf ファイルの [AnalyzerActionsAndReporters] セクションは非推奨になります。以前、このセクションで設定されていたディレクティブ (KerneloopsCCppPython) は analyze_*report_* のイベントに置き換えられています。イベントの詳細については 「ABRT イベント」 を参照してください。
  • C/C++ のフック機能は ReadonlyLocalDebugInfoDirs ディレクティブを除き abrt-ccpp サービスに置き換えられています。ReadonlyLocalDebugInfoDirs ディレクティブはまだポートされていません。
  • Python のフック機能は abrt-addon-python パッケージに置き換えられています。
  • oops のフック機能は abrt-oops サービスおよび関連する abrt-dump-oopsabrt-action-kerneloops のコマンドに置き換えられています。
ABRT では問題データを柔軟に自動化して報告できるよう以下のようなコマンドを用意しています。
reporter-bugzilla
指定問題データのディレクトリを読み取り、同じ ABRT ハッシュを持つバグがないか Bugzilla を検索します。同じハッシュを持つバグが見つかった場合、そのバグにコメントが残されます。同じ ABRT ハッシュを持つバグがなかった場合は新しいバグが作成されます。デフォルトのパッケージの他、libreport-plugin-bugzilla パッケージも追加で必要とします。
reporter-kerneloops
カーネルの oops を適切なサイトに報告します。デフォルトのパッケージの他、libreport-plugin-kerneloops パッケージも追加で必要とします。
reporter-mailx
メールで問題データのディレクトリーのコンテンツを送信します。デフォルトのパッケージの他、libreport-plugin-mailx プラグインも追加で必要とします。
reporter-print
問題データを標準の出力または指定したファイルに表示します。デフォルトのパッケージの他、libreport-plugin-logger パッケージも追加で必要とします。
reporter-rhtsupport
問題データを RHT サポートに報告します。デフォルトのパッケージの他、libreport-plugin-rhtsupport プラグインも追加で必要とします。
reporter-upload
問題データのディレクトリーの tarball を指定した URL にアップロードします。デフォルトのパッケージの他、libreport-plugin-reportuploader パッケージも追加で必要とします。

9.4.1. ABRT イベント

ABRT 2 では ABRT のワークフローに設定可能なイベントが追加されます。問題データが記録されるとイベントが発生します。イベントによって問題データに対し行う動作が特定されます。データの分析方法を変更したりデータのアップロード先を指定したりすることもできます。また、特定の特性を持つ問題データが記録された場合にのみイベントが発生するよう設定することもできます。
イベントの設定ファイルは /etc/libreport/events.d ディレクトリーに格納されます。次のようなものが含まれます。
イベント名
発生させるイベントの名前です。これは 1 番目の引数となる EVENT パラメーターです。たとえば、次のイベント設定ファイルには report_Bugzilla という名前のイベントが含まれています。
EVENT=report_Bugzilla analyzer=Python
   reporter-bugzilla -c /etc/libreport/plugins/Bugzilla.conf
条件
指定した条件が問題データに一致する場合、このイベントに指定した動作が問題データに実行されます。この例では、Python の値を含んでいる analyzer ファイルが問題データのディレクトリーに格納されている場合にのみイベントが発生します。
EVENT=report_Bugzilla analyzer=Python
   reporter-bugzilla -c /etc/libreport/plugins/Bugzilla.conf
動作
このイベントが発生する問題データに対して行われる動作です。この場合、reporter-bugzilla コマンドが実行されます。
EVENT=report_Bugzilla analyzer=Python
   reporter-bugzilla -c /etc/libreport/plugins/Bugzilla.conf
詳しくは man ページを参照してください。
$ man report_event.conf