第22章 自動バグ報告ツール (ABRT)

22.1. ABRT の概要

自動バグ報告ツール (Automatic Bug Reporting Tool) は通常 ABRT と呼ばれるツールセットで、ユーザーがアプリケーションクラッシュを検出し、報告する手助けとなるように設計されています。主な目的は、問題の報告と解決方法の発見のプロセスを容易にすることです。この場合の解決方法には、Bugzilla チケット、ナレッジベースの記事、修正を含むバージョンへの更新の提案などが含まれます。
ABRT は、abrtd デーモンと、検出された問題をプロセス、分析、報告するための数多くのシステムサービスとユーティリティーで構成されます。ほとんどの場合、このデーモンはバックグラウンドで何も表示せずに実行されますが、アプリケーションがクラッシュしたり、カーネル oops が検出されるとアクションを起こします。その後デーモンは、コアファイル (ある場合) などの関連する問題データや、クラッシュしているアプリケーションのコマンドラインパラメーター、さらに他のフォレンジックユーティリティーのデータなどを収集します。
ABRT は現在、C、C++、Java、Python、および Ruby プログラミング言語で書かれたアプリケーションにおけるクラッシュと、X.Org クラッシュ、カーネル oopses、およびカーネルパニックの検出をサポートしています。サポート対象の障害およびクラッシュのタイプおよびこれらが検出される方法についての詳細情報は、「ソフトウェア問題の検出」 を参照してください。
特定された問題はリモートの問題トラッカーに報告され、このレポーティングは、問題が検出された際に常に自動的に報告されるように設定することが可能です。問題データは、ローカルまたは専用のシステムに保存して、ユーザーが手動でレビュー、報告、削除することも可能です。このレポーティングツールは、問題データを Bugzilla データベースや Red Hat テクニカルサポート (RHTSupport) の web サイトに送信できるほか、FTP/SCP を使用したアップロード、メールでの送信、またはファイルへの書き込みなどにも対応しています。
既存の問題データを処理する ABRT コンポーネントは (新規の問題データの作成などとは対照的に)、libreport という別のプロジェクトの一部です。libreport ライブラリーは問題の分析および報告のための包括的メカニズムを提供し、ABRT 以外のアプリケーションでも使用されます。ただし、ABRTlibreport の操作と設定は密接に統合されているため、本ガイドでも取り上げています。