«Бауцентр» – российская сеть гипермаркетов строительных и отделочных материалов, товаров для дома, а также для сада и огорода.
Гипермаркеты «Бауцентр» расположены в 5 городах России: 3 в Калининграде, 2 в Краснодаре, 1 в Новороссийске, 2 в Омске и 1 в г. Пушкино Московской области.
Общая площадь 9 магазинов сети в настоящий момент составляет более 120 000 кв.м
Ежедневно магазины «Бауцентр» посещает более 70 000 потенциальных покупателей.
Средняя площадь гипермаркета составляет около 14 000 кв.м
Сотрудничество Интаро и Бауцентр началось более 7 лет назад. Совместными усилиями мы развиваем и поддерживаем интернет-магазин baucenter.ru и коробочную версию RetailCRM. Многолетнее сотрудничество и глубокое погружение в бизнес клиента позволяет нашим специалистам предлагать оптимальные и передовые решения для электронной коммерции.
Для того чтобы обеспечить быстрое развитие функциональности интернет-магазина, качественно запустить продающее мобильное приложение, сократить период отладки изменений в условиях работы нескольких команд над проектом заказчиком была поставлена задача о внедрении системы мониторинга и логирования.
Немного теории
Логи - это файлы, в которые программы в виде текста записывают свои действия и различные события, произошедшие с ними, в том числе для предупреждения ошибки. Логи позволяют понять, что происходило с программой, и что делала система в определенный момент времени,а также найти, кто именно совершил то или иное действие. Например, если программа ведет себя не так как от нее ожидалось, то в первую очередь проверяются логи.
Проблема и решение
PIM
Каталог, акции,
контент, интеграция с Битрикс
Битрикс
WEB, iOS,
Android
Сайт в браузере и два
мобильных приложения
Avarda
Учетная система, программа
лояльность, кассы
СПЦ
Микросервис между Авардой и Битриксом хранит данные об условиях программы лояльности и актуальном балансе бонусного счета
RetailCRM
Продажи и маркетинг, Интеграция с Битрикс, Mailguner, Devinoonline, Geohelper, Asterisk, Telegram, Viber, ГА
Командой Интаро была собрана система мониторинга логов. Эта система позволяет собирать записи из различных log-файлов, обрабатывать их, сохранять их на длительное время, и просматривать в удобном и настраиваемом графическом интерфейсе.
Система позволяет технической поддержке точечно обрабатывать обращения покупателей и усовершенствовать процессы обменов и кода.
Стек технологий
Основной задачей было логирование API сайта. Мы доработали код так, чтобы в лог записывался запрос, ответ, статус и время работы каждого API-метода. Запись логов производилась в файлы, т.к. это самый безопасный вариант для production-среды.
Далее мы настроили систему логирования на базе
Vector
ClickHouse
Grafana
Application
Log
Vector Log Collector
ClickHouse
Grafana
Vector - это сборщик и обработчик записей из логов, он собирает записи из логов и отправляет их в базу данных в ClickHouse. ClickHouse хранит таблицы с логами. Grafana выступает в качестве интерфейса для просмотра записей логов из базы в ClickHouse.
Grafana позволяет не просто выводит записи из базы, но и конвертирует их в более удобный для пользователя вид и позволяет проводить поиск по ним.
Также Grafana позволяет строить графики на основе полученных данных.
Процесс реализации
Чтобы легко диагностировать проблемы, для API мы сохраняем
Название метода
Текст запроса
Текст ответа
Дополнительные данные (название устройства, идентификатор пользователя и т.д.)
HTTP-статус
Время ответа
При реализации мы предусмотрели исключение из логов чувствительных пользовательских данных.
Мы настроили не только логи API, но и логи обмена с внутренней системой Avarda. Также был настроен сбор системных логов: ошибки MySQL, PHP и nginx, access log сервера. Теперь они также отображаются в одном месте. С помощью Grafana мы можем работать с данными в удобном интерфейсе, а ClickHouse СУБД заточен под большой объем данных и обеспечивает хорошую работу в условиях высокой нагрузки.
Так как Бауцентр - высоконагруженный интернет-магазин, он работает на кластере из серверов (несколько балансировщиков, application-серверов и серверов БД). Каждый из серверов пишет логи в свою файловую систему. Поиск по логам на всех серверах - неудобно и трудоемко, поэтому очень важно аккумулировать логи со всех серверов в единое хранилище.
В результате
Обеспечение безопасности, производительности и оптимизации интернет-магазина;
Грамотный подбор стека технологий, гарантирующий отказоустойчивость крупного
интернет–магазина.
Сбор данных о ошибках и запросах в едином окне;
Минимизация рисков и срока реакции на устранение неполадок;
Эффективный контроль системы интернет-магазина;
Предупреждение возникновения ошибок в будущем;