Стек ELK для хранения данных измерений

В нашем проекте мы используем стек ELK для централизованного хранения журналов. Однако я заметил, что последние версии ElasticSearch поддерживают различные агрегаты. Кроме того, Kibana 4 поддерживает удобные графические способы построения графиков. Даже последние версии grafana теперь могут работать с источником данных Elastic Search 2.

Итак, означает ли все это, что стек ELK теперь можно использовать для хранения измерительной информации, собранной внутри системы, или он все еще не может рассматриваться как серьезный конкурент существующим решениям: графит, приток db и так далее. Если да, то кто-нибудь использует ELK для учета на производстве? Не могли бы вы поделиться своим опытом?

Чтобы прояснить понятия, я рассматриваю данные измерений как нечто, что можно агрегировать и отображать на графике «с течением времени», в отличие от обычного сообщения журнала, в котором основным вариантом использования является поиск.

Заранее большое спасибо


person Mark Bramnik    schedule 09.05.2016    source источник
comment
Конечно, вы можете использовать этот способ. Для этого была создана Kibana: отображение агрегированных данных с течением времени. Также обратите внимание, что Kibana теперь поставляется с плагином под названием Timelion, который является более простым способом (однострочным) для создания графиков для временных рядов: elastic.co/blog/timelion-timeline   -  person Andrei Stefan    schedule 10.05.2016
comment
Большое спасибо, не слышал о плагине - отлично смотрится!   -  person Mark Bramnik    schedule 10.05.2016


Ответы (1)


Да, вы можете использовать Elasticsearch для хранения и анализа данных временных рядов.

Если быть более точным - это зависит от вашего варианта использования. Для примера в моем варианте использования (данные истории изменения цен финансовых инструментов, в разработке) я могу вставить 40 000 документов / сек (~ 125-байтовые документы с 11 полями в каждом - 1 метка времени, строки и десятичные дроби, что означает 5 МБ / с полезных данных) на 14 часов в день на единственном узле (большом современном сервере с оперативной памятью 192 ГБ), поддерживаемом корпоративной SAN (которая поддерживается вращающимися дисками, а не SSD!). Я решил хранить до 1 ТБ данных, но предполагаю, что 2–4 ТБ также могут работать на одном узле.

Все это с настройками файла конфигурации по умолчанию, за исключением ES_HEAP_SIZE 30 ГБ. Я подозреваю, что можно было бы значительно улучшить производительность записи на этом оборудовании с некоторой настройкой (например, мне кажется странным, что iostat сообщает об использовании устройства на 25-30%, как если бы Elastic ограничивал его / сохранял полосу пропускания ввода-вывода для чтения или слияния ... но также может быть, что% util является нереалистичной метрикой для устройств SAN ..)

Производительность запросов также прекрасна - запросы / графики Кибаны возвращаются быстро, если вы ограничиваете набор данных результатов временем и / или другими полями.

В этом случае вы должны не использовать Logstash для загрузки данных, а массовую вставку больших пакетов непосредственно в Elasticsearch. https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-bulk.html

Вам также необходимо определить сопоставление https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping.html, чтобы убедиться, что эластичный анализирует ваши данные так, как вы хотите (числа, даты и т. д.), создает требуемый уровень. индексации и др.

Другие рекомендуемые методы для этого варианта использования - использовать отдельный индекс для каждого дня (или месяца / недели в зависимости от скорости вставки) и убедиться, что индекс создается с помощью только достаточно осколков для хранения данных в течение 1 дня (по умолчанию новые индексы создаются с 5 осколками, и производительность осколков начинает ухудшаться после того, как осколок превышает определенный размер - обычно несколько десятков ГБ, но может отличаться для вашего варианта использования - вам нужно измерить / поэкспериментировать).

Использование псевдонимов Elasticsearch https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-aliases.html помогает работать с несколькими индексами и обычно рекомендуется.

person Borut Hadžialić    schedule 10.05.2016
comment
Большое спасибо за ваш ценный ответ с реальными цифрами. - person Mark Bramnik; 10.05.2016