Информация о логировании
Логи агента мониторинга содержат сведения о его работе и действиях пользователей. Они используются для диагностики сбоев, проверки корректности работы агента и анализа активности сотрудников.
Агент передает данные, которые собираются ММАП и РММАП на АРМ пользователей, в виде архивов. Имена архивов формируются по следующему шаблону: computer_name
+_
+user_login@user_domain
+_
+время создания архива в UTC
+.
+генерация случайных чисел, обеспечивающих уникальность имени каждого файла
.
Архивы могут содержать следующие файлы:
Разные типы архивов содержат разный набор файлов.
Архив инспектора агента | Архив службы агента | Архив модуля Таймтрекинг |
---|---|---|
manifest.json | manifest.json | manifest.json |
activity.json | service_log.json | timetracking_log.json |
inspector_log.json | — | — |
При непрерывной работе пользователя за ПК, архив с активностью формируется каждые 10 минут.
Чтобы самостоятельно настроить время формирования архива, в файле settings.cfg по пути ProgramData\ProcesetAgent
добавьте параметр activity_sending_period
, который задает интервал отправки активности на сервер (в секундах).
"activity_sending_period":60
Информация об активности пользователей хранится в таблице 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
— название приложения из секцииDescription
version
— версия приложенияexecutable_path
— полный путь до исполняемого файлаtype
— тип событияinput_type
— параметр, отвечающий за определение типа активности: программная или аппаратная. Если непосредственно до совершенного события была аппаратная HID-активность, то параметр заполняется какinput_type=1
, если было программное событие, тоinput_type=0
main_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 | Гиперссылки |
ListIte m | 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
Была ли статья полезна?