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
中指定OpenGPGCheck
、BlackList
、ProcessUnpackaged
和BlackListedPaths
指示。而是在/etc/abrt/abrt-action-save-package-data.conf
文件中指定它们。 - 不再需要或支持
Database
指示。 abrt.conf
文件的[AnalyzerActionsAndReporters]
部分现在已经过时。analyze_*
和report_*
事件已经替代了之前在这部分配置的指示(Kerneloops
、CCpp
和Python
)。更多关于 ABRT 2 中事件,详情请参见〈第 9.4.1 节 “ABRT 事件”〉。- 除了还未被移植的
ReadonlyLocalDebugInfoDirs
指示,abrt-ccpp
服务已替代 C/C++ hook 功能 。 - abrt-addon-python 软件包已替代 Python hook 的功能。
abrt-oops
服务、相关的abrt-dump-oops
和abrt-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