Вход в базу данных вместо файлов журнала

Я заинтересован в том, чтобы отправлять все журналы приложений Rails в базу данных (MySQL или MongoDB) либо в дополнение, либо вместо файла журнала. Есть несколько причин, большинство из которых касаются анализа файлов журналов. Мы уже используем Google Analytics, но есть ряд вещей, которые мы хотим сделать, но которые не подходят для Google Analytics.

Кроме того, я хотел бы делать «в реальном времени». расследование проблем путем просмотра журналов. Просеивание файла журнала является утомительным способом сделать это, и я хотел бы сделать поиск и фильтрацию лучше, чем позволяет (легко) файл журнала.

Наконец, я часто хочу изучить что-то ближе к поведению посетителя сайта: например, проследить путь через сайт, чтобы я мог видеть, какую последнюю страницу просматривал пользователь перед тем, как произошла ошибка. Учитывая, что у нас есть несколько серверов приложений, отдельные файлы журнала делают это настоящей болью. Если бы все данные были в базе данных, я мог бы легко увидеть правильную последовательность страниц для данного посетителя. Я знаю, что Syslog был бы одним из способов решения этой конкретной проблемы (один файл журнала / репозиторий), но я хочу объединить это с лучшими возможностями поиска, которые я связываю с поиском в базе данных.

Мне интересно, что люди рекомендуют для решения этой проблемы. Вы непосредственно входите в базу данных или вы записываете файлы журналов в базу данных (но каков ваш подход к этому, чтобы он был практически в реальном времени / таким же актуальным, как и сам файл журнала)?

В настоящее время я определяю, на каком уровне мне нравится это ведение журнала, потому что еще одна вещь, на которую я смотрел, - это написание небольшого фильтра Rack, который бы регистрировал все запросы. Это пропустило бы весь дополнительный вывод, который выгружает обычная запись в журнале Rails (весь SQL и вывод при попаданиях и пропаданиях кэша и т. Д.), Но это достигло бы большую часть моей цели и, похоже, имеет преимущество в том, что не беспокоило что-нибудь еще в системе.

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

Ответы на вопрос(6)

Ваш ответ на вопрос