Надоела инвентаризация вручную? Автоматизируй этот процесс, облегчи свой труд…Настройка автоматической инвентаризации пользовательских ПК средствами MS SCCM 2012 SP1 и отображение данных с помощью ExtJS 4.2. 

 

Введение

На каждом предприятии стоит задача инвентаризации IT-активов. У одних работодателей этим занимается бухгалтер, у других – сисадмин. Так или иначе, сбор, структурирование и актуализация данных о конфигурациях, местоположении, перемещении и использовании ИТ-ресурсов вручную дело хлопотное. Автоматизация здесь просто необходима по причине ускорения получения данных, исключения человеческого фактора, оперативного обнаружения расхождений с последним состоянием инвентаризации и быстрого формирования отчетов. 

 

Выбор программных продуктов

Передо мной стояла задача настроить автоматический сбор данных о комплектующих и ПО с пользовательских ПК и серверов, предоставить полученную информацию в удобном для чтения и редактирования виде, с веб-доступом, поддержкой русского языка и возможностью формирования отчета. На предприятии уже был введен в эксплуатацию MS SCCM 2012 SP1 [http://www.microsoft.com/ru-ru/server-cloud/system-center/configuration-manager-2012.aspx], который умеет автоматически извлекать и предоставлять информацию. Поэтому мне не пришлось анализировать работу других программных продуктов. Осталось настроить функцию инвентаризации. Большое количество отчетов позволяет предоставить подробный анализ состояния ИТ-активов предприятия. Однако штатными средствами нельзя отобразить не менее важную информацию вроде ФИО владельца, место расположения, инвентарный и серийный номера оборудования, даты выхода из строя либо ввода в эксплуатацию и т.д. Поэтому понадобилась доработка.

Для отображения полученной информации в виде веб-страницы задействовалась ExtJs [http://www.sencha.com/products/extjs]. Это библиотека JavaScript с уже готовыми графическими тривиальными (кнопки, окна, формы, вкладки и т.д.) и сложнейшими (таблицы, которые уже включают функции поиска, редактирования, группировки и сортировки, выделения и т.д., а также лэйауты и деревья) компонентами, современным приятным и удобным интерфейсом, которая стала отдельным фрэймворком и работает во всех популярных браузерах. В состав ExtJs также входит ряд скрытых (невидимых) компонентов обеспечивающих получение данных с сервера в фоновом режиме, поддержку cookie, обновление частей веб-страницы и многое другое.  Можно менять темы оформления компонентов, подправив css-файл, получить нужный стиль или гамму. С ExtJs гораздо легче работать, список готовых, новых и полезных компонентов шире, нежели у других библиотек, таких как Ajax, JQery [http://www.kobzarev.com/programming/jquery-vs-extjs.html], [http://www.ibm.com/developerworks/ru/library/wa-jsframeworks/].

Для работы с веб-приложениями обязательно должен быть настроен веб-сервер c поддержкой PHP и СУБД, например Apache+PHP+MySQL или IIS+MS SQL Server.

Опишу только настройку сбора и отображения данных по комплектующим ПК сотрудников компании, так как все действия с определением установленного ПО происходят аналогичным способом. Весь процесс состоит из четырех шагов.  

 

Шаг 1. Настройка SCCM 2012 SP1

 Инвентаризация подчиненных ПК – одна из ключевых функций SCCM, которая предоставляет актуальную информацию о состоянии ИТ-имущества предприятия, а также полную историю изменений. Configuration Manager 2012 SP1 позволяет получать параметры комплектующих ПК, работающих под управлением Windows (Win XP/Vista/7/8/2003/2008/2012) и Linux (Red Hat, Debian, SUSE). Для идентификации компонентов IT-инфраструктуры используется клиент, его установка в Windows происходит, как и в предыдущих версиях SCCM (push installation, с помощью GPO, вручную). Для Linux клиентскую часть необходимо скачать [http://www.microsoft.com/en-us/download/details.aspx?id=36212] и установить вручную [http://prajwaldesai.com/how-to-install-sccm-2012-sp1-client-agent-on-linux-computers/]. Клиент SCCM включает в себя множество агентов. Просмотреть их текущее состояние и настроить работу можно в настройках Default Client Settings - Administration - Client Settings. Все возможности по сбору данных реализованы в агентах аппаратной и программной инвентаризации, которые должны быть активированы после установки продукта SCCM. Включение агентов инвентаризации происходит активацией параметра Enable=true в разделе Inventory Hardware либо Inventory Software, там же настраивается и расписание опросов ПК (рис.1).

 

Рисунок 1. Включение агента инвентаризации.

Агенты собирают информацию с клиентских компьютеров по расписанию, опрашивая разные источники, такие как реестр и классы WMI (может сообщать до 1500 свойств оборудования). По умолчанию инвентаризация производится один раз в неделю, этого обычно достаточно,  данный интервал можно уменьшить или увеличить.

За каждый параметр отвечают классы. Информация бывает как избыточной, так и недостаточной, поэтому в процессе конфигурирования следует отобрать только необходимые классы. Так, по умолчанию отключен (см. рис. 2) сбор данных о материнской плате, за который отвечает  класс Win32_BaseBoard.

Рисунок 2. Включение класса Win32_BaseBoard.

SCCM 2012 SP1 предоставляет возможность просмотреть подробную, автоматически собранную агентами информацию (текущую и историю) о комплектующих и софте с помощью Resource Explorer (см. рис.3), который состоит из трех основных веток: Hardware, Hardware History, Software. Он запускается следующим образом: в разделе Assets and Compliance - Devices, из коллекции устройств на необходимом нажать правой кнопкой мыши и выбрать Start - Resource Explorer.

Рисунок 3. Отображение собранных данных с помощью SCCM 2012.

Отчеты по установленному аппаратному обеспечению позволяют отслеживать изменения в конфигурациях. Например, узнать, на каких компьютерах стало меньше памяти, либо дополнительно появилась видеокарта, где подключены запоминающие или мобильные устройства и т.д. Отчеты доступны, как через консоль, так и из браузера (http://имя сервера/ReportServer). Но SCCM 2012 SP1 не имеет возможности редактировать полученные данные, а режим “только для чтения” нас мало устраивает. Доработка позволяет включать в основную (автоматически собранную) информацию дополнительную, которая вносится вручную.

 

Шаг 2. Работа с БД MS SQL Server

 Одним из требований при установке SCCM является наличие СУБД MS SQL Server, поэтому вопрос о выборе места хранения данных не возникал. Вся собранная информация передается в БД “CM_INV”. После установки Configuration Manager и настройки агентов инвентаризации автоматически создаются множество таблиц, представлений с подробной информацией по каждой комплектующей пользовательского ПК. Данных очень много и в этом придется разобраться. Создаю SQL-запрос dbo.v_inventory_hardware [http://citforum.ru/programming/32less/les44.shtml] на выборку (см. листинг 1). Основным полем во всех запросах является ResourceID. Это уникальный порядковый номер записи в БД, который соответствует отдельному ПК и помогает выборке SQL-запроса.

Листинг 1 – Запрос на выборку.

В результате получаю подробную информацию о характеристиках ПК сотрудников, а именно: NetBIOS-имя, BIOS (производитель, версия), HDD (производитель, объем, кэш, скорость работы, количество), Memory (производитель, объем, частота), CPU (производитель, скорость, частота), MAC, IP, NetworkAdapter (производитель, скорость), VideoCard (производитель, объем, скорость), MotherBoard (производитель и т.д.), OS (версия, Service Pack) и др. (см. рис.4). Далее следует отобразить данные в понятном читабельном виде хотя бы с основным функционалом: поиском, печатью, экспортом, отчетами.

            Рисунок 4 – Результат работы запроса на выборку.

 

Продолжение следует...