Информация о логировании
Данные, которые собираются ММАП и РММАП на АРМ пользователей (структура архива archive.zip):
- manifest.json;
- window_switching.json;
- inspector_log.json;
- service_log.json;
- timetracking_log.json.
В зависимости от типа архива наполнение файлами будет следующее:
Архив инспектора агента | Архив службы агента | Архив модуля Таймтрекинг |
---|---|---|
manifest.json | manifest.json | manifest.json |
window_switching.json | service_log.json | timetracking_log.json |
inspector_log.json | – | – |
manifest.json
В manifest.json фиксируется основная информация о пользователе, а также информация о типе логов. В поле type определяется от кого пришёл архив: от инспектора (inspector), службы (service) или от трекинга (timetracking).
Пример:
{
"version": "1.0.4",
"machine_guid": "3c830f47-9fcd-4a48-a568-750d8b179987",
"user": {
"name": "Иванов Иван",
"login": "ivanov",
"domain": "CORP.INFOMAXIMUM.COM",
"ad_guid": "d59396ef-c493-4215-8dd5-1c478c846191",
"timezone": "Europe/Moscow",
"timezone_sec": 10800,
"employee_id": 2
},
"computer": {
"name": "c-066-im.corp.infomaximum.com",
"domain": "domain.com",
"workgroup": ""
},
"agent": {
"version": "2.14.3"
},
"type": "inspector"
}
где:
- version – версия протокола (формат данных для сервера);
- user:name – имя пользователя (учетная запись ОС);
- user:login – логин пользователя (учетная запись ОС);
- user:domain – домен пользователя (при наличии);
- user:timezone – имя часового пояса UTC;
- user: timezone_sec – смещение часового пояса относительно UTC (в секундах);
- user: employee_id – внутренний id пользователя;
- computer:name – имя АРМ;
- computer:domain – домен АРМ;
- computer: workgroup – рабочая группа АРМ;
- agent:version – версия агента.
window_switching.json
Активность сотрудников отправляется в JSON-формате в файле window_switching.json и представляет из себя массив записей.
Каждая запись обязательно содержит следующие поля:
{"version":"1.0.5"}
{
"time":1642155992,
"time_ms":122,
"cpu_loading": null,
"memory_loading": null,
"window_activity": {
"app_info": {
"program_name": "Проводник",
"version": "10.0.19041",
"executable_path": "%WINDIR%\\explorer.exe"
},
"type":40,
"input_type":1
"main_window": "",
"url": """,
"tab": "",
"file_path": "Этот компьютер",
"ui_hierarchy": []
"parameters": []
}
}
где:
- version – версия манифеста;
- time – время события по UTC;
- cpu_loading – количество нагрузки на ЦП;
- memory_loading – значение нагрузки на память;
- window_activity – контейнер с информацией о событии;
- app_info: – информация о приложении;
- program_name – название приложения из секции Description;
- version – версия приложения;
- executable_path – полный путь до исполняемого файла;
- type – тип события;
- input_type – параметр, отвечающий за определение типа активности: программная или аппаратная. Если непосредственно до совершенного события была аппаратная hid-активность, то параметр заполняется как input_type=1, если было программное событие, то input_type=0,
- main_window – заголовок главного окна;
- url – URL (в браузерах);
- tab – вкладка главного окна;
- file_path – полный путь к открытому файлу;
- ui_hierarchy – массив UI-элементов, начиная от верхнеуровневого (окно приложения) и до того, с которым работает пользователь (например, кнопка):
- name – название элемента интерфейса;
- ctrl – значение control-элемента.
Типы событий
Поле type представляет собой числовой код события. События сгруппированы по источнику в диапазоны.
Код события | Описание |
---|---|
1 | Start — старт модуля мониторинга, при нормальной работе агента (без сбоев и завершений из диспетчера задач) совпадает со стартом или разблокировкой пользовательской сессии |
2 | Stop — стоп модуля мониторинга, при нормальной работе агента совпадает с блокировкой или завершением пользовательской сессии |
Оконная иерархия | |
40 | WindowSwitch — переключение окон, переключение вкладок в браузере, а также любое переключение между ранее открытыми окнами программ |
41 | WindowUpdate — изменение заголовка окна |
42 | WindowOpen — открытие нового окна: браузера, страницы в новой вкладке браузера, вкладки в программе и т.п. |
43 | DocumentOpen — открытие нового документа |
44 | DocumentSave — сохранение документа под другим именем |
45 | SheetOpen — изменение листа в Excel (переключение на другой лист, переименование или открытие нового) |
Оконные элементы (только расширенный мониторинг) | |
52 | Invoke — клик по UI элементам (кнопки, чекбоксы, радиобаттоны, гиперссылки и др.) |
53 | FieldEdit — редактирование элементов Edit и Combobox. Фиксируется после завершения редактирования и смены фокуса на другой элемент. Название и значение поля фиксируется в parameters |
56 | FileOpen — выбор файла, папки через соответствующее окно открытия. Путь к файлу и его название фиксируются в parameters в поле open_form |
58 | FileSave — сохранение файла в диалоговом окне, а также скачивание файла в браузере Google Chrome. Путь к файлу и его название фиксируются в parameters в поле save_to |
59 | Cut — вырезание текста. Текст отображается в parameters в поле cut_value |
60 | Copy — копирование текста. Текст отображается в parameters в поле copy_value |
61 | Paste — вставка текста. Текст отображается в parameters в поле paste_value |
62 | Select — выбор значения в комбобоксе или радиокнопке, принадлежащей радиогруппе, если в этом значении нет извлекаемых данных. Значение записывается после имени через двоеточие |
63 | Respond — кнопка или гиперссылка, по которой было событие Invoke, стала невидимой |
hid-активность | |
90 | InjectedMouseClick — клик мышкой программный |
91 | InjectedMouseScroll — прокрутка мышкой программная |
92 | InjectedKeyboardEvent — нажатие кнопки клавиатуры программное |
95 | HardwareMouseClick — клик мышкой аппаратный |
96 | HardwareMouseScroll — прокрутка мышкой аппаратная |
97 | HardwareKeyboardEvent — нажатие кнопки клавиатуры аппаратное |
98 | InjectedHidActivity — программная hid-активность deprecated |
99 | HardwareHidActivity — аппаратная hid-активность deprecated |
Control-элементы
В базовом мониторинге могут быть только Window и Unknown, в расширенном — все.
Значение | Код | Описание |
---|---|---|
Unknown | 0 | Неизвестный тип элемента. Ячейки таблиц, например, не имеют Control type |
Window | 1 | Окно |
Button, Splitbutton | 10 | Кнопки |
CheckBox | 12 | Чекбокс. Также CheckBox заменяет RadioButton, если Radiogroup не была найдена |
ComboBox | 13 | Комбобокс. Также ComboBox заменяет RadioButton, если для него была найдена Radiogroup |
Edit | 14 | Текстовые поля |
Hyperlink | 15 | Гиперссылки |
MenuItem | 21 | Пункты меню |
Custom | 35 | Нестандартные элементы управления |
Document | 40 | Текстовые поля в Outlook |
HotKey | 49 | Горячие клавиши |
Горячие клавиши
В событии Invoke фиксируются комбинации с модификаторами Ctrl, Alt, Shift, а также функциональные F1-F12 . Не фиксируются сочетания Shift+A, где A — любая односимвольная клавиша. Например, такие сочетания используются при написании заглавных букв.
Регистр фиксации важен: модификаторы Ctrl, Alt, Shift должны быть именно в таком виде, F1-F12 заглавными буквами. Клавиша в сочетании с модификатором должна быть в верхнем регистре, например, Ctrl+X.
Если в названии элемента есть горячие клавиши, то записываются только они в нужном регистре.
inspector_log.json
В inspector_log.json передаются логи инспектора агента. В логах содержится информация о старте инспектора, периодичность запросов на обновление, тип мониторинга сотрудника.
Пример логов:
{"version":"1.0.0"}
PID=9212 TID=23400 important Start Inspector started, version = 2.14.3, user: nnesterova@CORP.INFOMAXIMUM.COM, settings: {"monitoring_status":2,"timetracking_status":false,"logger":{"level":"LEVEL_ERROR"}}, loggerSetting: LEVEL_ERROR
PID=9212 TID=23400 important system_info::GetUserAdGuid user sid = S-1-5-21-580362855-3340923925-1044332590-1417
PID=9212 TID=23400 important ActivitySender::ActivitySender reservedSpace file size = 1048576b
PID=9212 TID=23400 important ModuleManager::LoadModule module 'C:\Program
Files\ProcesetAgent\mod_extended_monitoring.dll' loaded
PID=9212 TID=23400 important Controller::Start ActivityCollectorExtended started
PID=9212 TID=23400 important ModuleManager::LoadModule module 'C:\Program Files\ProcesetAgent\mod_crash_watcher.dll' loaded
PID=9212 TID=23400 important Controller::Start ProcessCrashWatcher started
PID=9212 TID=9116 important SettingsManager::RefreshUserId EnsureUser success, employeeId = 2
PID=9212 TID=9116 important SettingsManager::RefreshServerComponents GetServerComponents success, components: com.infomaximum.subsystem.activedirectory com.infomaximum.subsystem.clickhouse.core com.infomaximum.subsystem.clickhouse.standalone com.infomaximum.subsystem.core com.infomaximum.subsystem.dashboard com.infomaximum.subsystem.dashboardext com.infomaximum.subsystem.frontend com.infomaximum.subsystem.monitoring com.infomaximum.subsystem.workspaces
PID=9212 TID=9116 important SettingsManager::RefreshSettings GetSettings success, employeeInfo: employeeId = 2, displayName = 'Нестерова Наталья', logLevel = 'LEVEL_ERROR', monitoringType = Extended, trackingEnabled = false
PID=9212 TID=1484 important UserActivity::ExtractWindowActivity activityEventCount = 3, utcTime = [2021.12.06_04:41:42 - 2021.12.06_04:41:47]
PID=9212 TID=1484 important `anonymous-namespace'::PackActivity Timezone init id = Europe/Moscow, offsetInSec = 10800
service_log.json
В service_log.json собирается информация о старте службы, блокировке системы под конкретным пользователем, отправленных сбоях.
Пример логов:
{"version":"1.0.0"}
PID=6556 TID=17352 important main Service started, version = 2.14.3
PID=6556 TID=1116 important SessionController::StartInspector Inspector started, sessionId = 14, UserPrincipalName = 'nnesterova@CORP.INFOMAXIMUM.COM'
PID=6556 TID=17352 important RunAsService::<lambda_6f040d3ff28f03704b9026c4883d74c7>::operator () Session event WTS_SESSION_LOCK, sessionId = 14
PID=6556 TID=17352 important SessionController::OnSessionDeactivated Session deactivated, sessionId = 14, UserPrincipalName = 'nnesterova@CORP.INFOMAXIMUM.COM'
PID=6556 TID=17352 important RunAsService::<lambda_6f040d3ff28f03704b9026c4883d74c7>::operator () Session event WTS_SESSION_UNLOCK, sessionId = 14
PID=6556 TID=1116 important SessionController::StartInspector Inspector started, sessionId = 14, UserPrincipalName = 'nnesterova@CORP.INFOMAXIMUM.COM'
timetracking_log.json
В timetracking_log.json собираются логи модуля таймтрекинга (время старта модуля, информация о пользователе и т.д.).
Пример логов:
{"version":"1.0.0"}
PID=660 TID=5172 important main Timetracking started, version = 2.14.3, user: client02@TEST.INFOMAXIMUM.RU, loggerSetting: LEVEL_ERROR
PID=660 TID=5172 important IdleManager::ProcessResumeInfo Save on server user activity = Пт ноя 26 11:33:32 2021
PID=660 TID=5172 important IdleManager::ProcessResumeInfo NotifyActiveTrackIdleResume