В данной работе рассмотрена проблема отслеживания состояния программного обеспечения и инвентаризации компьютерных систем в условиях динамически изменяемой инфраструктуры территориально распределенной организации.
Ключевые слова: CMDB, ITIL, управление конфигурацией, ИТ-инфраструктура, программное обеспечение.
На предприятиях различных форм собственности часто есть потребность в мониторинге состояния программного обеспечения, особенно в случае наличия динамической инфраструктуры, в том числе территориально удаленных компьютерных систем. Отслеживание состояний позволяет осуществлять гибкое переконфигурирование ИТ-компонентов компьютерных систем и перенастройку их параметров на максимально возможном уровне автоматизации.
В организации постоянно происходит множество изменений в инфраструктуре, связанных как с рабочими автоматизированными местами пользователей, так и с серверами. В качестве примера вышеуказанных изменений можно привести смену пользователя, переезд оборудования в другое здание, создание нового виртуального сервера для временных или постоянных нужд. Стоит отметить также огромное количество программного обеспечения, имеющего потребность в актуализации путем обновления, удаления, доработки и пр. Любое из перечисленных действий необходимо отслеживать и фиксировать с целью обеспечения возможности обращения к актуальной информации.
В современных условиях основной проблемой базы данных управления конфигурацией CMDB [1] становится сложность поддержания ее в состоянии, соответствующем реальному положению инфраструктуры. Исходя из описанных нужд, была поставлена задача разработки системы для мониторинга состояний программного обеспечения. До внедрения системы база данных управления конфигурацией поддерживалась в полуавтоматическом режиме и управлялась в Excel.
Архитектура системы представлена на рис. 1. Агент сбора данных разработан для операционной системы Windows на языке программирования Golang, и представляет собой исполняемый файл, не требующий установки, либо зависимых библиотек. Принцип работы агента заключается в считывании информации с операционной системы с помощью инструментария управления Windows (WMI) [2]. Указанный инструментарий является подсистемой, обеспечивающей доступ к мощным инструментам системного мониторинга. Кроме того, агент даже в случае отсутствия его непосредственной установки, предоставляет возможность опросить удаленный компьютер.
Серверная часть разработана на языке программирования Python с использованием фреймворка Fastapi [3]. Она представлена двумя подсистемами: сервер приложений, в задачи которого входит сбор данных с агентов и сохранение их в СУБД, и веб-сервис для представления собранной информации. Web-приложение разрабатывается на языке программирования JavaScript с использованием ui фреймворка Sencha Ext JS [4].
Развертывание сети агентов происходит с использованием групповых политик Active Directory. Агенты с периодичностью считывают актуальную информацию с клиентских компьютеров и передают ее на сервер приложений. Система интегрирована с Active Directory и считывает актуальную информацию с каталога. В качестве СУБД используется высокопроизводительная и надёжная PostgreSQL.
В системе реализована возможность самостоятельной регистрации пользователя системы. В дальнейшем набор прав на доступ к разделам системы, назначение прав и ролей осуществляется пользователем в роли «Администратора системы». Пример интерфейса оператора системы представлен на рис 2. Как видно из данной схемы, на текущий момент в системе заведено около 2 300 единиц компьютерной техники, по каждой из которых можно получить полную информацию. Для быстрого получения информации из системы реализован механизм фильтрации и поиска по нескольким условиям. Допустим, можно получить список компьютеров, на которых установлена конкретная версия программного обеспечения, либо подключен принтер определенной модели.
Раздел «Хронология» позволяет просмотреть порядок изменения конфигурации компьютеров в хронологическом порядке. Раздел «Аналитика» позволяет отследить изменения в конфигурации компьютеров, например, увеличение размера жестких дисков, замену оперативной памяти и т. п. Из раздела «Пользователи» можно получить полную информацию об организационной структуре подразделений и учетных данных пользователей компьютеров, список АРМов, на которые выполнялся вход с конкретных учетных записей. При открытии карточки компьютера можно получить информацию с датами входа в систему на конкретных компьютерах, подробную информацию о программном обеспечении и оборудовании, параметры сети. Есть возможность выгрузить отфильтрованную информацию во внешний файл и в дальнейшем применять в качестве источника инвентарной информации во внешних системах.
Система успешно эксплуатируется в организации с численностью сотрудников около 6 000 человек, при этом общая база конфигурационных единиц оборудования составляет на текущий момент около 2 300 единиц. В результате эксплуатации заказчиком системы предполагается дальнейшее развитие системы, есть запрос на разработку агентов под операционную систему на базе Linux и Android. Для заказчика системы представляет интерес интеграция системы с одной из систем управления конфигурациями, рассматривается Ansible либо Saltstack. Интеграция с данными системами позволит использовать систему мониторинга для автоматизации настройки и развертывания программного обеспечения из веб-интерфейса приложения.
Рис. 1. Архитектура системы на языке ArchiMate
Рис. 2. Пример интерфейса приложения
Литература:
- Лямуков, С. CMDB в системе управления ИТ-услугами / С.Лямуков // Открытые системы. СУБД. — 2009. — № 5. — С. 17–21.
- Microsoft.Windows Management Instrumentation. Режим доступа: http://docs.microsoft.com/ru-ru/windows/win32/wmisdk/about-wmi?redirectedfrom=MSDN(дата обращения 10.10.2022).
- Урвачев, П. М. Fastapi. Современный высокопроизводительный микрофреймворк для Python. Достоинства и недостатки / П. М. Урвачев, А. А. Мугдусян // Интернаука. — 2022. — № 13–3(236). — С. 48–50.
- Sencha Ext JS [Электронный ресурс]. Режим доступа: https://www.sencha.com/products/extjs. (дата обращения 10.10.2022).