December 17, 2024

9.2 Как работают Elasticsearch, Kibana, Filebeat и Restful-Booker вместе.

Конечно! Вот простое объяснение, как работают Elasticsearch, Kibana, Filebeat и Restful-Booker вместе.

1. Restful-Booker – приложение

Что это?

Это ваше приложение, которое отвечает на HTTP-запросы. Например:

• Если кто-то отправляет запрос GET /booking, приложение отвечает 200 OK и возвращает “Booking details”.

Что происходит?

• Приложение пишет свои логи в консоль (stdout) – это сообщения о запросах, их статусах и ответах.

Пример лога:

GET /booking 200 4.017 ms - 162

2. Filebeat – сборщик логов

Что это?

Filebeat – это инструмент, который читает логи из приложения (Restful-Booker) и отправляет их в Elasticsearch.

Что происходит?

• Filebeat “смотрит” в файлы Docker-логов (например, /var/lib/docker/containers/*/*.log).

• Он находит логи приложения Restful-Booker и отправляет их в Elasticsearch.

Пример того, что отправляет Filebeat:

{
"message": "GET /booking 200 4.017 ms - 162",
"container.name": "restful-booker",
"log.level": "info",
"timestamp": "2024-12-17T13:56:57.361Z"
}

3. Elasticsearch – хранилище данных

Что это?

Elasticsearch – это база данных, которая умеет быстро искать и обрабатывать текстовые данные (логи).

Что происходит?

• Filebeat отправляет логи в Elasticsearch.

• Elasticsearch сохраняет логи в виде индексов (например, filebeat-2024.12.17).

• Теперь можно искать по этим логам: по запросам, статусам, времени и т.д.

4. Kibana – визуализация данных

Что это?

Kibana – это инструмент для визуализации данных из Elasticsearch.

Что происходит?

• Kibana подключается к Elasticsearch и “видит” все сохранённые логи.

• Вы создаёте Data View (например, для индексов filebeat-*).

• В разделе Discover вы можете искать и фильтровать логи.

Пример поиска в Kibana:

• Найти все запросы с /booking.

• Найти ошибки (status: 500).

Как всё работает вместе?

1. Restful-Booker:

Приложение принимает HTTP-запросы и пишет логи.

2. Filebeat:

Читает логи из контейнера Restful-Booker и отправляет их в Elasticsearch.

3. Elasticsearch:

Сохраняет логи и позволяет быстро искать их.

4. Kibana:

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

Пример потока данных

1. Кто-то отправляет запрос:

GET /booking

2. Restful-Booker пишет лог:

GET /booking 200 4.017 ms - 162

3. Filebeat собирает этот лог и отправляет в Elasticsearch.

4. Elasticsearch сохраняет лог в индекс filebeat-2024.12.17.

5. В Kibana → Discover вы видите:

message: "GET /booking 200 4.017 ms - 162"