Учебное пособие по ELK Stack: Kibana, Logstash & Elasticsearch

⚡ Умное резюме

ELK Stack объединяет три инструмента с открытым исходным кодом — Elasticsearch, Logstashа также Kibana — для сбора, хранения, поиска и визуализации машинных данных, предоставляя инженерным группам централизованное ведение журналов и аналитику в реальном времени для более быстрого устранения неполадок на серверах и в приложениях.

  • 🧩 Роли стека: Elasticsearch хранит и индексирует данные. Logstash Обрабатывает судовые журналы и данные, а Kibana визуализирует результаты.
  • 🔎 Эластичный поиск: Поисковая система NoSQL на основе Lucene, которая индексирует разнородные данные и возвращает результаты в режиме, близком к реальному времени, в виде полного текста через REST API.
  • 🇧🇷 Logstash: Конвейер обработки данных, который собирает, фильтрует и преобразует журналы из множества источников, прежде чем передать их в Elasticsearch.
  • 📊 Кибана: Веб-панель управления, которая преобразует индексированные данные в интерактивные диаграммы, карты и графики для быстрого анализа.
  • 📦 Elastic Stack: Пользователи Lightweight Beats собирают данные на периферии сети, что побудило Elastic переименовать ELK в Elastic Stack.
  • 🏢 Производственное применение: NetflixLinkedIn и Medium используют ELK в больших кластерах для ведения журналов, обеспечения безопасности и мониторинга.
  • ️ ELK против Splunk: ELK — это бесплатная платформа с открытым исходным кодом, в то время как Splunk — это коммерческая платформа с более высокой скоростью обработки данных и более широкой интеграцией.

Архитектура ELK Stack, демонстрирующая работу Kibana. LogstashElasticsearch и другие подобные сервисы работают вместе для централизованного ведения журналов и аналитики.

ELK Stack — одно из наиболее широко используемых решений с открытым исходным кодом для централизованного ведения журналов и анализа логов. В этом руководстве по ELK Stack объясняется, что такое Elasticsearch, LogstashВ этой статье мы рассмотрим, как эти три инструмента взаимодействуют друг с другом и где платформа используется в реальных задачах мониторинга и наблюдения.

Что такое стек ELK?

ELK Стек представляет собой набор из трех продуктов с открытым исходным кодом: Elasticsearch, Logstashи Kibana. Она обеспечивает централизованное ведение журналов, помогая выявлять проблемы с серверами или приложениями, позволяя искать все журналы в одном месте. Она также помогает сопоставлять журналы с нескольких серверов за определенный период времени.

  • E Elasticsearch используется для хранения логов.
  • L стенды для Logstashиспользуется для корабляpingобработка и хранение журналов.
  • K означает Кибана: инструмент визуализации (веб-интерфейс), размещенный на серверах Nginx или Apache.

Эластичный поиск LogstashKibana и другие подобные сервисы разрабатываются, управляются и поддерживаются компанией под названием [название компании]. Эластичный.

В совокупности, стек ELK призван позволить пользователям получать данные из любых источников и в любом формате, а затем искать, анализировать и визуализировать эти данные в режиме реального времени.

ELK Стек Archiтекстура

Теперь, когда вы знаете, что представляет собой стек, в этом разделе объясняется архитектура ELK и то, как данные передаются между компонентами.

Конвейер обработки данных ELK построен по четкой последовательности, в которой каждый инструмент выполняет свою собственную задачу:

  • Журналы: Определены журналы сервера, которые необходимо проанализировать.
  • Logstash: Собирает данные журналов и событий, затем анализирует и преобразует их.
  • Эластичный поиск: Данные, преобразованные с помощью Logstash хранится, ищется и индексируется.
  • Кибана: Использует базу данных Elasticsearch для исследования, визуализации и обмена аналитическими данными.

Однако для сбора данных часто добавляется четвертый компонент под названием Beats. Beats — это легковесные компоненты, устанавливаемые на серверах, и их добавление привело к тому, что Elastic переименовала ELK в Elastic Stack.

Схема архитектуры ELK Stack, показывающая LogstashElasticsearch и поток данных Kibana

При работе с очень большими объемами данных можно добавить Kafka или RabbitMQ перед конвейером обработки данных для буферизации и обеспечения отказоустойчивости.

Для повышения уровня безопасности перед стеком можно разместить обратный прокси-сервер, например Nginx.

Архитектура ELK Stack с добавлением Beats для сбора данных.

С учетом архитектуры, в следующих разделах более подробно рассматривается каждый продукт с открытым исходным кодом в этом стеке.

