80. ELK Stack

Обновлено: 2024-03-12
3 мин

ELK Stack

На этом занятии мы немного подробнее рассмотрим некоторые из упомянутых нами опций.

ELK Stack

ELK Stack - это комбинация трех отдельных инструментов:

  • Elasticsearch - это распределенный, бесплатный и открытый поисковый и аналитический механизм для всех типов данных, включая текстовые, числовые, геопространственные, структурированные и неструктурированные.

  • Logstash - свободный и открытый конвейер обработки данных на стороне сервера, который получает данные из множества источников, преобразует их, а затем отправляет в ваш любимый “тайник”.

  • Kibana - это бесплатный и открытый пользовательский интерфейс, позволяющий визуализировать данные Elasticsearch и перемещаться по стеку Elastic Stack. Делайте все, что угодно: от отслеживания загрузки запросов до понимания того, как запросы проходят через ваши приложения.

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

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

  • Журналы: Определяются журналы сервера, которые необходимо проанализировать.

  • Logstash: Собирает журналы и данные о событиях. Он даже анализирует и преобразует данные.

  • ElasticSearch: Преобразованные данные из Logstash хранятся, ищутся и индексируются.

  • Kibana использует БД Elasticsearch для изучения, визуализации и обмена данными

Изображение взято с сайта Guru99

Хороший ресурс, объясняющий это The Complete Guide to the ELK Stack

С добавлением битов стек ELK теперь также известен как Elastic Stack.

Для практического скрипта существует множество мест, где можно развернуть Elastic Stack, но мы будем использовать docker compose для локального развертывания в нашей системе.

Start the Elastic Stack with Docker Compose

Оригинальные файлы и руководство, которые я использовал, вы найдете здесь deviantony/docker-elk

Теперь мы можем запустить docker-compose up -d, при первом запуске потребуется вытащить изображения.

Если вы следите за этим репозиторием или за тем, который использовал я, у вас будет пароль “changeme” или в моем репозитории пароль “90DaysOfDevOps”. Имя пользователя - “elastic”.

Через несколько минут мы можем перейти на сайт http://localhost:5601/, который является нашим сервером Kibana / Docker-контейнером.

Ваш начальный главный экран будет выглядеть примерно так.

В разделе “Get started by adding integrations” есть пункт “try sample data”, нажмите на него, и мы сможем добавить одну из показанных ниже интеграций.

Я собираюсь выбрать “Sample web logs”, но это действительно для того, чтобы получить представление о том, какие наборы данных можно получить в стеке ELK.

Когда вы выбрали “Добавить данные”, требуется некоторое время, чтобы заполнить некоторые из этих данных, а затем у вас появляется опция “Просмотр данных” и список доступных способов просмотра этих данных в выпадающем списке.

Как указано в представлении приборной панели:

Образцы данных журналов

Эта приборная панель содержит образцы данных, с которыми вы можете поиграть. Вы можете просматривать их, искать и взаимодействовать с визуализациями. Для получения дополнительной информации о Kibana ознакомьтесь с нашей документацией.

Здесь используется Kibana для визуализации данных, которые были добавлены в ElasticSearch через Logstash. Это не единственный вариант, но я лично хотел развернуть и посмотреть на это.

В какой-то момент мы рассмотрим Grafana, и вы увидите некоторые сходства в визуализации данных между ними, вы также видели Prometheus.

Ключевой момент, который я уловил между Elastic Stack и Prometheus + Grafana, заключается в том, что Elastic Stack или ELK Stack сосредоточен на журналах, а Prometheus - на метриках.

Я читал эту статью от MetricFire Prometheus vs. ELK, чтобы лучше понять различные предложения.

Ресурсы