Использование системы сбора журнальных файлов для контроля IT-инфраструктуры
Анализ проблемы детализации событий, возникающих в ходе работы IT-инфраструктуры, ее решение через использование стека ELK как сбора журнальных файлов. Реализация ELK стека в инфраструктуре современного веб-сервиса, карта расположения пользователей в ней.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | статья |
Язык | русский |
Дата добавления | 10.12.2016 |
Размер файла | 1,5 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru//
Размещено на http://www.allbest.ru//
Пензенский государственный технологический университет (г. Пенза, Россия)
Использование системы сбора журнальных файлов для контроля IT-инфраструктуры
Чинков Михаил Юрьевич
В статье рассматривается проблема детализации событий, возникающих в ходе работы IT-инфраструктуры, а также решение данной проблемы через использование стека ELK как сбора журнальных файлов.
Для отслеживания процесса работы веб-сервиса основной практикой является просмотр журнальных файлов (логов). Логи - хранилища текстовых данных о событиях в системе, записанных в строго определенном формате в определенный файл. Наиболее простым способом является удаленный доступ к серверу и чтение журнальных файлов внутри сервера. Однако данный подход неприменим к работе над крупными веб-сервисами, так как имеет ряд недостатков.
Необходимость удаленного доступа к серверу, что создает дополнительную угрозу безопасности инфраструктуры.
Сложность ручного чтения логов, так как каждое событие представляет собой длинную строку из множества полей, большинство и которых просто не нужно для определенной цели.
Проблема большого размера логов, которые постепенно заполняют дисковое пространство сервера и увеличивают нагрузку как на один сервер, так и на всю инфраструктуру в целом.
Проблема управления множеством логов в инфраструктуре. Чаще всего веб-приложение представляет собой не один монолитный сервер, а множество небольших сервисов, каждый из которых имеет отдельный журнальный файл, а также внешние сервисы, мониторинг которых также необходимо осуществлять.
Решением всех вышеперечисленных проблем является реализация централизованной системы сбора журнальных файлов. По данной системой подразумевается отдельный сервер, который принимает по отдельному TCP порту события из клиентов системы в режиме реального времени. Основным преимуществом данной системы является агрегация информации о системе в режиме реального времени, а также приведение логов инфраструктуры в читаемый формат, доступный в удобном для участников разработки сервиса месте.
В ходе данного исследования система сбора журнальных файлов была реализована на практике в виде стека ELK. Стек ELK состоит из четырех компонентов:
клиент сбора логов Filebeat, следящий за обновлением определенных журнальных файлов и отсылающий новые события напрямую на сервер;
утилита обработки логов Logstash, основными задачами которой является обработка полученных от клиентов событий, индексирование событий и запись событий в базу данных. Дополнительно утилита может по заданному условию оповещать о конкретных событиях в системе, предварительно интегрируясь со средствами коммуникации;
документо-ориентированная база данных ElasticSearch, которая обеспечивает долговременное хранение логов, полученных от Logstash, и максимально быстрый поиск событий по полям и индексам;
система визуализации событий Kibana, которая представляет собой веб-интерфейс поиска и чтения логов с возможностью построения необходимых графиков, гистограмм, карт и агрегации всех перечисленных средств визуализации в единое окно (dashboard).
Дополнительно в систему интегрирован прокси-сервер Nginx, которые перенаправляет все запросы со стандартного 80 порта на 5601 TCP порт, который прослушивает система Kibana.
Архитектура стека ELK наглядно продемонстрирована на рисунке 1. Дополнительно стоит отметить, что описываемая система является полностью бесплатной с публично доступным открытым исходным кодом. Единственной статьей расходов на систему является аппаратное обеспечение в виде отдельной машины, на которой работают компоненты стека ELK.
Рисунок 1 - архитектура стека ELK как системы сбора журнальных файлов
В ходе исследования была проведена реализация ELK стека в инфраструктуре современного веб-сервиса. Целевой сервис состоит из нескольких компонентов - основного приложения, платежного шлюза, системы обработки изображений и т.д. - которые необходимо в одинаковой степени внимательно отслеживать. Реализация стека ELK состояла из нескольких шагов:
установка и последовательная конфигурация серверных компонентов системы;
установка и настройка клиента Filebeat на сервере системы для тестирования полноценных рабочих процессов;
запуск веб-интерфейса с локального браузера для проверки того, что события приходят в систему, хранятся на постоянной основе и доступны для поиска и чтения;
автоматизированная установка и конфигурация клиентов FIlebeat на всех серверах, являющихся компонентами веб-приложения;
окончательная проверка того, что события поступают в систему со всех серверов.
На рисунке 2 показан результат работы системы в виде отсортированных событий с выделенными важными полями и построением гистограмм по количеству событий за временной период, собранных в единую панель.
Рисунок 2 - результат реализации стека ELK в инфраструктуре веб-сервиса
инфраструктура стек журнальный файл
Дополнительно стек ELK предоставляет множество возможностей для детализации работы системы. Например, в современном веб-приложении очень важно знать место расположения целевой аудитории и ее изменение со временем. Данную информацию можно определить по IP-адресу, который веб-сервер получает от клиента в процессе обмена данными по протоколу HTTP. Эти данные хранятся в одном из журнальных файлов системы. В системе сбора журнальных файлов можно определить по IP-адресам месторасположение клиентов с помощью скачанной GeoIP-базы данных и вывести географические координаты, полученные в процессе обработки данных, на карту в виде отдельных точек. Таким образом, мы получим ясную картину того, в какой части света у нас находится больше пользователей. Результаты данного процесса отслеживания местоположения пользователей наиболее наглядно представлены на рисунке 3.
Рисунок 3 - карта расположения пользователей в стеке ELK
инфраструктура стек журнальный файл
Таким образом, рассмотрены процессы отслеживания состояния инфраструктуры веб-приложений в режиме реального времени, описаны проблемы и недостатки традиционного подхода отслеживания состояния, а затем было рассмотрено решение данной проблемы посредством реализации централизованной системы сбора журнальных файлов. В ходе исследования описанное решение исследовано как с теоретической точки зрения, рассматривая архитектуру системы, так и с практической точки зрения, показав работоспособность стека ELK как системы сбора логов в инфраструктуре веб-приложения.
Список литературы
1. Немет Э., Снайдер Г., Хейн Т.Р., Уэйли Б. Unix и Linux. Руководство системного администратора [Текст] // Вильямс. - 2012. - С. 1157-1180.
2. Limoncelli T. The Practice of Cloud System Administration: Designing and Operating Large Distributed Systems, Volume 2 [Текст] // - 2015. - С. 243-275.
Размещено на Allbest.ru
Подобные документы
Понятие стека как структуры данных, где элемент, занесенный первым, извлекается последним. Порядок добавления и удаления элементов списка. Реализация функций стека. Использование стека в алгоритме быстрой сортировки. Основные требования к элементам стека.
презентация [591,2 K], добавлен 22.10.2013Структура автомата для сбора данных. Программы, реализующие заданный пользователем алгоритм автоматизации процедуры обработки журнальных данных. Описание микропроцессорной системы, ее упрощенная модель, система команд, блок-схема алгоритма обработки.
контрольная работа [65,8 K], добавлен 14.11.2010Создание стека с помощью языка программирования C#. Блок-схема работы алгоритма программы, ее интерфейс. Добавление, удаление и вывод элементов в стеке. Реализация методов "Начало-конец" (переприсвоение индексов) и "Приоритет" (сортировка по возрастанию).
лабораторная работа [924,7 K], добавлен 26.12.2014Создание программы для автоматизации процесса управления и контроля торговых агентов ООО "Журавли плюс". Использование мобильной системы "Агент +" для чтения файлов выгрузки со смартфонов; создания файлов импорта; редактирования данных о торговых агентах.
дипломная работа [2,9 M], добавлен 12.09.2012Обзор особенностей работы с программой Total Commander. Создание папок, копирование файлов на флеш-карту. Вызов контекстного меню. Определение структуры файлов. Переименование группы файлов. Помещение файлов в архив. Разделение архива на несколько частей.
лабораторная работа [1,9 M], добавлен 08.04.2014Описание промышленных компьютерных сетей. Анализ файлов, передаваемых по ним и общие требования к реализуемой библиотеке. Архитектура и уровни интерфейса библиотеки, принципы реализации алгоритмов исполняемых и неисполняемых структурированных файлов.
дипломная работа [883,5 K], добавлен 12.08.2017Разработка методов сбора информации о событиях в ИТ-инфраструктуре. Анализ структуры единичного события. Извлечение данных из сообщений о событиях, выявление причинно-следственных связей между ними. Архитектура централизованного журналирования событий.
дипломная работа [2,6 M], добавлен 19.09.2016Исследование проблемы сравнения звуковых файлов и определение степени их схожести. Сравнение файлов с использованием метода нечеткого поиска, основанного на метрике (расстоянии) Левенштейна. Сравнение MIDI-файлов и реализация алгоритмов считывания.
курсовая работа [2,0 M], добавлен 14.07.2012Проектирование программного обеспечения. Схема начального формирования каталога файлов, вывода на экран каталога файлов, удаления файлов, сортировки файлов по имени, дате создания и размеру методом прямого выбора. Управление каталогом в файловой системе.
курсовая работа [804,0 K], добавлен 08.01.2014Особенности загрузки операционной системы Linux в режиме терминала, входа в систему и регистрации пользователей. Выполнение переназначения файлов, его использование для работы с командами операционной системы. Применение программных каналов (конвейеров).
лабораторная работа [21,5 K], добавлен 12.05.2013