> For the complete documentation index, see [llms.txt](https://durov-labs.gitbook.io/siem-on-elastic-stack/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://durov-labs.gitbook.io/siem-on-elastic-stack/sozdanie-sobstvennoi-siem-sistemy-na-osnove-elastic-stack/chto-takoe-elk-stack.md).

# Что такое ELK Stack?

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

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

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

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

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

<div data-full-width="false"><figure><img src="/files/ps6igesPADjBuCzDLK1e" alt=""><figcaption></figcaption></figure></div>

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

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

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

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

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

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

<details>

<summary>Минимальные системные требования:</summary>

* Операционная система                    Ubuntu 18.04                 &#x20;
* RAM                                                      2 ГБ     &#x20;
* Память                                                 20 ГБ
* CPU                                                       1-ядерный процессор
* Сеть                                                      Интернет для установки (Сетевой мост)

</details>

<details>

<summary>Рекомендуемые системные требования:</summary>

* Операционная система                    Ubuntu 18.04                 &#x20;
* RAM                                                      4-8 ГБ     &#x20;
* Память                                                 50-100 ГБ
* CPU                                                       2+ ядерный процессор
* Сеть                                                      Интернет для установки (Сетевой мост)

</details>
