/
Логирование событий

Логирование событий

О логировании на платформе

Логирование событий производится с помощью инструмента Grafana, интегрированному в систему. Анализируя зафиксированные на платформе события, вы можете выявлять несанкционированный доступ к конфиденциальной информации и контролировать работу пользователей с платформой.

Система фиксирует информацию о действиях над следующими объектами:

  • рабочие области;

  • права на рабочие области;

  • наборы данных;

  • дашборды;

  • темы;

Перечень действий, фиксируемых над указанными объектами:

  • добавление;

  • удаление;

  • редактирование.

Для фиксации всех действий субъектов над объектами на платформе используется единый формат логов. Выглядит он следующим образом:

OperationName:{@OperationName} with AccessType:{@AccessType} on ObjectType:{@ObjectType} with WorkspaceId:{@WorkspaceId} completed by User:{@User} with OperationStatus:{@OperationStatus}

где –

  • @OperationName – название произведенной операции;

  • @AccessType – типа доступа к объекту;

  • @ObjectType – тип объекта, над которым была произведена операция;

  • @WorkspaceId – идентификатор рабочего пространство, где произошло событие;

  • @User – логин пользователя, который совершил действие;

  • @OperationStatus – результат произведенной операции.

Ниже приведено описание каждого элемента строки:

Название элемента

Список возможных значений

Название элемента

Список возможных значений

OperationName

CreateCopyDashboard – создание копии дашборда;
CreateDashboard – создание дашборда;
DeleteDashboard – удаление дашборда;
DeleteStaleDashboardsAndThemes – удаление устаревших дашбордов и тем;
RenameDashboard – переименование дашборда;
SaveAsDashboard - сохранение дашборда с помощью Save As;
SaveDashboard – сохранение дашборда;
GetDashboard - получение доступа к дашборду;
GetDashboardList – получение доступа к списку дашбордов;

UploadImage – загрузка изображения;
GetImage – получение доступа к изображению;

DeleteTheme – удаление темы;
ImportTheme – импорт темы;
SetThemeForDashboard – установка темы для дашборда;
SetThemeForWorkspace – установка темы для рабочей области;
ExportTheme – экспорт темы;
ExportThemeFromWidget – экспорт темы виджета;
GetTheme – получение доступа к теме;
GetThemeList – получение доступа к списку тем;

CreateUserWidget – создание пользовательского виджета;
DeleteUserWidget – удаление пользовательского виджета;
UpdateUserWidget – обновление пользовательского виджета;
GetUserWidget – поучение доступа к пользовательскому виджету;
GetUserWidgetList – получение доступа к списку пользовательских виджетов;

GetWidgetTemplateCode – получение доступа к коду виджета, который используется по умолчанию;
ExportWidgetDataToExcel - экспорт данных, отображаемых в виджете, в Excel;
GetWidgetData – получение доступа к данным, отображаемым в виджете.

AccessType

  • None – отсутствие типа доступа;

  • Create – доступ на создание;

  • Read – доступ на чтение;

  • Write – доступ на запись;

  • Delete – доступ на удаление;

  • List – доступ на чтение списка;

  • GrantPermissions – доступ к выдаче прав доступа, например, к рабочей области (для создания ролей и т.д.)

ObjectType

  • Workspace – рабочая область;

  • Dataset – набор данных;

  • Dashboard – дашборд;

  • Theme – тема;

  • ScheduledLoader – загрузчик по расписанию;

  • DataSource – источник данных;

  • UserWidget – пользовательский виджет;

  • Image – изображение;

  • WidgetTemplateCode – код виджета, используемый по умолчанию;

  • WorkspaceRoleMapping – объект, хранящий сопоставление имени пользователя и роли в рабочей области, или группы пользователя и роли в рабочей области;

  • DatasetPermissionMapping – объект, хранящий сопоставление имени пользователя и разрешение в наборе данных, или группы пользователя и разрешение в наборе данных.

WorkspaceId

Идентификатор рабочей области. Например, WorkspaceId:3fe8019c-7e04-4f8b-9c45-d02b4f493281.

ObjectId

Идентификатор объекта, над которым выполнилось действие. Например, ObjectId:5g3660be-8079-4710-975a-0349367d9ebf.

User

Логин пользователя, который совершил операцию. Например, User:admin.

OperationStatus

Результат выполненной операции. Возможны два варианта:

  • Success – действие выполнено успешно;

  • Failed – действие не выполнилось.

Образец записи события (сохранение дашборда пользователем “admin”):
OperationName:SaveDashboard with AccessType:Write on ObjectType:Dashboard with ObjectId:a2202fdbc3384f9fb22fd2d005c43f93 with WorkspaceId:4de8029c-7e04-4f6b-9c46-d02b4f493192 completed by User:admin with OperationStatus:Success

