Red Hat Training

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

9.4. Automatic Bug Reporting Tool(ABRT)

从 Red Hat Enterprise Linux 6.6 起,错误自动陈述工具(Automatic Bug Reporting Tool ,简称 ABRT)已被更新到版本 2。这个更新删除了一些限制 ,但是涉及到了配置和行为的一些更改。
不再在数据库中存储问题数据,比如说是与故障有关的问题数据。现在,这个信息存储为问题数据目录文件。所以,已简化 /etc/abrt/abrt.conf 配置文件,而有些配置指令现在已过时或是指定在其它位置。
  • 不再在 /etc/abrt/abrt.conf 中指定 OpenGPGCheckBlackListProcessUnpackagedBlackListedPaths 指示。而是在 /etc/abrt/abrt-action-save-package-data.conf 文件中指定它们。
  • 不再需要或支持 Database 指示。
  • post-create 事件已经替代 ActionsandReporters 指示。更多关于 ABRT 2 中的事件,详情请参见〈第 9.4.1 节 “ABRT 事件”〉。
  • abrt.conf 文件的 [AnalyzerActionsAndReporters] 部分现在已经过时。analyze_*report_* 事件已经替代了之前在这部分配置的指示(KerneloopsCCppPython)。更多关于 ABRT 2 中事件,详情请参见〈第 9.4.1 节 “ABRT 事件”〉。
  • 除了还未被移植的 ReadonlyLocalDebugInfoDirs 指示,abrt-ccpp 服务已替代 C/C++ hook 功能 。
  • abrt-addon-python 软件包已替代 Python hook 的功能。
  • abrt-oops 服务、相关的 abrt-dump-oopsabrt-action-kerneloops 命令已经替代了内核 oops hook 的功能。
ABRT 提供了许多用于灵活自动地报告问题数据的命令,包括如下:
reporter-bugzilla
检查与 ABRT hash 有一样指定问题数据目录的 bug、注释现有的 bug,或者适当创建新的 bug。除默认软件包外,这个命令还需要 libreport-plugin-bugzilla 软件包。
reporter-kerneloops
报告 kernel 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 目录。它们包括如下:
事件名称
被触发的事件名。这是 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 report_event.conf