Что такое эластичный поиск?

Elasticsearch — это База данных NoSQL Основанная на поисковой системе Lucene и построенная с использованием RESTful API, она предлагает простое развертывание, высокую надежность и удобное управление, а также централизованное хранение всех ваших данных, что позволяет выполнять сложные запросы и быстрый поиск документов.

Elasticsearch также позволяет хранить, искать и анализировать большие объемы данных. Чаще всего он используется в качестве базового механизма для приложений с высокими требованиями к поиску.

Благодаря тому, что Elasticsearch добавляет к быстрому поиску аналитику и множество расширенных функций, он получил широкое распространение на поисковых платформах для современных веб- и мобильных приложений.

Особенности Elasticsearch

Elasticsearch предлагает богатый набор возможностей для индексирования и поиска данных:

  • Поисковый сервер с открытым исходным кодом, написанный на Java.
  • Способна индексировать любые разнородные данные.
  • Предоставляет веб-интерфейс REST API с выводом в формате JSON.
  • Полнотекстовый поиск.
  • Поиск в режиме, близком к реальному времени (NRT).
  • Разделенное на сегменты, реплицированное, доступное для поиска хранилище JSON-документов.
  • Распределенное хранилище документов, не требующее схем, основанное на REST и JSON.
  • Поддержка нескольких языков и геолокации.

Преимущества Elasticsearch

  • Хранит данные без схемы, а также может создавать схему для ваших данных.
  • Позволяет манипулировать записями по одной, используя API для работы с несколькими документами.
  • Поддерживает фильтрацию и запросы к вашим данным для получения аналитической информации.
  • Основан на Apache Lucene и предоставляет RESTful API.
  • Обеспечивает горизонтальную масштабируемость, надежность и возможность работы с несколькими пользователями для индексирования в реальном времени и ускорения поиска.
  • Помогает масштабироваться как по вертикали, так и по горизонтали.

В таблице ниже приведены ключевые термины, с которыми вы столкнетесь при работе с Elasticsearch:

Срок Применение
Cluster Кластер — это совокупность узлов, которые вместе хранят ваши данные и обеспечивают объединенные возможности индексирования и поиска.
Узел Узел — это отдельный экземпляр Elasticsearch. Он создается при запуске экземпляра Elasticsearch.
Индекс Индекс — это набор документов, имеющих схожие характеристики, например, данные о клиентах или каталог продукции. Он полезен для индексирования, поиска, обновления и удаления, и в одном кластере можно определить множество индексов.
Документ Документ — это основная единица информации, подлежащая индексации. Он представляется в виде пары ключ-значение в формате JSON, и каждому документу присваивается тип и уникальный идентификатор.
осколок Каждый индекс можно разделить на несколько сегментов для распределения данных. Сегмент — это атомарная часть индекса, и его можно распределить по кластеру по мере добавления новых узлов.

Что такое Logstash?

Logstash Это инструмент для сбора данных в рамках стека. Он собирает входные данные и передает их в Elasticsearch, объединяя все типы данных из различных источников и делая их доступными для дальнейшего использования.

Logstash позволяет объединять данные из разрозненных источников и нормализовать их для выбранных вами целевых систем. Это дает возможность очищать и делать доступными все ваши данные для широкого спектра задач аналитики и визуализации.

Он состоит из трех компонентов:

  • Входной сигнал: передает журналы и преобразует их в машиночитаемый формат.
  • Фильтры: Набор условий, которые выполняют определённое действие над событием.
  • Выход: Лицо, принимающее решения, которое направляет каждое обработанное событие или запись в журнал.

Особенности Logstash

Logstash Включает в себя несколько функций, обеспечивающих гибкость обработки журналов:

  • События проходят через каждый этап с использованием внутренних очередей.
  • Позволяет использовать различные входные данные для ваших журналов.
  • Поддерживает фильтрацию и анализ ваших логов.

Преимущества Logstash

  • Централизует обработку данных.
  • Анализирует широкий спектр структурированных и неструктурированных данных и событий.
  • Предлагает плагины для подключения к различным типам источников входного сигнала и платформ.

Что такое Кибана?

Kibana — это инструмент визуализации данных, дополняющий стек ELK. Он используется для визуализации документов Elasticsearch и помогает разработчикам быстро получать представление о своих данных с помощью интерактивных диаграмм, геопространственных данных и графиков, которые упрощают понимание сложных запросов.