Данная запись информирует о том, что пользователь admin сохранил дашборд с идентификатором a2202fdbc3384f9fb22fd2d005c43f93 в рамках рабочей области с идентификатором 4de8029c-7e04-4f6b-9c46-d02b4f493192, и что операция завершилась успешно.

Просмотр лога

Для получения доступа к логу, выполните следующие шаги:

  1. В веб-браузере перейдите по адресу http://<platform-address>/v3/grafana, где <platform-address> – IP-адрес или доменное имя сервера.

  2. В открывшемся окне нажмите Home Explore в левой стороне экрана:

     

  3. В открывшемся окне выберите один из режимов построения запросов в правой стороне экрана: Builder или Code. Мы выберем Code:

     

  4. Теперь для просмотра данных необходимо ввести команду в строке запроса. Как мы уже говорили, для логирования событий на платформе используется Grafana. При использовании данной системы, в строке ввода запроса в самом начале в фигурных скобках указывается поток, либо компонент, события которого следует фильтровать.
    Например, мы хотим просмотреть записи, касающиеся пользователя ivanov. Для фильтрации по строке в Grafana используется конструкция |="строка", поэтому мы введем следующую команду и нажмем Run query в правом верхнем углу:
    {exporter="OTLP"} |= "ivanov"

    В результате мы получили наборы записей, подобные этой:

     

    Проанализировав выведенные данные, вы сможете определить какие действия, над какими объектами и когда производил указанный пользователь.

В Grafana для построения запросов используется язык LogQL.

Примеры запросов

Ниже представлен список примерных запросов с кратким описанием. Запросы построены таким образом, чтобы пользователю было легко воспринимать отображаемую информацию. Строки содержат лишь основные данные о событии (line_format "{{.body}}"). Для просмотра более подробной информации, необходимо развернуть запись, щелкнув по ней мышкой.

Запрос

Описание

Запрос

Описание

{exporter="OTLP"} | json | line_format "{{.body}}" |= "Failed"

Поиск событий со статусом Failed (действие не было выполнено из-за ошибки). Пример результата поиска:

OperationName:GetWidgetData with AccessType:Read on ObjectType: Global completed by User:admin with OperationStatus:Failed, ErrorMessage:Call failed with status code 400 (Bad Request): POST http://formula-engine:80/api/v1.0/workspaces/4de8029c-7e04...

{exporter="OTLP"} | json | line_format "{{.body}}" |= "CreateDashboard"

Поиск событий, относящихся к созданию дашборда.
Пример результата поиска:

OperationName:CreateDashboard with AccessType:Create on ObjectType: Dashboard with ObjectId:a4cc7bd500954b4cb733a694ceaddd40 with WorkspaceId:4de8029c-7e04-4f6b-9c46-d02b4f493192 completed by User:admin with OperationStatus:Success

{exporter="OTLP"} | json | line_format "{{.body}}" |= "DeleteTheme"

Поиск событий, относящихся к удалению темы.
Пример результата поиска:

OperationName:DeleteTheme with AccessType:Delete on ObjectType: Theme with ObjectId:b4c0d1c637594ab9bc353ca07a49976c with WorkspaceId:4de8029c-7e04-4f6b-9c46-d02b4f493192 completed by User:admin with OperationStatus:Success

{component="v3-data-management-service"} |= "Hangfire"

Поиск событий, относящихся к обновлению данных.

Пример результата поиска:

{component="v3-keycloak"} |= "error="

Поиск событий, относящихся к попытке войти в систему с помощью незарегистрированной учетной записи, либо к использованию неправильного логина или пароля для существующей учетной записи.

Пример результата поиска:

Попытка войти в систему с помощью незарегистрированной учетной записи:

Использование неправильных учетных данных пользователя:

{component="v3-dashboard-service"} |= "OperationName"

Логирование доступа к различным объектам. В примере ниже приведена запись о сохранении дашборда.

Пример результата поиска:


Смотрите также

Трейсинг запросов

На этой странице

Видео


Время чтения: 2 мин.


Нужна дополнительная помощь?

Свяжитесь с технической поддержкой.

 

Related content

Мониторинг системы
Мониторинг системы
Read with this
Логирование событий
Логирование событий
More like this
Трейсинг запросов
Трейсинг запросов
Read with this
Логирование событий
Логирование событий
More like this
Создание, редактирование и удаление пользователей
Создание, редактирование и удаление пользователей
Read with this
Логирование событий
Логирование событий
More like this