Skip to content

ABRTの使い方

2016/1/4

ABRTに触れる機会があったのでメモ。

ABRTとは?

ABRTはアプリケーションのクラッシュ時のレポート生成ツール。
RedHat系のディストリビューションに入っている。(もちろんCentOSにも入っている※)
基本的にはC/C++およびPython言語で書かれたアプリケーションのクラッシュに対応するが、設定次第ではカーネルのクラッシュにも対応しているとのこと。
作成したレポートはRedHat等に簡単に送信できる。(RedHatサポートを受けている場合)

※なお、minimalでインストールしたCentOS7には入っていなかった。
Base (Infrastructure Server) Packagesで入るっぽい。

デフォルト設定の場合、クラッシュ時、以下のディレクトリにレポート情報が生成される。
/var/spool/abrt/

レポート情報を扱うコマンドは以下の通り(rootユーザで実行すること)

レポートの一覧を表示

# abrt-cli list

以下のように表示される

Directory:      /var/spool/abrt/[レポートが作成された日付情報] # レポート情報が集約されているディレクトリ
count:          2 # 同じクラッシュが発生した回数
executable:     /usr/bin/hoge # クラッシュを発生させたバイナリやスクリプト
package:        hoge.el6.centos # クラッシュを発生させたパッケージ
time:           dd MM yyyy hh:mm:ss # クラッシュ発生時刻
uid:            fuga # プログラムを実行していたユーザID

レポートの詳細を表示

# abrt-cli info [-d] [Directory]

[Directory]にはlistで表示されているDirectory: のパスを入れれば良い。
-d オプションをつけることでより詳細に表示することができる。
ここを見れば大体クラッシュの原因を特定できる。

レポートを送信

# abrt-cli report [Directory]

RedHatにレポート情報を送ったりできる。
ただし、誰でも閲覧できるような感じになってしまうらしいので、
送ってしまってはまずい情報とか入っていないか注意したほうが良いらしい。

レポートを削除

# abrt-cli rm [Directory]

特に報告が必要内容なものを検出した場合削除できる。
ABRTは繰り返し検出したものについて、対応要求は1回しか出さないらしいが、上記コマンドでレポート情報を削除してしまうと、次回に同じ問題が起こった場合、初期発見の扱いとなる。

各アプリケーションのレポート設定情報は以下に格納されている。
/etc/libreport

ABRT自体の設定情報は以下
/etc/abrt/abrt.conf

ABRTは複数のサーバのレポート情報を1つのサーバに集約することも可能とのこと。

参考にしたサイト

RedHatEnterpriseLinux導入ガイド