Это инструкция про сбор, хранение и анализ логов на белорусском VPS с помощью стека EFK (Elasticsearch, Fluentd/Fluent Bit, Kibana). Зачем это нужно: быстро находить причину сбоев, отслеживать поведение клиентов на сайте и хранить следы действий для восстановлений — полезно для кафе с онлайн‑заказами, интернет‑магазинов и сервисов записи.
Что входит в EFK и почему это важно
EFK собирает логи из нескольких источников, индексирует их и показывает в интерфейсе. Для малого бизнеса это смысл: одна точка поиска вместо множества файлов на серверах. Пример: небольшой интернет‑магазин в Бресте получает жалобы на ошибки при оплате. С центральным логированием владелец быстро видит, что падает соединение с платёжным шлюзом в пиковые часы.
Как сделать: установите Fluent Bit на каждый сервисный контейнер или сервис, настроите вывод в Elasticsearch, а Kibana подключите как интерфейс для поиска и дешбордов.
Практический сценарий: кафе с POS и онлайн‑заказами (Минск)
Сценарий: кафе в Минске принимает заказы через сайт и через терминал. Логи кассовой системы, веб‑сервера и очереди заказов хранятся локально, искать проблему долго. EFK объединит эти потоки и покажет цепочки событий.
Как сделать: 1) Разверните Elasticsearch на отдельном VPS с минимум 4 ГБ RAM для индексации; 2) На VPS с POS установите Fluent Bit и собирайте логи POS в json‑формате; 3) В Kibana создайте дешборд с ошибками оплаты и временем ответа API.
Практический сценарий: интернет‑магазин в Гомеле — поиск «узкого места»
Сценарий: магазин в Гомеле замечает падение конверсии ночью. С помощью центральных логов можно сопоставить количество 500‑ошибок, медленные запросы и нагрузку на базу данных.
Как сделать: добавьте метки (service, environment, region) к лог‑записям; настройте парсинг временных меток; создайте правило поиска медленных запросов в Kibana и сохраните оповещение через webhook на ваш чат. Если хотите связать метрики и оповещения с логами, почитайте про интеграцию мониторинга на белорусском VPS: мониторинг и оповещения на белорусском VPS: Zabbix и Prometheus.
Практический сценарий: сеть салонов красоты — централизованная аналитика ошибок записи
Сценарий: у сети салонов в Гродно и Витебске проблемы с синхронизацией расписаний между филиалами. Логи приложений и очередей сообщений помогут понять порядок событий и восстановить последовательность.
Как сделать: включите трассировку запросов через correlation_id в каждом запросе; собирайте логи API и СУБД; в Kibana делайте поиск по correlation_id для всей цепочки.
Размеры, хранение и стоимость для малого бизнеса
Определите объём логов: веб‑серверы обычно дают 100–500 МБ в день для маленького магазина, приложения — ещё 200–800 МБ. На VPS с 50 ГБ хватит для нескольких недель при сжатии. Совет: установите политику жизненного цикла индексов (ILM) и храните полные данные 14–30 дней, а агрегаты — дольше.
Как сделать: используйте хранение с ротацией индексов и сжатие в Elasticsearch; настройте удаление старых индексов через ILM; настройте резервные копии индексов по расписанию.
Безопасность, права доступа и приватность
Логи содержат персональные данные и платёжные события. Ограничьте доступ к Kibana по VPN или по белорусским IP‑адресам филиалов. Шифруйте хранение и транспорт (TLS), используйте учётные записи с разделением прав: просмотр, поиск, администрирование.
Как сделать: включите HTTPS для Elasticsearch и Kibana, запретите доступ по публичному IP‑адресу, дайте доступ через WireGuard или внутреннюю сеть.
Типичные ошибки
- Сбор «всего и сразу» без фильтров — платите за лишнее место и теряете фокус.
- Хранение логов в сыром текстовом виде без парсинга — сложно искать и строить дешборды.
- Запуск Elasticsearch на маленьком VPS без достаточной RAM — индексация тормозит.
- Отсутствие ротации индексов — дисковое пространство закончится внезапно.
- Доступ к Kibana открыт публично без авторизации и шифрования.
3 шага, которые можно сделать сегодня:
- Установите Fluent Bit на один тестовый сервис и направьте логи в локальный файл в json.
- Разверните тестовую связку Elasticsearch + Kibana на отдельном VPS или тестовой машине и подключите один поток логов.
- Сделайте базовый дешборд с ошибками 5xx и медленными запросами; настройте ежедневную ротацию индексов.