С версией 3.2 вышло новое решение для мониторинга системы DirectumRX. Решение собирает данные из лог-файлов системы DirectumRX и значения счетчиков производительности операционной системы. Полученные результаты помогают наглядно оценить стабильность развернутых сервисов, загрузку процессора, состояние оперативной памяти и т.д.
Для оценки состояния системы используются метрики. Они позволяют получить численное значение свойства программного или аппаратного обеспечения. Например, количество критичных ошибок, загрузка процессора.
Администратор контролирует состояние системы с помощью дашбордов – рабочих областей на странице решения. На дашборде размещаются панели, на которых выводятся метрики.
По умолчанию решение обрабатывает стандартные лог-файлы системы. При этом в прикладной разработке могут быть заданы действия, которые тоже полезно отслеживать. Например, выполнение автоматического импорта пользователей из Active Directory. Для этого с помощью среды разработки DirectumRX нужно добавить логирование в программный код.
Решение «Мониторинг системы DirectumRX» работает со структурированными данными. За хранение, индексирование и поиск данных отвечает поисковая система Elasticsearch, входящая в состав решения. Чтобы решение могло обработать данные, лог-файл нужно вести в структурированном виде. В статье расскажем, как это сделать.
Для быстрого и корректного распознавания метрик в решении используется формат JSON:
JSON: {"имя_метрики": "значение_метрики"}
Например, веб-агент записывает в лог-файл сообщения вида:
2019-09-06 10:16:00.000+04:00 5.8.1.9001 Info log_native_proxy:69 JSON: {"extension_str":"XMIND","operation":"OpenDocument","plugin_str":"DocumentProcessObserverPlugin","size_KB_int":789} [Domaint\Ivanov_II :RX[DirRX]]
JSON-объект, содержащийся в сообщении, отправляется в Elasticsearch как структурированный объект. Решение собирает информацию из полей объекта и выводит результаты на дашборде.
Аналогичные сообщения можно формировать из прикладной разработки DirectumRX. Для этого должны быть выполнены условия:
Для наиболее распространенных параметров рекомендуется использовать предопределенные поля:
Есть предопределенные поля, которые нельзя использовать, так как они определяются автоматически:
Чтобы использовать поле с похожим наименованием, необходимо к названию поля добавить постфикс. Например, вместо user можно использовать user_str.
В качестве примера покажем, как можно расширить возможности решения «Интеграция с Active Directory». Чтобы отслеживать, как выполняется автоматический импорт, в лог-файл будем записывать факт начала и завершения импорта, количество импортированных пользователей и возникших ошибок.
В программный код решения добавим логирование:
Logger.Debug("JSON: { \"operation\": \"Import started.\" }");
Logger.DebugFormat("JSON: {{ \"operation\": \"Import finished.\", \"SavedCount\": {0}, \"ErrorCount\": {1}}}", employees.Count - errorCount, errorCount);
В результате в лог-файл записываются сообщения:
2019-09-16 10:00:04.548+04:00 3.2.0.0000 13016+28 Debug Sungero.Core.Logger - JSON: { "operation": "Import started." } [Administrator :DirServ]
2019-09-16 10:00:05.126+04:00 3.2.0.0000 13016+28 Debug Sungero.Core.Logger - JSON: { "operation": "Import finished.", "SavedCount": 2, "ErrorCount": 0} [Administrator :DirServ]
В данном случае выполняются серверные вычисления, поэтому сообщения фиксируются в лог-файле сервера приложений.
В решении «Мониторинг системы DirectumRX» создадим дашборд, который в наглядном виде выводит количество импортированных пользователей и возникших ошибок. В качестве параметров поискового запроса дашборда укажем уровень логирования Debug, имя сервиса WebServer и операцию Import finshed. Подробную информацию, как создать дашборд, см. в документации решения.
На скриншоте видно, что в указанное время импортировались 24 пользователя и возникли 2 ошибки.
Полученная информация позволяет на верхнем уровне оценить работоспособность импорта. Детальную информацию можно найти с помощью системы Kibana, лог-файлов сервисов DirectumRX или дашборда с ошибками сервера приложений.
Авторизуйтесь, чтобы написать комментарий