С помощью Kibana вы можете искать, просматривать и взаимодействовать с данными, хранящимися в индексах Elasticsearch. Она также помогает выполнять расширенные операции. анализ данных и представьте свои данные в различных таблицах, диаграммах и картах.

Kibana поддерживает несколько методов поиска данных. Ниже перечислены наиболее распространенные типы поиска:

Тип поиска Применение
Бесплатный текстовый поиск Используется для поиска определенной строки.
Поиск на уровне поля Используется для поиска строки в определенном поле.
Логические утверждения Используется для объединения результатов поиска в логическое утверждение.
Поиск близости Используется для поиска терминов в пределах определенного диапазона символов.

Kibana также предлагает ряд мощных функций для анализа индексированных данных:

  • Мощная панель мониторинга для отображения индексированной информации из кластера Elasticsearch.
  • Обеспечивает поиск индексированной информации в режиме реального времени.
  • Позволяет искать, просматривать и взаимодействовать с данными, хранящимися в Elasticsearch.
  • Выполняет запросы к данным и визуализирует результаты в виде диаграмм, таблиц и карт.
  • Настраиваемая панель мониторинга для анализа и обработки данных. Logstash журналы в Elasticsearch.
  • Предоставляет исторические данные в виде графиков, диаграмм и других материалов.
  • Предлагает панели мониторинга в режиме реального времени, которые легко настраиваются.

Преимущества и недостатки Kibana

Как и любой инструмент, Kibana обладает очевидными преимуществами, объясняющими её популярность:

  • Удобная визуализация данных.
  • Полная интеграция с Elasticsearch.
  • Выступает в качестве специализированного инструмента визуализации.
  • Предлагает анализ в реальном времени, построение графиков, обобщение данных и отладку.
  • Предоставляет интуитивно понятный и удобный интерфейс.
  • Позволяет делиться снимками журналов, по которым вы выполняли поиск.
  • Позволяет сохранять и управлять несколькими панелями мониторинга.

Также следует учитывать несколько ограничений:

  • Он работает только с Elasticsearch в качестве источника данных.
  • Создание и настройка сложных информационных панелей может потребовать значительных усилий для освоения новых навыков.

Зачем анализировать журналы?

В облачных инфраструктурах производительность и изоляция имеют первостепенное значение.

Производительность виртуальных машин в облаке может варьироваться в зависимости от конкретной нагрузки, среды и количества активных пользователей, поэтому надежность и отказы узлов могут стать серьезными проблемами.

A платформа управления журналами может отслеживать все эти проблемы. Он также может обрабатывать журналы операционной системы, журналы веб-серверов Nginx и IIS для анализа трафика, журналы приложений и журналы, генерируемые на AWS.Amazon Web-сервисы).

В конечном итоге, управление журналами помогает. DevOps Инженеры и системные администраторы принимают более обоснованные решения на основе данных. Именно поэтому анализ логов с помощью Elastic Stack или аналогичных инструментов стал крайне важным.

ELK против Splunk

Часто задают вопрос, как ELK Stack сравнивается с Splunk— популярная коммерческая альтернатива. В таблице ниже приведены основные различия:

ELK Splunk
ELK — это инструмент с открытым исходным кодом. Splunk — коммерческий инструмент.
Компания ELK не предлагает Solaris Благодаря Kibana обеспечивается портативность. предложения Splunk Solaris портативность.
Скорость обработки строго ограничена. Обеспечивает точную и быструю обработку.
ELK — это технологический стек, созданный путем объединения Elasticsearch. Logstashи Кибана. Splunk — это проприетарный инструмент, предоставляющий решения как для локального развертывания, так и для облачных вычислений.
В ELK поиск, анализ и визуализация возможны только после настройки стека. Splunk — это готовый к использованию комплексный пакет для управления данными.
ELK предлагает ограниченную встроенную интеграцию с другими инструментами. Splunk полезен для настройки интеграций с другими инструментами.

Сферы деятельности

Многие известные компании используют ELK Stack для масштабируемого ведения журналов и аналитики. Приведенные ниже примеры демонстрируют его применение в производственной среде.

Netflix

Netflix Компания в значительной степени полагается на ELK Stack для мониторинга и анализа журналов безопасности своих операций по обслуживанию клиентов. Платформа позволяет Netflix Индексирование, хранение и поиск документов в более чем пятнадцати кластерах, состоящих примерно из 800 узлов.

LinkedIn

Профессиональная социальная сеть LinkedIn использует стек ELK для мониторинга производительности и безопасности. Ее команда интегрировала ELK с Kafka для обработки нагрузки в режиме реального времени, и эта система охватывает более 100 кластеров в шести центрах обработки данных.

