Я решил пересмотреть этот принятый ответ, поскольку состояние искусства значительно изменилось за последние 18 месяцев, и существуют гораздо лучшие альтернативы.
Новый ответ
MongoDB является подпаритет выбор для масштабируемого решения протоколирования. Для этого есть обычные причины (например, производительность записи под нагрузкой). Я хотел бы предложить еще один вариант, который заключается только в том, что он разрешает только один вариант использования в решении для регистрации.
Сильное решение протоколирования должен охватывать по крайней мере, следующие этапы:
- Коллекция
- Транспорт
- Обработка
- хранения
- Поиск
- Визуализация
MongoDB как выбор только разрешает использование Хранения (хотя и немного плохо). После анализа всей цепочки есть более подходящие решения.
@ KazukiOhta упоминает несколько вариантов. Я предпочитаю конец конечного раствора в эти дни включает в себя:
T он в основе использования ElasticSearch для хранения данных журнала использует текущее лучшее решение NoSQL для породы для ведения журнала и поиска. Тот факт, что Logstash-Forwarder/Logstash/ElasticSearch/Kibana3 находится под зонтиком ElasticSearch, делает еще более убедительный аргумент.
Поскольку Logstash также может выступать в качестве прокси-сервера Graphite, очень сложная цепочка может быть создана для связанной задачи сбора и анализа показателей (а не только журналов).
Старый Ответ
MongoDB Capped Collections чрезвычайно популярны и suitable for logging, с дополнительным бонусом быть «схемы меньше», которая, как правило, семантический, пригодный для лесозаготовок. Часто мы знаем только то, что мы хотим хорошо записывать в проект, или после того, как определенные проблемы были обнаружены в процессе производства. Реляционные базы данных или строгие схемы, как правило, трудно изменить в этих случаях, и попытки сделать их «гибкими» имеют тенденцию просто делать их «медленными» и трудными в использовании или понимании.
Но если вы хотите manage your logs in the dark and have lasers going and make it look like you're from space всегда есть Graylog2, который использует MongoDB в рамках общей инфраструктуры, но обеспечивает намного больше на вершине, такие как общий, расширяемый формат, выделенный сервер сбора журнала, распределенная архитектуру и фанки UI.
Graylog2, удивительным. Спасибо за совет! – ikrain
Как предупреждение, мы столкнулись с серьезными проблемами с MongoDB при написании более нескольких тысяч событий в секунду для регистрации коллекций. Недостатком письменной работы MongoDB может быть преступник. –
О Graylog2, пожалуйста, примите к сведению: «Все работает на существующей JVM в вашем центре обработки данных». Если вы пропустите это, вы ничего не увидите, пока не увидите в третьем или четвертом параграфе инструкции по установке пакета загрузки («Вы также должны использовать Java 7!»). Я всегда думаю, что забавно, как проекты на Java просто забывают упомянуть, что они являются проектами на основе Java при их продаже. Просто ИМО. – L0j1k