Я использую MongoDB для хранения журналов из многих приложений, и до сих пор это работает очень хорошо.
Возможно, вы захотите взглянуть на слайды из презентации о поведении приложений журналирования в MongoDB , которую я дал на Mongo SV и на последнем собрании MongoDB SF, для получения дополнительной информации о том, почему я так думаю хорошо подходит для ведения журнала, а также для получения информации о библиотеках для Java, Python, Ruby, PHP и C #, которые поддерживают ведение журнала в MongoDB.
Теперь я главный коммиттер в log4mongo-java, приложениях Log4J для MongoDB. Так что, наверное, не слишком удивительно, что это то, что я использую.
Что касается целостности журнала, я предполагаю, что вы имеете в виду уверенность в том, что он не был изменен после его записи. У вас есть один вариант, по крайней мере с log4mongo-java, - хранить события регистрации в базе данных, которая требует аутентификации. Это в некоторой степени ограничит число пользователей, которые могут добавлять, удалять или обновлять события.
Кроме того, вы можете настроить подчиненное устройство репликации, которое будет жестко заблокировано. Частое резервное копирование ведомого по крайней мере ограничит время, в течение которого набор зарегистрированных событий может быть изменен.