Логирование
На этой странице мы расскажем вам о работе с логированием на портале и разберем следующие вопросы:
Что такое логи и зачем они нужны
Логирование – это процесс фиксации изменений, которые происходят в системе при взаимодействии с ней.
Логи помогают контролировать изменения и видеть ответственных за их появление. Логирование ошибок помогает в диагностике проблем.
Как найти логи
Логи расположены в Административной части портала в разделе Логи
Как понять какие логи мне нужны
Что ищем | Где смотреть |
---|---|
Попытки авторизации пользователей | Лог авторизации |
Изменения конфигурации кармы: кто изменил настройки и какие параметры были изменены | Лог баллов |
Изменения в контенте: кто и что изменил в новости, мероприятии, уроке, учебном плане, тестировании | Лог действий |
Изменения связанные с импортом паролей: кто и когда производил импорт, кому был изменен пароль и статус загрузки | Лог импорта паролей |
Действия пользователей, осуществлённые во время маскировки под другими пользователями | Лог маскировки |
Данные об ошибках: время возникновения, страница, код ошибки | Лог ошибок |
Изменения в личных карточках пользователей, удаление и восстановление пользователей на портале. Кто кого удалил, деактивировал, восстановил. | Лог пользователей |
События, связанные с работой с сервисами | Лог сервисов |
Детально функционал описан ниже, в соответствующих разделах документации.
Лог авторизации
Раздел доступен пользователям с активным свитчером Логирование \ Административная часть
В раздел записывается информация о неуспешных и успешных попытках входа в систему, отсортированная по убыванию их даты. На одной странице выводится 20 записей логов, если записей больше, появляется пагинация.
Запись об авторизации появляется в таблице логов только если пользователь вводил логин и пароль для авторизации или если платформа Мотивити запрашивала данные у сторонней системы для его аутентификации. Если для авторизации пользователя использовались куки сессии пользователя, сохранённые в его браузере, запись в логах не появляется
При неуспешной авторизации через ldap будет создаваться 2 лога, т.к система сначала пытается авторизовать пользователя через ldap, а потом через Локальную авторизацию, например, может провалиться попытка авторизации через ldap, но успешно пройти Локальная авторизация, при этом попытки для каждого типа авторизации считаются независимо, т.е. если авторизация не прошла ни по ldap ни по локальной авторизации, то в логе будет 2 неудачных строки с разным типом авторизации с одинаковым номером попытки
Если же пользователь успешно авторизовался через ldap, то локальная уже не будет проверяться и соответственно вторая запись в логе не появится
Логи хранятся в течение 180 дней. Предупреждение об этом располагается вверху страницы
Блок фильтрации состоит из:
Выпадающие списки фильтрации по доступным параметрам:
Фильтрация записей в заданный диапазон логирования, по дате и времени – формат: с “ДД.ММ.ГГГГ ЧЧ:ММ” по “ДД.ММ.ГГГГ ЧЧ:ММ”
Учётная запись – доступен множественный выбор из списка пользователей
Статус – успешно или неуспешно
Кнопка Применить – по нажатию применяются параметры и осуществляется фильтрация
Кнопка Сбросить – появляется после выполненной фильтрации, по нажатию фильтрация сбрасывается и кнопка вновь скрывается
Кнопка Сохранить xlsx – по нажатию выгружается таблица логов в файле формата .xlsx. Если ранее к таблице были применены фильтры, в таблицу выгружаются только отфильтрованные записи
Таблица с записями логов имеет следующую структуру:
ID – уникальный номер записи
Дата авторизации – дата и время попытки авторизации
Учётная запись:
Если при попытке авторизации был введён логин, который можно сопоставить с имеющейся на платформе неудалённой учётной записью, выводится:
Аватар пользователя
Имя и фамилия пользователя – под которым пытались авторизоваться, где “имя и фамилия” это активная ссылка на редактирование пользователя в панели администрирования
Почта
Если был введён логин, которому не соответствует неудалённая учётная запись пользователя, выводится надпись Пользователь не обнаружен
Логин – данные, которые были введены в поле Логин при авторизации. Пустое если аутентификация происходила при помощи OAuth
Тип авторизации:
Локальная – при вводе логина и пароля, который хранится в БД Мотивити
2FA – при подключенном втором факторе аутентификации на Мотивити. В этом случае по пользователю в логах будет отображено две строки: одна про успешную локальную авторизацию, вторая - про успешное или неуспешное прохождение второго фактора
ldap – при использовании аутентификации через ldap/s
OAuth/<Имя провайдера> – при использовании для аутентификации одного из методов OAuth, где имя провайдера может быть KeyCloak | AD FS | OKTA | Azure
Статус:
Успешно – если пользователь был авторизован в Мотивити
Неуспешно – если:
Введённый пароль был неверен
илиВнешняя система прислала отказ в аутентификации пользователя и он не был авторизован в Мотивити
илиПользователь ввёл пароль неверно 8 раз, был временно заблокирован, но продолжает попытки авторизоваться
илиПользователь пытается авторизоваться под удалённым или неактивным пользователем
Номер попытки
Номера попыток для OAuth авторизации не записываются
Номера попыток на первый и второй фактор авторизации (Локальная и 2FA авторизация) считаются отдельно
Если пользователь был временно заблокирован после неудачного ввода логина и пароля (8 попыток подряд) и спустя время разблокировки начал вводить пароль снова, счётчик попыток начинает считаться с 1
Если пользователь продолжает попытки авторизации после того, как был временно заблокирован, до истечения срока блокировки, счётчик попыток продолжается ( из-за специфики блокировки авторизации могут некорректно считаться номера неудачных попыток в случае, если пользователь неудачно ввёл пароль 8 раз и был заблокирован, а потом вернулся до конца разблокировки и ввёл логин пароль ещё раз)
IP-адрес – ip-адрес, с которого была произведена попытка авторизации
Тип устройства
Мобильный – при авторизации со смартфона/планшета
Компьютер – при авторизации с компьютера или если авторизация происходила в браузере мобильного устройства работающего в режиме версии для ПК
Браузер
<Имя браузера и его версия> – при авторизации через браузер
Мобильное приложение – при авторизации через мобильное приложение
Лог баллов
На портале предусмотрено логирование всех действий администраторов по изменению конфигурации баллов:
При изменении количества баллов за обучение и баллов кармы по активностям пользователей на портале – см. раздел Как настроить конфигурацию баллов
И, при наличии модуля Каталог призов, при смене валюты каталога призов
Инструмент располагается в разделе Логи – Лог баллов.
Фильтрация и сортировка не предусмотрены.
Поля в таблице:
ID – уникальный номер записи
Дата события – дата и время внесения изменений
Инициатор – имя пользователя, который внес изменения. Активная ссылка в ЛК пользователя в Публичной части портала
Действие:
Обновил
Цель – название параметра, в котором внесены изменения.
Изменения – обновление, которое совершил администратор в формате “Название поля: Было → Стало”
Пример: Изменено значение параметра "Валюта для покупки призов": Старое - Из кармы, Новое - Из обучения
Таблица логов не выгружается в .xlsx-файле.
Лог действий
Располагается в разделе Логи – Лог действий и фиксирует изменения в контенте и в данных пользователей.
Записи внесены в таблицу и расположены в хронологическом порядке по убыванию даты изменений.
Блок поиска и фильтрации состоит из:
Выпадающие списки фильтрации по доступным параметрам:
Фильтрация записей в заданный диапазон логирования, по дате и времени – формат: с “ДД.ММ.ГГГГ ЧЧ:ММ” по “ДД.ММ.ГГГГ ЧЧ:ММ”.
Инициатор события – доступен множественный выбор из списка пользователей
Действие – доступен множественный выбор из списка возможных действий
Поле ввода Поиск. Поиск осуществляется по следующим параметрам:
id записи лога
id сущности
Кнопка Применить – по нажатию применяются параметры и осуществляется поиск и фильтрация
Кнопка Сбросить – появляется после выполненного поиска/фильтрации, по нажатию поиск и фильтрация сбрасываются и кнопка вновь скрывается
Кнопка Сохранить xlsx – по нажатию выгружается таблица логов в файле формата .xlsx
Поля в таблице:
ID – уникальный номер записи
Дата события – дата и время внесения изменений
Инициатор
Имя и фамилия пользователя, который внес изменения через интерфейс платформы или был указан в запросе метода публичного API, где “имя и фамилия” – это активная ссылка в ЛК пользователя в публичной части портала, а кнопка “карандашик“ – ссылка на редактирование пользователя в панели администрирования
Система – если изменение было внесено при помощи вызова метода публичного API, в котором нельзя указать пользователя, вносившего изменения
Действие – действие, которое совершил пользователь:
Обновил
Создал
Удалил
Восстановил
Отменил
Деактивировал
Активировал
Обновил пароль
Обновил назначения
Обновил доступы
Цель – объект изменений
ФИО пользователя, для которого внесены изменения, где “имя и фамилия” – это активная ссылка в ЛК пользователя в публичной части портала, а кнопка “карандашик“ – ссылка на редактирование пользователя в панели администрирования
Название материала, в котором внесены изменения, где “название материала” – это активная ссылка на страницу материала в публичной части портала, а кнопка “карандашик“ – ссылка на редактирование материала в панели администрирования
Механика работы активной ссылки “Название материала“:
Если материал удален – ссылка не отображается
Если материал удален и неактивен – ссылка ведет на страницу материала в публичной части портала, но раз материал неактивен, отображается 404 ошибка
Если материал удален и активирован – ссылка ведет на страницу материала в публичной части портала
Важно! Для объектов, у которых нет своих страниц в публичной части (неактивен, удален) или в панели администрирования (удален и его нельзя восстановить), ссылка или кнопка “карандашик“ не выводятся.
Изменение – список данных, которые были изменены в формате “Название поля: Было → Название поля: Стало”, при этом значение “Было” выводится на сером фоне, а “Стало” – на зеленом
Комментарий – выводится дополнительная информация, например, информация о вызванном методе публичного API, с помощью которого произошло изменение данных пользователя
Лог действий Опросы
В логе действий, где Целью являются Опросы, в поле Изменения логируются следующие значения:
Действие | Изменения | Особенности |
---|---|---|
Создание/обновление/удаление опроса в модуле Опросы |
|
|
Создание/обновление опросов на вкладке Опрос в модулях где он представлен |
|
|
В логе действий, где Целью являются вопросы из базы вопросов в модуле Опросы, в поле Изменения логируются следующие значения:
Действие | Изменения | Особенности |
---|---|---|
Создание/обновление/удаление вопросов из базы вопросов |
|
|
Создание/обновление вопросов на вкладке Опрос в модулях где он представлен |
|
|
Лог действий Тестирования
В логе действий, где Целью являются Тестирования, в поле Изменения логируются следующие значения:
Действие | Изменения | Особенности |
---|---|---|
Создание/обновление тестирования в модуле Тестирования |
|
|
Удаление тестирования в модуле Тестирования | – | В логе удаления тестирования запись в поле Изменение не происходит. Логируется только факт удаления. |
Восстановление тестирования в модуле Тестирования |
| При восстановлении тестирования логируется изменение Удалил и Тестирование активно, т.к. при восстановлении тестирование деактивируется |
В логе действий, где Целью являются вопросы из базы вопросов в модуле Тестирования, в поле Изменения логируются следующие значения:
Действие | Изменения | Особенности |
---|---|---|
Создание/обновление вопросов из базы вопросов |
|
|
Лог действий Цели
В лог действий добавляются записи для каждого события по созданию, изменению, завершению, обновления целей через публичное API.
ID
Дата события
Инициатор – имя и фамилия пользователя, который был указан в запросе метода публичного API в
authorId
, где “имя и фамилия” – это активная ссылка в ЛК пользователя в Публичной части портала, а кнопка “карандашик“ – ссылка на редактирование пользователя в Панели администрированияДействие
Обновил – для действий по изменению, подтверждению, завершению целей (данные по изменению значений цели не логируются)
Создал – для создания целей
Удалил – для удаления целей
Цель – название цели, в которую были внесены изменения и ФИО пользователя, кому цель принадлежит, в виде “Цель: название цели, Пользователь: ФИО пользователя”
Изменение – список данных, которые были изменены по цели, в формате “Название поля: Было → Название поля: Стало”, при этом значение “Было” выводится на сером фоне, а “Стало” – на зеленом
Комментарий – API, созданных и изменённых через публичный API целей
Лог действий Фотоотчёты
Логируются все изменения, производимые с модулем в административной части.
Логируемые типы действий:
Создание
Обновление (редактирование)
Удаление
Восстановление
Сущности для логирования:
Шаблон фотоотчёта
Критерии
Отделы
Инструкция
Лог действий Статусы доступности
Логируются все изменения, производимые со статусом доступности в административной части.
ID
Дата события
Инициатор — ФИО пользователя, которым были произведены изменения
Действие:
Обновил — для установки, изменения, удаления статуса доступности
Цель – ФИО пользователя, для которого внесены изменения
Изменение — список данных, которые были изменены в формате «Название поля: Было → Название поля: Стало», при этом значение «Было» выводится на сером фоне, а «Стало» — на зелёном
Лог действий с пользователем
Логируются изменения данных пользователей через интерфейс платформы или через успешные вызовы методов публичного API, которые произвели изменения данных пользователя, например, вызов методов для начисления и снятия бейджей (см. Публичное API | Бейджи)
ID
Дата события
Инициатор
Действие
Цель – ФИО пользователя, для которого внесены изменения
Изменение – список данных, которые были изменены, например, в “Было“ отображается список бейджей, который был у пользователя до изменений, в “Стало“ – список бейджей после изменений
Комментарий – {метод} {URL} {ip-адрес, с которого был вызван метод}, например, POST %адрес_платформы%/public/api/v1/badge/{badgeId}/assign 66.435.56.144
Лог импорта паролей
Располагается в разделе Логи → Лог импорта паролей и фиксирует изменения всех запросов связанных с импортом паролей:
Кто производил импорт — ФИО пользователя
Когда происходил импорт — дата и время импорта
Кому загрузили пароль (на каждого пользователя отдельная строка) — ФИО пользователя и его УИ
Статус загрузки — Успешно / Неуспешно
Сами пароли, которые были загружены в систему, не отслеживаются в логировании
Страница логов импорта паролей состоит из:
# — ID лога
— дата и время импорта в формате: ГГГГ-ММ-ДД ЧЧ:ММ:СС
— ФИО пользователя, который производил импорт. По клику переход на страницу пользователя в админпанели
— статус обновления пароля: Успешно / Неуспешно
— ФИО пользователя, которому загружали пароль
Фильтрация и сортировка не предусмотрены.
Лог маскировки
Инструмент располагается в разделе Логи – Лог маскировки
В логе фиксируется, когда одни пользователи осуществляют маскировку под другими пользователями и выполняют под ними какие-то действия.
Записи вносятся в таблицу в хронологическом порядке по убыванию даты изменений.
Фильтрация не предусмотрена.
Поля в таблице:
ID – уникальный номер записи
Дата начала – дата и время совершение действия под маскировкой
Замаскированный пользователь – ФИО пользователя, который совершил маскировку. Активная ссылка в ЛК пользователя, в Публичной части портала.
Оригинальный пользователь – ФИО пользователя под которым замаскировались. Активная ссылка в ЛК пользователя, в Публичной части портала.
URL – Адрес куда ушёл запрос;
Тип запроса
Данные – список данных, которые отправил Замаскированный пользователь (предположительно в формате json)
Таблицу логов можно выгрузить в .xlsx-файл.
Как расшифровать лог маскировки
Поля и их описание | Пример | Объяснение |
---|---|---|
Url – адрес куда ушёл запрос, в котором можно отследить в каком разделе портала произошло действие и что было выполнено Тип запроса – возможны следующие значения:
Данные – список данных, которые отправил Замаскированный пользователь в формате json, который может состоять из:
| Url Тип запроса Данные {
"text" : "Это моя первая запись в пульсе"
}
|
|
Url Тип запроса Данные {
"id" : "63"
"text" : "Это моя самая первая запись в пульсе в этом году"
} |
|
Лог ошибок
Располагается в разделе Логи – Лог ошибок.
Фиксирует все системные ошибки, которые появляются на портале. Служит удобным инструментом при диагностике проблем.
Записи внесены в таблицу и расположены в хронологическом порядке по убыванию даты изменений.
Раздел доступен только для пользователей с ролью Верховный администратор
Срок хранения ошибок – 6 месяцев, которые удаляются кроном command → log.delete
(запускается раз в месяц).
Важно: видеть код ошибки на странице в Публичной части может только пользователь с ролью Верховный администратор. Пользователь без таких прав видит только соответствующую ошибке заглушку.
В этом разделе реализована фильтрация по типу ошибок и по периоду.
Список значений фильтра по типу ошибки:
Любой тип
4096
Compile Error
error
error_500
Notice
Warning
Фильтрация записей также возможна в заданный период логирования, по дате и времени.
Формат: с ДД.ММ.ГГГГ ЧЧ:ММ по ДД.ММ.ГГГГ ЧЧ:ММ.
Поля в таблице:
ID – уникальный номер записи
Дата – дата и время появления ошибки в системе
Тип ошибки
Ссылка на страницу с ошибкой
Код ошибки
Таблицу логов можно выгрузить в .xlsx-файле.
Важно: предусмотрена фильтрация по типу и дате ошибки. Если фильтр был настроен, то в отчёт попадут только отфильтрованные данные.
Лог пользователей
Располагается в разделе Логи – Лог пользователей
Фиксирует изменения баланса баллов пользователя, а также создание, удаление и восстановление пользователей на портале через интерфейс платформы или через успешные вызовы методов публичного API, которые произвели изменения, например, вызов методов для изменения баланса баллов пользователя (см. Публичное API | Баллы)
Поля в таблице:
ID – уникальный номер записи в системе
Дата события – дата и время внесения изменений
Инициатор
Имя и фамилия пользователя, который внес изменения через интерфейс платформы или был указан в запросе метода публичного API, где “имя и фамилия” – это активная ссылка в ЛК пользователя в Публичной части портала, а кнопка “карандашик“ – ссылка на редактирование пользователя в Панели администрирования
Система – если изменение было внесено при помощи вызова метода публичного API, в котором нельзя указать пользователя, вносившего изменения
Действие:
Удалил – лог формируется при удалении пользователя
Восстановил – лог формируется при восстановлении пользователя
Сброс пароля – лог формируется при сбросе пароля пользователя
Создал – лог формируется при создании пользователя
Обновил – лог формируется при изменении данных пользователя
Цель – ФИО пользователя, для которого внесены изменения, где “имя и фамилия” – это активная ссылка в ЛК пользователя в публичной части портала, а кнопка “карандашик“ – ссылка на редактирование пользователя в панели администрирования
Важно! Для объектов, у которых нет своих страниц в публичной части (неактивен, удален) или в панели администрирования (удален и его нельзя восстановить), ссылка или кнопка “карандашик“ не выводятся.
Изменение – список данных, которые были изменены в формате “Название поля: Было → Стало”
Важно! В логе пользователей не отображается информация о начисленных баллах кармы за ежедневный вход пользователя, если вход был осуществлен другим пользователем под маскировкой.
Комментарий – выводится дополнительная информация, например, информация о вызванном методе публичного API в формате {метод} {URL} {ip-адрес, с которого был вызван метод}, с помощью которого произошло изменение данных пользователя
Таблицу логов можно выгрузить в .xlsx-файле.
Лог сервисов
Располагается в разделе Логи – Лог сервисов
Фиксирует все события, связанные с работой со сторонними сервисами или с публичным API motivity.
Записи внесены в таблицу и расположены в хронологическом порядке по убыванию даты и времени запроса.
Раздел доступен только для пользователей с ролью Верховный администратор
Срок хранения логов – 180 дней, которые удаляются кроном command → log.delete
. Крон запускается и проверяет срок хранения логов раз в месяц. Если на момент запуска крона срок хранения лога будет от 151 до 179 дней, то лог удалится на 181-209 день. Для напоминания о сроке хранения логов, в верхней части страницы присутствует предупреждение:
Записи логов хранятся 180 дней
Поля в таблице:
ID – уникальный номер записи
Дата и время запроса – дата и время запроса по времени сервера с точностью до секунд
Инициатор запроса
Фамилия Имя пользователя, которым был инициирован запрос стороннего API – отображается в виде ссылки на карточку пользователя в административной части
ip-адрес, с которого происходил вызов метода публичного API motivity
Иначе остаётся пустым
Сервис
Метод и адрес сервиса стороннего api, который пыталась вызвать платформа
Метод и адрес сервиса публичного API motivity, который вызвал внешний клиент
Использование прокси – Да или Нет в зависимости от того, был ли активирован при запросе прокси
Параметры прокси – заполняется в случае использования прокси
Код ответа – код ответа сервиса или метода
Текст ошибки – информация об ошибке (содержимое ответа), полученной из сервиса, при её наличии
Комментарий – дополнительная информация о запросе (при её наличии) со стороны платформы или со стороны внешнего клиента. Например
В случае мероприятий может быть указана ссылка на мероприятие, из которого происходил вызов метода livedigital API
В случае вызова методов публичного API могут быть указаны параметры, переданные в body запроса, или параметры успешного ответа на запрос
livedigital
По запросам livedigital API логируется следующая информация:
Событие | Информация о событии | Информация о запросе |
Метод или домен, к которому пытается обратиться система, не существует (при указании неправильного домена в настройках интеграции) | Дата и время запроса | Сервис – домен и метод, которые пыталась вызвать система |
При изменении настроек интеграции указан некорректный токен (проверяется методом GET |
| Код ответа |
Запрос списка пространств при создании и редактировании шаблона или мероприятия GET |
| Код ответа |
Создание комнаты для мероприятия POST |
|
|
Удаление комнаты для мероприятия DELETE |
|
|
Запрос уникальной ссылки для текущего пользователя POST |
|
|
Получение данных вызовов по комнате GET |
|
|
Получение данных по участникам мероприятия GET |
|
|