<<Щ[1ШЗДиМ~^©иТМа1>>#Щ29)),,2(0]9 / TECHNICAL SCIENCE_1_5_
УДК 004.75
Петров Валерий Владимирович
кафедра аппаратно-программных комплексов вычислительной техники, студент группы № P4255
Должность, место работы: DevOps, RingCentral Факультет программной инженерии и компьютерной техники, Санкт-Петербургский национальный исследовательский университет информационных
технологий, механики и оптики DOI: 10.24411/2520-6990-2019-10062 СБОР, ФИЛЬТРАЦИЯ И АНАЛИЗ БОЛЬШИХ ДАННЫХ С ПОМОЩЬЮ СТЕКА ELK.
Petrov Valerii Vladimirovich
Department of Hardware and Software Computing Systems, Student Group No. P4255
Position , company: DevOps, RingCentral Faculty of Software Engineering and Computer Engineering, Saint Petersburg National Research University of Information Technologies, Mechanics and Optics
COLLECTING, FILTERING AND ANALYZING BIG DATA USING THE ELK STACK
Аннотация
В работе рассмотрено как с помощью стека ELK собирать, обрабатывать и анализировать большие данные, в качестве метода исследования была выбрана апробация в соответствии с тест-кейсами. Тест-кейсы были составлены в соответствии с реальными задачами, с которыми сталкиваются инженеры в компании RingCentral.
Abstract
This article shows how ELK software collecting, processing , and analyzing Big Data , the main research method is approbation according test-cases. All test-cases was created according real tasks, they used at work by RingCentral's engineers.
Ключевые слова: система мониторинга, ELK, Elasticsearch , Logstash , Kibana , Big Data
Key words: monitoring system , ELK, Elasticsearch , Logstash , Kibana, Big Data
Стек ELK это набор ПО для сбора, агрегирования, и удобного представления лог-файлов, метрик, событий и т.д. Он прекрасно масштабируется, имеет высокую доступность (High Avalability) из коробки которую очень легко настроить, полностью бесплатен а так же, обладает открытым исходным кодом, и состоит из следующих программных продуктов: Elasticsearch , Logstash, Kibana.
Методы исследования.
Главный метод исследования - построение и апробация стека ELK на Lab-environment. Что включает в себя следующее:
1. Рассмотрение и изучения технической документации.
2. Тестирование данного стека в условиях Labenvironment
3. Написание тест-кейсов , создание скрипта для генерации данных, которые будут обработаны стеком ELK с помощью модели машинного обучения.
Elasticsearch - высокомасштабируемый пол- Ключевые особенности:
нотекстовый поисковый и аналитический движок с • Кластеризация (возможность горизонтально
открытым исходным кодом (основанный на увеличивать количество нод) Lucene). Он позволяет хранить, искать и анализиро- • Полнотекстовый поиск в реальном времени
вать большие объемы данных в реальном времени. (благодаря поисковому движку Lucene)
16
TECHNICAL SCIENCE /
• Шардирование и репликация данных (вероятность потери данных очень низка)
• Экономное хранение документов на диске благодаря сжатию
• Открытый API с возможностью управлением всем сервисом
• Интеграция с Hadoop из коробки [1]
Logstash - ПО для обработки данных с открытым исходным кодом на стороне сервера, он может динамически унифицировать данные из разрозненных источников и нормализовать данные в выбранных вами направлениях.
Ключевые особенности:
• Обработка лог-файлов на лету (например веб-сервера Apache) , и журналов приложений (таких как log4j2 для Java) с фильтрацией только нужных вам данных
• Сбор метрик из Ganglia, collectd, NetFlow, JMX, и многих других прикладных и инфраструктурных платформ через TCP и UDP.
• Это стандарт сети сбора событий для приема данных, отправляемых с мобильных устройств, в интеллектуальные дома, транспортные средства, датчики здравоохранения и многие другие отраслевые приложения. [1]
Kibana - предоставляет удобный GUI для использования elasticsearch а так же позволяет визуализировать все данные, которые хранятся в elasticsearch.
Ключевые особенности:
• Возможность пользоваться поиском по данным с множественными агрегациями
• Возможность создавать графики и дашборды на основе данных в elasticsearch
• Возможность создавать алёрты на основе дашбордов
• Обнаружение аномалий с помощью машинного обучения
• Открытый API
• Возможность управлять потоками данных logstash
В качестве тест-кейса, было выбрано следующее задание:
Создать скрипт для генерации данных пользователей сервиса. ELK стек должен будет принять это данные по HTTP , определить по ip-адресу геолокацию пользователя и в случае несоответствия геометки и места проживания пользователя - отделить эти данные в отдельный индекс используя модель машинного обучения.
Индекс в ELK - это набор документов отсортированный по полю @timestamp , который проставляется на стороне Logstash в виде unix-timestamp по приходу документа.
Для развертывания ELK кластера , была выбрана multi-node архитектура в которой master(про-изводит аллоцирование шард, балансирует кластер ) нода будет так же являться и data нодой (т.е. принимать, обрабатывать и хранить данные).
Рисунок. Архитектура ELK кластера.
Скрипт написан на языке Python, он генерирует данные в json и отсылает их группой по 500 документов с помощью HTTP, документы обрабатываются на стороне Logstash встроенным модулем, он преобразует json формат в формат данных Elasticsearch. Elasticsearch используя модуль geopoint обрабатывает поле с ip-адресом и генерирует следующие поля:
• Код континента
• Код страны
• Географические координаты (ширина, долгота)
• Код региона
• Название региона
• Временную зону
Модуль geopoint предназначен для:
• Нахождения географических точек (ширина, высота)
• Агрегирование документов по удалению от центральной точки
• Интегрирование расстояния в результат релевантности документа
• Сортирование документов по дистанции
Благодаря значениям, который этот плагин создает на основании ip-адреса документа, можно составить модель для машинного обучения что бы решить поставленную задачу. В нашем случае, модель машинного обучения будет определять расхождение места жительства человека и место , которое определилось на основании ip-адреса.
На изображении ниже показана работа машинного обучения, данная модель проанализировала все документы хранящиеся в индексе и вывела на график то, что модуль geoip не смог обработать. (Т.е. данные ip-адреса неккоректны).
<<Ш11ШетиМ~^®и©Ма1>#Щ29),2(0]9 / TECHNICAL SCIENCE 17
Рисунок. Модель обработки некорректных данных.
На следующем изображении показан итоговый расхождение места жительства человека и место, результат работы модели машинного обучения, ко- которое определилось на основании ip-адреса с по-торая проанализировала весь индекс и сопоставила мощью модуля geoip.
Рисунок. Итоговый результат модели машинного обучения.
В результате работы данной модели, было проанализировано ~ 10 млн документов и выявлены документы, в которых имеется расхождения реального места жительства человека и места, которое определилось на основании ip-адреса.
В компании RingCentral стек ELK является основным хранилищем лог-файлов всех компонент внутренних сервисов. На данный момент , в production используется свыше 100 физических серверов , которые расположены в США и Европе. На этих серверах в сумме хранится более чем 1,5
петабайта данных. Ротация данных происходит каждый день.
Благодарности:
Автор выражает благодарность компании RingCentral за предоставление вычислительных мощностей при выполнении данной статьи.
В частности: Головину В.А. , а так же Смирнову А.Б. за возможность подробно изучить и протестировать данные программные продукты.
Литература
1. Elasticsearch Main Page , [электронный ресурс], URL: http://elastic.co
Джабраильзаде С.Дж.
Канд. пед.наук. доц.
Кафедры «Вычислительная математика и информатика». Азербайджанский Государственный Педагогический Университет
DOI: 10.24411/2520-6990-2019-10063 ТЕМА.ПРЕПОДАВАНИЕ ТЕМЫ «ТЕКСТОВЫЕ КАРТИНКИ» В IV КЛАССЕ
Jabrayilzade S.J.
Assoc.dot. of the ^air-"Computational Mathematics and Computer Science " of Azerbaijan State Pedagogical University
SUBJECT.TEACHiNG THE TOPiC "TEXT PiCTURES" iN IV CLASS
Введение.
По общеобразовательной программе информатики общеобразовательных школ в начальных классах раздел «Графические редакторы» разделен на четыре темы. Это нижеследующие:
• Программа рисования;
• Палитра;
• Работа с фрагментом картины;