Tripwire

Компания Tripwire, мировой поставщик решений для управления информацией и событиями в сфере безопасности (SIEM), использует стек ELK для анализа журналов информационных пакетов.

Средний

Medium, популярная платформа для публикации блогов, использует стек ELK для отладки проблем в производственной среде и обнаружения DynamoDB точки доступа. Эта технология помогает компании обслуживать 25 миллионов уникальных читателей и публиковать тысячи новых постов каждую неделю.

Преимущества и недостатки стека ELK

Преимущества

ELK Stack предлагает ряд преимуществ, объясняющих его широкое распространение:

  • Наилучшие результаты достигаются, когда журналы из различных приложений предприятия объединяются в одном экземпляре ELK.
  • Это позволяет получить ценную информацию из одного конкретного случая и избавляет от необходимости входить в сотни отдельных источников данных.
  • Быстрая установка на месте.
  • Легко развертывается и масштабируется как по вертикали, так и по горизонтали.
  • Компания Elastic предлагает множество языковых клиентов, включая Ruby. Python, PHP, Перл, .NET, Java и JavaСценарий.
  • Доступны библиотеки для многих языков программирования и сценариев.

Недостатки

Несмотря на свои преимущества, ELK Stack имеет несколько недостатков, которые следует учитывать:

  • По мере перехода к более сложной конфигурации управление различными компонентами может стать сложным.
  • Освоение нового метода требует времени, поэтому по мере накопления опыта ожидайте проб и ошибок.

Часто задаваемые вопросы (FAQ)

Beats — это легковесные, открытые сервисы для отправки данных, устанавливаемые в качестве агентов на серверах. Filebeat пересылает файлы журналов, а Metricbeat собирает системные метрики. Они отправляют данные напрямую в Elasticsearch или через LogstashДобавление Beats для сбора данных привело к тому, что Elastic переименовала ELK Stack в Elastic Stack.

ELK расшифровывается как Elasticsearch. Logstashи Kibana. Когда Elastic добавила Beats, семейство легковесных инструментов для передачи данных, объединенный продукт был переименован в Elastic Stack. Таким образом, Elastic Stack описывает те же три инструмента плюс Beats и дополнительные функции, такие как безопасность и машинное обучение.

Да. Elasticsearch. LogstashElasticsearch и Kibana доступны для бесплатной загрузки. С 2024 года Elastic предлагает Elasticsearch и Kibana под открытой лицензией AGPLv3, наряду с SSPL и лицензией Elastic. Расширенные функции, такие как машинное обучение и оповещения, требуют платной подписки.

Elasticsearch — это гибкое по схеме, документоориентированное хранилище NoSQL, построенное на Apache Lucene и доступное через REST API. Реляционные базы данных используют фиксированные таблицы, строки и SQL с ACID-транзакциями. Elasticsearch оптимизирован для полнотекстового поиска и аналитики в режиме, близком к реальному времени, а не для строгой транзакционной согласованности.

Для производственных узлов обычно требуется не менее 16 ГБ оперативной памяти, при этом объем кучи JVM составляет около 50 процентов от общего объема памяти и не превышает примерно 30 ГБ. Небольшие тестовые или автономные установки работают на меньшем объеме. Beats и Logstash Требуется гораздо меньше ресурсов, чем Elasticsearch.

Грок — это Logstash Плагин фильтра, который преобразует неструктурированные строки логов в структурированные именованные поля с использованием многократно используемых шаблонов, построенных на основе регулярных выражений. Он широко используется для...tracПеред индексацией в Elasticsearch извлекаются временные метки, IP-адреса и коды состояния из журналов веб-сервера и приложений.

Elasticsearch включает в себя встроенные функции машинного обучения, которые моделируют нормальное поведение журналов и автоматически отмечают аномалии. Эти функции AIOps группируют похожие сообщения, обнаруживают необычные объемы и ускоряют анализ первопричин, сокращая среднее время устранения проблемы. Инженерам все равно следует просматривать отмеченные события, прежде чем предпринимать какие-либо действия.

Да. Такие инструменты, как... ChatGPT и Второй пилот GitHub может составить проект Logstash Изучите шаблоны Grok, DSL запросов Elasticsearch и настройки Kibana с помощью короткой подсказки. Всегда тестируйте сгенерированные конвейеры, поскольку ИИ может использовать устаревшие имена полей или нерекомендуемый синтаксис.

Подведем итог этой публикации следующим образом: