MongoDB для хранения разных файлов журналов (схемы)

StackOverflow https://stackoverflow.com/questions/2018857

  •  19-09-2019
  •  | 
  •  

Вопрос

Считаете ли вы, что использование базы данных MongoDB JSON для хранения файлов журналов из приложения является хорошей идеей и почему?

Единственным преимуществом для меня является абстракция схемы, но я думаю, что это также слабость, которую мы не можем обеспечить целостность файла журнала.

Это было полезно?

Решение

Очевидно, я предвзято (я работаю над MongoDB), но я думаю, что это очень хорошо работает для журналов.

Причины:

  • Это быстро для вставок и обновлений ... вы можете делать тысячи в секунду в секунду
  • Помимо обычных запросов, вы можете запускать аналитику и генерировать отчеты с помощью JavaScript. Вы могли бы провести работу Cron, которая работает по ночам, что делает хорошие вещи на ваши журналы.
  • Вы можете использовать Capped Collections, которые представляют собой коллекцию, которые действуют как очереди, чтобы сохранить только новейшие N KBS/MBS/GBS журналов

Я не уверен, что вы имеете в виду «Убедитесь, что целостность файла журнала» ... вы имеете в виду, что беспокоитесь о том, чтобы не знать, какие поля вынимаете документ? Если это так, я думаю, что вы обнаружите, что не труднее иметь дело с нулевыми полями в реляционной базе данных и гораздо более гибким.

Смотрите также: сообщение в блоге MongoDB о журнале журнала.

Другие советы

Я использую MongoDB для хранения журналов из многих приложений, и до сих пор он работает очень хорошо.

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

Сейчас я главный комитет в Log4mongo-Java, Log4j Appenders для MongoDB. Так что, вероятно, не слишком удивительно, что это то, что я использую.

Что касается целостности журнала, я предполагаю, что вы имеете в виду уверенность в том, что она не была изменена после его написания. Один вариант, который у вас есть, по крайней мере, с Log4mongo-Java, он для хранения событий журнала в базе данных, которая требует аутентификации. Это в некоторой степени ограничивает количество пользователей, которые могли бы добавлять, удалять или обновить события.

Кроме того, вы можете настроить раб репликации, который плотно заблокирован. Частые резервные копии раба, по крайней мере, ограничивают время, в течение которого можно изменить набор зарегистрированных событий.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top