Логгинг для администраторов: как создать систему мониторинга операций в Single Page Application? | 05 ноября 2017 года, 06:14

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

Анализировать логи сервера тоже бестолку, потому что админки сейчас построены на Single Page Application.

У меня появилась идея, как можно реализовать такой логгинг для любых систем, а не только хайбриса. И пытаюсь найти такую тулзу готовую, и пока не получилось. Ее относительно несложно сделать. Если вы разбираетесь в chrome extensions, можно попробовать сделать PoC вместе.

Идея такая:

1. Администратор заходит в сайтовую админку (не обязательно хайбрис).

2. Экстеншн в Хроме понимает, что открывшийся сайт – из списка на журналирование операций и переходит в рабочий режим.

3. При определенных событиях, как “ввод данных в форму”, “клик на элемент” система выполняет журналирование операции и отправляет на сервер результаты. А именно:

а) скриншотит экран, и выделяет область, где находится элемент (или весь экран, если так проще, для начала).

б) добавляет дополнительные метаданные к скриншоту, если их удалось выцепить (например, для textarea – введенный текст)

в) добавляет айди оператора.

г) ставит скриншот с метаданными в очередь на отправку.

д) разгребает очередь постепенно отправляя скриншоты на сервер

На сервере скриншоты падают в стек FIFO, какое-то время доступны для анализа суперадмином, если появляется проблема.

Из минусов вижу следующие:

1. Непонятно как реализовать drag-n-drop, например. Также непонятно, как определять, что пользователь заполнил форму (просто что-то ввел и ушел из textarea – нужно ли отправлять в этом случае скриншот или нет? хз)

2. Не всегда легко обогатить скриншот метаданными. Например, обработчик onClick может висеть на пустом div, а другой div будет содержать активный элемент с данными.

2. Много внимания системе безопасности

3. Возможное торможение системы из-за постоянного аплоада скриншотов. Если активно кликать в админке, исходящий траффик будет создаваться около 1Мб/сек. Потенциально может привести к тормозам. Но все же, это не очень большая проблема.

Если есть специалисты по Chrome Extensions – велкам. Может, набросаем вместе PoC?

P.S. В комментах спрашивают, почему не анализировать запросы. Вот почему: https://www.facebook.com/raufaliev/posts/10155743809477368?comment_id=10155743823937368&reply_comment_id=10155743836027368&comment_tracking=%7B%22tn%22%3A%22R%22%7D

Оставьте комментарий