Создать журнал аудита из консоли irb или rails?

В рамках процедур безопасности для нашего приложения Rails мы хотим иметь журнал аудита команд, которые были запущены из консоли rails в нашей производственной среде.

Этот журнал аудита должен где-то храниться, например в базе данных, в файле в корзине S3 и т. п. Если бы это можно было записать в стандартный журнал rails, это тоже было бы нормально, так как у нас уже есть способ сохранить это.

В настоящее время мы размещены на Heroku. Heroku будет регистрировать событие запуска консоли, но (а) Heroku не предоставляет функций для регистрации команд, запускаемых с активной консоли, и (б) нам нужно более универсальное решение.

Существуют ли какие-либо уже существующие решения для этого?


Если его нет, я пытаюсь понять, как исправить IRB или консоль Rails.

Я обнаружил, что нужные мне данные уже находятся в

Readline::HISTORY

но я изо всех сил пытаюсь понять, где/как подключиться к нему.

В идеале я хотел бы захватить каждую запись, когда (до?) она отправляется интерпретатору, и быстро сохранить ее где-нибудь (у нас уже есть Resque, так что это может быть хорошим решением). FWIW, отправка содержимого Readline::HISTORY в Kernel.exit кажется ненадежной. Например, если SIGKILL остановит процесс, содержимое истории не будет сохранено.


person Neal Tovsen    schedule 03.06.2014    source источник
comment
Посмотрите здесь: stackoverflow.com/questions /11137050/. Вы можете указать файл истории.   -  person Damien Roche    schedule 04.06.2014
comment
И еще одна релевантная ссылка: stackoverflow.com/questions /4218940/   -  person Damien Roche    schedule 04.06.2014
comment
Конечно, но (а) IIRC, это записывает файл только при успешном выходе, что не соответствует моим потребностям, и (б) это не будет работать в эфемерной файловой системе Heroku, поскольку файл будет удален, как только он было написано.   -  person Neal Tovsen    schedule 05.06.2014