Что такое ELK Stack?

По словам разработчиков Elastic:

circle-info

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

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

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

Давайте взглянем на диаграмму ниже для лучшего понимания контекста:

На Windows-машине у нас установлены агенты Beats или Elastic-Agent. Агенты Beats отвечают за сбор логов на устройстве, которое мы хотим мониторить. Мы можем настроить агент так, чтобы он собирал определенные данные в зависимости от конфигурации. Если мы отдадим предпочтение Elastic-Agent вместо агента Beats, мы также получим некоторые другие полезные функции, такие как мониторинг конечных точек и оповещения!

Теперь, у нас есть множество маленьких сборщиков, собирающих логи на разных системах. Куда же мы отправляем эти данные для хранения? Здесь в игру вступает компонент Elasticsearch. Можно представить его как базу данных, которая должна корректно обрабатывать, индексировать и хранить данные, собранные нашими лог-шипперами, чтобы в дальнейшем легко извлекать информацию. Представьте себе это как библиотеку с множеством библиотекарей, которые берут книги (наши логи) и помещают их на соответствующие полки.

Однако, если логи не имеют названия, автора, или написаны на совершенно другом языке, библиотекари могут испытывать затруднения при индексации. И здесь на сцену выходит "L" в нашем стеке ELK - Logstash. Некоторые логи имеют стандартные структуры данных, которые Elasticsearch читает и знает, как индексировать в соответствии с настройками. Однако, если мы сами создали кастомные логи или собрали их из менее известных источников, нам, возможно, потребуется отправить их кому-то для идентификации и конвертации логов, чтобы Elasticsearch мог их правильно интерпретировать. Эту роль выполняет Logstash: он принимает данные и, в зависимости от наших настроек, преобразует их в форму, которую Elasticsearch сможет правильно проиндексировать.

Все это замечательно, но какая польза от библиотеки с всеми необходимыми логами в нашей сети, если никто не может ничего прочитать? И здесь на сцену выходит "K" в нашем стеке ELK с Kibana. Я бы описал Kibana как библиотекаря на ресурсной стойке. Мы можем искать конкретную книгу, жанр или всех авторов, опубликованных в определенный период времени. Мы берем эту информацию и обращаемся к библиотекарю на ресурсной стойке, который взаимодействует с библиотекарями Elasticsearch, чтобы вернуть вам запрошенные данные.

Когда эти три компонента объединяются, у нас появляются огромные возможности. Если вы дополняете их функциями поиска, оповещениями, визуализацией, и даже агентом обнаружения конечных точек, то вы создаете мощную систему управления информацией и событиями безопасности (SIEM). Это дает нам возможность работать с этими инструментами, как если бы вы находились в корпоративной среде!

Итак, давайте начнем! Сначала нам понадобится гипервизор, будь то VirtualBox или VMWare - это не имеет значения. Так же убедитесь, имеет ли ваш компьютер достаточно ресурсов для выполнения задачи:

chevron-rightМинимальные системные требования:hashtag
  • Операционная система Ubuntu 18.04

  • RAM 2 ГБ

  • Память 20 ГБ

  • CPU 1-ядерный процессор

  • Сеть Интернет для установки (Сетевой мост)

chevron-rightРекомендуемые системные требования:hashtag
  • Операционная система Ubuntu 18.04

  • RAM 4-8 ГБ

  • Память 50-100 ГБ

  • CPU 2+ ядерный процессор

  • Сеть Интернет для установки (Сетевой мост)

Last updated