9.4. ABRT (自動バグ報告ツール)
Red Hat Enterprise Linux 6.6 以降、ABRT (バグ報告ツール) はバージョン 2 に更新されています。この更新により制約が一部取り除かれますが、
設定および動作に変更点があります。
クラッシュなどに伴う問題データがデータベースに格納されなくなります。この情報は問題データディレクトリーにしか格納されなくなります。これにより
/etc/abrt/abrt.conf
設定ファイルが簡略化され設定ディレクティブの一部が廃止予定になる、または別の場所で指定されることになります。
OpenGPGCheck
、BlackList
、ProcessUnpackaged
、BlackListedPaths
のディレクティブ/etc/abrt/abrt.conf
ファイルではなく、/etc/abrt/abrt-action-save-package-data.conf
ファイルで指定するようになります。Database
ディレクティブは不要になるため対応しなくなります。ActionsandReporters
ディレクティブはpost-create
イベントに置き換えられています。ABRT 2 でのイベントに関する詳細は 「ABRT イベント」 を参照してください。abrt.conf
ファイルの[AnalyzerActionsAndReporters]
セクションは非推奨になります。以前、このセクションで設定されていたディレクティブ (Kerneloops
、CCpp
、Python
) はanalyze_*
とreport_*
のイベントに置き換えられています。イベントの詳細については 「ABRT イベント」 を参照してください。- C/C++ のフック機能は
ReadonlyLocalDebugInfoDirs
ディレクティブを除きabrt-ccpp
サービスに置き換えられています。ReadonlyLocalDebugInfoDirs
ディレクティブはまだポートされていません。 - Python のフック機能は abrt-addon-python パッケージに置き換えられています。
- oops のフック機能は
abrt-oops
サービスおよび関連するabrt-dump-oops
とabrt-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