Информация о логированииLTS
Логи агента мониторинга содержат сведения о его работе и действиях пользователей. Они используются для диагностики сбоев, проверки корректности работы агента и анализа активности сотрудников.
Агент передает данные, которые собираются ММАП и РММАП на АРМ пользователей, в виде архивов. Имена архивов формируются по следующему шаблону: computer_name+_+user_login@user_domain+_+время создания архива в UTC+.+генерация случайных чисел, обеспечивающих уникальность имени каждого файла.
Архивы могут содержать следующие файлы:
Разные типы архивов содержат разный набор файлов.
| Архив инспектора агента | Архив службы агента | Архив модуля Таймтрекинг |
|---|---|---|
| manifest.json | manifest.json | manifest.json |
| activity.json | service_log.json | timetracking_log.json |
| inspector_log.json | — | — |
Информация об активности пользователей хранится в таблице main.monitoring_activity.
Логи агента мониторинга, передаваемые с рабочих мест на сервер приложения, хранятся в таблице main.monitoring_agent_inspector_log.
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.BUSINESSPROJECT.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— версия протокола (формат данных для сервера)machine_guid— уникальный идентификатор устройства, с которого был собран архивuser:name— имя пользователя (учетная запись ОС)user:login— логин пользователя (учетная запись ОС)user:domain— домен пользователя (при наличии)user:ad_guid— уникальный идентификатор пользователя в Active Directoryuser:timezone— часовой поясuser: timezone_sec— смещение часового пояса относительно UTC в секундахuser: employee_id— внутренний id пользователяcomputer:name— имя АРМcomputer:domain— домен АРМcomputer: workgroup— рабочая группа АРМagent:version— версия агентаtype— тип источника данных, от которого получен архив
activity.json
Активность сотрудников отправляется в JSON-формате в файле activity.json и представляет из себя массив записей.
Каждая запись обязательно содержит следующие поля:
{"version":"1.0.9"}
{
"time":1692694112,
"time_ms":469,
"cpu_loading":12,
"memory_loading":30,
"window_activity":{
"app_info":{
"program_name":"Google Chrome",
"version":"115.0.5790",
"executable_path":"%ProgramFiles(x86)%\\Google\\Chrome\\Application\\chrome.exe"},
"type":43,
"input_type":1
"main_window":"",
"domain":"",
"url_path":"",
"tab":"",
"file_name":"index (3).html",
"file_path":"%USERPROFILE%\\Desktop\\",
"location":[],
"element":null,
"parameters":[]
}
}
Где:
В зависимости от события некоторые поля могут быть пустыми.
version— версия манифестаtime— время события по UTCtime_ms— время в миллисекундахcpu_loading— количество нагрузки на ЦПmemory_loading— значение нагрузки на памятьwindow_activity— контейнер с информацией о событииapp_info— информация о приложенииprogram_name— название приложения из секцииDescriptionversion— версия приложенияexecutable_path— полный путь до исполняемого файлаtype— тип событияinput_type— параметр, отвечающий за определение типа активности: программная или аппаратная. Если непосредственно до совершенного события была аппаратная HID-активность, то параметр заполняется какinput_type=1, если было программное событие, тоinput_type=0main_window— заголовок главного окнаdomain— домен окнаurl_path— URL окнаfile_name— имя открытого файлаfile_path— полный путь к открытому файлуlocation— иерархия окон со значением типа строго меньше 10:name— название поляtype— код события
element— элемент (например, кнопка, чекбокс)parameters— контейнер, содержащий следующую информацию:name— название поляvalue— хешированное значениеtype— код событияis_current— информация о выполнении действия из текущего поля. Если параметр принимает значение1— действие выполнено в текущем поле,0— действие не было совершено в данном поле
Типы событий
Поле type представляет собой числовой код события. События сгруппированы по источнику в диапазоны.
| Код события | Описание |
|---|---|
| 1 | Start — старт агента мониторинга, при нормальной работе агента (без сбоев и завершений из диспетчера задач) совпадает со стартом или разблокировкой пользовательской сессии |
| 2 | Stop — стоп агента мониторинга, при нормальной работе агента совпадает с блокировкой или завершением пользовательской сессии |
| 3 | ProcessCrashed — остановка работы приложения |
| Оконная иерархия | |
| 40 | WindowSwitch — переключение окон, переключение вкладок в браузере, а также любое переключение между ранее открытыми окнами программ |
| 41 | WindowUpdate — изменение заголовка окна |
| 42 | WindowOpen — открытие нового окна: браузера, страницы в новой вкладке браузера, вкладки в программе и т. п. |
| 43 | DocumentOpen — открытие нового документа |
| 44 | DocumentSave — сохранение документа под другим именем |
| 45 | SheetOpen — изменение листа в Excel (переключение на другой лист, переименование или открытие нового) |
| Оконные элементы (только расширенный мониторинг) | |
| 52 | Invoke — клик по UI-элементам (кнопки, пункты меню и др.) |
| 53 | FieldEdit — редактирование элементов Edit и Document. Фиксируется после завершения редактирования и смены фокуса на другой элемент. Элемент Document фиксируется только для отдельных приложений. Название и значение поля фиксируется в parameters |
| 56 | FileSelect — выбор файла, папки через соответствующее окно открытия. Путь к файлу и его название фиксируются в parameters в поле select_from |
| 58 | FileSave — сохранение файла в диалоговом окне, а также скачивание файла в браузере Google Chrome. Путь к файлу и его название фиксируются в parameters в поле save_to |
| 60 | Copy — копирование или вырезание текста. Текст отображается в parameters в поле copy_value |
| 61 | Paste — вставка текста. Текст отображается в parameters в поле paste_value |
| 62 | ValueSelect — выбор значения в комбобоксе, чекбоксе или радиокнопке (с радиогруппой или без таковой), если в этом значении нет извлекаемых данных |
| 63 | Respond — кнопка или гиперссылка, по которой было событие Invoke, стала невидимой |
| 64 | FormRespond — событие, записываемое вместо Respond, если в этом окне было изменение parameters полей |
| 65 | Select — выбор элементов в листе, таблице и дереве |
| 66 | Print — отправка документа на печать |
| HID-активность | |
| 90 | InjectedMouseClick — клик мышкой программный |
| 91 | InjectedMouseScroll — прокрутка мышкой программная |
| 92 | InjectedKeyboardEvent — нажатие кнопки клавиатуры программное |
| 95 | HardwareMouseClick — клик мышкой аппаратный |
| 96 | HardwareMouseScroll — прокрутка мышкой аппаратная |
| 97 | HardwareKeyboardEvent — нажатие кнопки клавиатуры аппаратное |
Control-элементы
В базовом мониторинге могут быть только Window и ExcelSheet, в расширенном — все.
| Значение | Код | Описание |
|---|---|---|
Window | 1 | Окно |
Button, Splitbutton | 10 | Кнопки |
CheckBox | 12 | Чекбокс. Также CheckBox заменяет RadioButton, если Radiogroup не была найдена |
ComboBox | 13 | Комбобокс. Также ComboBox заменяет RadioButton, если для него была найдена Radiogroup |
Edit | 14 | Текстовые поля |
Hyperlink | 15 | Гиперссылки |
ListItem | 17 | Списки |
TreeItem | 34 | Древовидные списки |
MenuItem | 21 | Пункты меню |
TabItem | 29 | Вкладка |
DataItem | 39 | Элемент таблицы |
Document | 40 | Текстовые поля в Outlook |
HotKey | 49 | Горячие клавиши |
Location | 50 | Отображается только в колонке parameters_type для полей, указывающих на место (save_from, save_to, excel_sheet и т. п.) |
Clipboard | 51 | Отображается только в колонке parameters_type для полей copy_value и paste_value |
UrlParam | 52 | Отображается только в колонке parameters_type для полей, в которых содержится параметр, извлеченный из URL |
NameParam | 53 | Отображается только в колонке parameters_type для полей, в которых содержится параметр, извлеченный из названия окна либо названия элемента, кроме поля Номер в 1С, для которого указывается тип Edit |
Id | 54 | Отображается только в колонке parameters_type для полей, в которых содержится идентификатор окна |
Message | 55 | Отображается только в колонке parameters_type для поля message от окна подтверждения |
ExitCode | 56 | Отображается только в колонке parameters_type для поля exit_code от события аварийного прекращения процесса |
ExcelSheet | 57 | Название листа в Excel |
Горячие клавиши
В событии Invoke фиксируются комбинации с модификаторами Ctrl, Alt, Shift, а также функциональные F1—F12 . Не фиксируются сочетания Shift+A, где A — любая односимвольная клавиша. Например, такие сочетания используются при написании заглавных букв.
Регистр фиксации важен: модификаторы Ctrl, Alt, Shift должны быть именно в таком виде, F1—F12 заглавными буквами. Клавиша в сочетании с модификатором должна быть в верхнем регистре, например, Ctrl+X.
Если в названии элемента есть горячие клавиши, то в качестве имени в element_name записываются только они в нужном регистре, а остальная часть названия фиксируется в колонке element_hotkey_name.
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
Была ли статья полезна?