18 мар. 2013 г.

Настройка abrt (automatic bug reporting tool) в RHEL6

abrtd - демон, который следит за крэшами программулин и в случае крэша делает core dump и сохраняет всякий другой полезный в отладке stuff. И - самое полезное - от может уведомлять нас сразу же о проблеме и даже аплоадить дебаг инфу на багзиллу или нужный ftp/scp сервер.

Постановка задачи - настроить в abrt отправку писем при обнаружении крэша кастомного софта на сервере.

Для начала установим необходимые пакеты.

yum install abrt-addon-ccpp abrt-addon-python abrt-cli abrt-plugin-logger abrt-plugin-mailx abrt-tui abrt

Если это для вас важно, то следует заметить, что установка abrt меняет kernel core_pattern:

cat /proc/sys/kernel/core_pattern

/usr/libexec/abrt-hook-ccpp %s %c %p %u %g %t e

Добавим в автозагрузку демона abrtd:

chkconfig abrtd on
chkconfig abrt-ccpp on
chkconfig abrt-oops on

Конфигурационные файлы abrt находятся в директориях:
  • /etc/libreport/ - хранит конфиги связанные с репортами
  • /etc/libreport/events.d/ - здесь лежат описания ивентов и реакции на них
  • /etc/libreport/events/ - описание т. н. репортеров
  • /etc/libreport/plugins/
  • /etc/abrt/ - конфиги самого демона abrtd
  • /etc/abrt/plugins/ - конфиги плугинов abrt.
Нас все конфиги не интересуют, потому перечислю, что нужно поменять:


/etc/abrt/abrt-action-save-package-data.conf - меняем значения:

OpenGPGCheck = no         # говорим обрабатывать краши и не подписанных файлов
ProcessUnpackaged = yes   # обрабатывать файлы, не принадлежащие пакетам rpm

/etc/libreport/events.d/abrt_event.conf здесь добавляем обработчики ивентов в конец файла:

EVENT=notify            reporter-mailx

EVENT=notify_dup        reporter-mailx

/etc/libreport/plugins/mailx.conf - здесь лежат настройки для отправки писем.

 Subject="[ABRT] crash in Example server detected"
 EmailFrom=monitoring@example.com
 EmailTo=admin@example.com,progger@example.com

В принципе, для работы этого достаточно. Но можно настроить на ивенты и заливку крэш-данных на свой фтп-сервер и на багзиллу.

Посмотреть отчет о произошедших проблемах можно командой:

abrt-cli list -f

А сами проблемы лежат в подпапках /var/spool/abrt/ccpp-*
Кстати, проблемы от одних и тех же источников abrt считает дубликатами и удаляет.