Поэтому я должен придумать подход, чтобы сделать большой объем данных «читаемым» для пользователя, и мне было интересно, может ли кто-нибудь указать разницу между подходом с использованием чего-то elasticsearch + kibana по сравнению с использованием чего-то вроде MRTG. Что было бы более подходящим для анализа данных, который больше ориентирован на тенденции?
Анализ больших данных. Elasticsearch, Logstash, Kibana, MRTG
Ответы:
Два упомянутых вами подхода предназначены для радикально разных типов данных.
Если ваши данные состоят из ряда регулярных значений метрик с отметками времени, таких как 5-минутные выборки скорости трафика с интерфейса маршрутизатора или 1-минутные выборки с датчика температуры, тогда MRTG (или, скорее, RRDTool, который является серверной базой данных). ) отлично подходит для этого. Если данные нерегулярны, это все еще возможно, хотя вам необходимо несколько настроить параметры базы данных RRDTool, чтобы избежать больших «неизвестных» областей. RRDTool может анализировать тенденции регистрируемых вами метрик, хотя это не делается с помощью MRTG — вам нужно напрямую вызывать функции RRDTool.
Если ваши данные представляют собой нерегулярную последовательность текстовых записей журнала (событий), возможно, с анализируемыми позиционными данными, и вас больше интересует количество или частота событий, а затем детализация для просмотра отдельных событий, Logstash/Kibana — это способ идти. Они предоставят вам графики частоты событий с течением времени, но я не думаю, что они могут обеспечить анализ тенденций. Кроме того, они не обеспечивают графического анализа проанализированных данных, встроенных в текст журнала событий. Logstash/kibana отлично подходят для таких вещей, как Syslog, Eventlog, журналы приложений (например, журналы Apache) и т. д., где вас больше интересует закономерность того, сколько событий, соответствующих определенному шаблону, произошло с течением времени.
Вы не предоставили достаточно информации ни о фактическом характере ваших данных, ни о том, какой «читаемый» анализ требуется вашим пользователям, поэтому это обязательно краткое изложение возможностей.
Elasticsearch эффективен для хранения структурированных данных, таких как текст. Вариант использования Logstash — это пример того, как структурировать данные для эффективных запросов.
MRTG/RRD — это инструмент, используемый для измерения данных временного интервала. Каждые X единиц времени записывайте значение Y. MRTG/RRD не эффективен для хранения текста, его работа не затрагивает вариант использования Elasticsearch.
Graphite может быть инструментом, который следует рассмотреть, если у вас уже установлена и работает Logstash. Logstash может отправлять события в Graphite или Statsd, а также сохранять данные о событиях в ElasticSearch. Преимущество Graphite/Carbon в том, что он не привязан к временному интервалу, как MRTG. Вы можете просто передавать информацию в Graphite столько раз, сколько хотите, или так редко.
Вариант использования, который вы указали в другом ответе, был бы отличным использованием Graphite или аналогичного инструмента. Вы можете составлять графики и отчеты по многим событиям на основе значений в Graphite, а затем использовать Elasticsearch для сопоставления данных с событием. (Я не имею в виду, что есть интеграция с ES и Graphite, просто если вы используете Logstash для отправки событий, время будет легко искать.)