Инвентаризируй это, инвентаризируй то: SAM

Удовольствие от уборки способен получить далеко не каждый, но и жить в бардаке невозможно. Вот и CIO приходится проводить инвентаризацию нажитого за годы оборудования и софта, чтобы не столкнуться с Error Code: 418 I«m a teapot.

Да, наверное, есть компании, которые держат свои угодья в полном порядке, ведь они давно озаботились этим вопросом, изучили методологию управления активами и взяли под контроль весь жизненный цикл ИТ-инфраструктуры и всего программного обеспечения (cout << «УТОПИЯ!» << endl;). Не будем сейчас об этих тружениках. Если вы не из их числа, предлагаем разобраться со способами оптимизации процессов управления ИТ-активами. Поговорим про SAM Services и различные методы инвентаризации, а закруглиться мы бы хотели на сводной таблице с наиболее часто используемыми нами тулами и их фичами.

tpaenaeuiaugdqwcau_ip6uxflq.jpeg

Как должна была выглядеть сцена пыток Ковача. Кадр из сериала Altered Carbon / «Видоизмененный углерод»
Программа SAM Services в последнее время претерпела изменения (нынче не то, что прежде, folks). Оптимизация инфраструктуры и рабочих нагрузок, оценка рисков и угроз безопасности — теперь проекты стали более кастомизированными, с лицензионной оптимизацией или без нее. На выходе заказчик получит исчерпывающий персонализированный отчет, содержащий рекомендации и предложения по улучшению существующей инфраструктуры, а в качестве бонуса — лицензионный анализ, экономящий время и силы на то, чтобы привести активы к идеальному состоянию.

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

Для обследования инфраструктуры рекомендуется использовать нижеперечисленные инструменты — если вы pro, можно несколько сразу, поскольку они отлично дополняют друг друга:

3jgznn6tc5jvysldaj2mexn_sfq.jpeg


  • Active Directory стандартно используется для централизованного управления и хранит данные об объектах (ресурсах, службах, учетных записях пользователей и компьютеров).
  • Altiris — комплексное решение для безопасного управления рабочими станциями, ноутбуками и серверами на всем протяжении их жизненного цикла, включая задачи развертывания, управления ресурсами, установки исправлений и устранения неполадок.
  • Dell KACE — устройство управления высоконагруженными корпоративными системами, обеспечивает широкий функционал, сопровождение оборудования на протяжении всего жизненного цикла и масштабируемость в диапазоне от 100 до 20 000 конечных узлов.
  • Intune — облачная служба для управления мобильными устройствами, мобильными приложениями и компьютерами в облачной среде.
  • LANDESK — инструмент управления жизненным циклом аппаратного и программного обеспечения: от закупки до утилизации; проводит анализ инвентарной информации аппаратного и программного обеспечения на основе данных от производителей аппаратного и программного обеспечения о новых закупках, отслеживает использование программного обеспечения.
  • Lansweeper — автоматизированная система инвентаризации, создания отчетов и управления парком компьютеров.
  • Microsoft Assessment and Planning Toolkit (MAPT) — утилита для инвентаризации, оценки и составления отчетов о серверной инфраструктуре и рабочих станциях.
  • System Center Configuration Manager (SCCM) — продукт для управления ИТ-инфраструктурой на основе Microsoft Windows и смежных устройств.
  • System Center Virtual Machine Manager — централизованное управление виртуальной инфраструктурой.
  • VMware vCenter — централизованное управление виртуальной инфраструктурой VMware.


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

Один из самых доступных инструментов (совсем free of charge) для обследования инфраструктуры — MAPT. В первую очередь рассмотрим именно этого нашего любимчика — регулярно используем его в проектах «ЛАНИТ-Интеграция». Когда нужно оперативно найти и минимизировать риски в области ИБ в инфраструктуре, перевести бизнес-процессы заказчика в облако и оптимизировать существующую инфраструктуру, именно с данного решения мы всегда начинаем работы. Он свободно распространяемый и, в отличие от остальных, не требует подготовки инфраструктуры перед использованием. К сожалению, функционал MAPT позволяет только обнаруживать и собирать данные, поэтому требует установки дополнительных tools.

zp3jo_8xa3_9i9chny65g3ulpec.jpegКадр из сериала Altered Carbon / «Видоизмененный углерод»

В комплекте с МАРT устанавливается SQL 2008 R2 редакции Express. У Express редакции имеется ограничение в объеме БД: 10 Гб максимум. Так что если мы нацелены на исследование масштабной инфраструктуры заказчика, перед началом установки МАРT необходимо также установить SQL Server редакции Standard.

МАРT помогает нам в сборе информации об устройствах и их производительности.

МАРT помогает нам в сборе информации об устройстве и его производительности, поддерживает Windows и некоторые версии Unix\Linux систем. Работает по типу сканера, в качестве диапазонов поиска можно задать подсеть IP-адресов, импортировать имена устройства из файла, использовать Active Directory, SCCM. Более наглядно:

n1rdujqvyhahiyiptuma090lqgg.jpeg


На выходе МАРT позволяет сформировать нам отчеты о текущей инфраструктуре, которые также можно использовать для лицензионного анализа. Однако последнее сделать труднее, т.к. МАРT генерирует множество различных отчетов с разрозненной информацией и для сведения их в нечто удобоваримое нужно время. Для автоматизации процесса можно воспользоваться скриптом (в приложении) или выполнить SQL запрос.

Приложение
Данный скрипт создан для решения следующих задач:
  1. Подсчет процента инвентаризированных устройств;
  2. Подсчет количества развертываний клиентских ОС и офисных продуктов;
  3. Формирование таблицы с полученными данными в csv файл.

Входные данные (отчеты из МАРТ формата xlsx):
  1. По устройствам AD (ActiveDevicesUsageTracker);
  2. По офисным продуктам (Office)

Выходной файл содержит следующие таблицы:
  1. Клиентские операционные системы (ОС);
  2. Microsoft Office;
  3. Microsoft Visio;
  4. Microsoft Project;

Листинг:
$path = "C:\Users\Administrator\Desktop"




################# Общее  #######################
$i = $null
$j = $null
$k = $null


[array]$OutputInfoAboutInventMAPT = "Computer Name" + "`t" +    "Operating System"  + "`t" +    "Type"  + "`t" +        "WMI Status" + "`t" + "Virtual (Y/N)" + "`t" +  "Days Since Last Activity" #активные устройства собран МАРТ
[array]$AllActive = "Computer Name" + "`t" +    "Operating System"  + "`t" +    "Type"  + "`t" +        "WMI Status" + "`t" + "Virtual (Y/N)" + "`t" +  "Days Since Last Activity" #активные устройства со всеми ОС
[array]$AllActiveClient = $null #активные устройства с клиентской ОС
[array]$InventPC_NoStatistik = $null 


$objExcel = New-Object -ComObject Excel.Application 
$WorkBook = $objExcel.Workbooks.Open($path + "\AD.xlsx") 
$objExcel.visible = $false 
$WorkSheetMapt = $WorkBook.sheets.item("Device Details")
$MaptInventPC = $WorkSheetMapt.Range("A:A").value2 -ne $null
$OS = $WorkSheetMapt.Range("C:C").value2 -ne $null
$Type = $WorkSheetMapt.Range("D:D").value2 -ne $null
$WMIStatus = $WorkSheetMapt.Range("F:F").value2 -ne $null
$ActiveDay = $WorkSheetMapt.Range("J:J").value2 -ne $null




    for ($i = 0; $i -le $MaptInventPC.count; $i++)
    {
        if (($ActiveDay[$i] -le 90)  -and ($WMIStatus[$i] -eq "Success"))  
        {  
        $OutputInfoAboutInventMAPT += $MaptInventPC[$i] + "`t" + $OS[$i] + "`t" +       $Type[$i]  + "`t" + $WMIStatus[$i] + "`t" + $ActiveDay[$i] 
        }
    }

    $AllSuccess = $OutputInfoAboutInventMAPT[1..$OutputInfoAboutInventMAPT.Count] 


     for ($i = 0; $i -le $MaptInventPC.count; $i++)
    {
        if ($ActiveDay[$i] -le 90)   
        {  
        $AllActive += $MaptInventPC[$i] + "`t" + $OS[$i] + "`t" +       $Type[$i]  + "`t" + $WMIStatus[$i] + "`t" + $ActiveDay[$i] 
        }
    }

    $ProcentInventPC = $AllSuccess.count * 100 / $AllActive.count 


    "Всего обнаружено активных устройст" + "`t" + $AllActive.count >> "C:\Users\Administrator\Desktop\Info.csv"
    "Всего инвентаризировано активных устройств" + "`t" + $AllSuccess.Count  >> "C:\Users\Administrator\Desktop\Info.csv"
    "% инвентаризации" + "`t" + $ProcentInventPC  >> "C:\Users\Administrator\Desktop\Info.csv"




    ################### Таблица с клиентскими ОС ###################################
     
     for ($i = 0; $i -le $MaptInventPC.count; $i++)
    {
        if (($ActiveDay[$i] -le 90) -and ($Type[$i] -eq "Client"))  
        {  
        $AllActiveClient += $OS[$i]  
        }
    }

    $CountActiveClient = $AllActiveClient | Group-Object | Select-Object -Property Name, Count

    "Семейство продуктов" + "`t" + "Всего развертываний ПО" >> "C:\Users\Administrator\Desktop\Info.csv"      

    for ($i=0; $i -le $CountActiveClient.count; $i++)
    {
    $CountActiveClient[$i].name + "`t" + $CountActiveClient[$i].count >> "C:\Users\Administrator\Desktop\Info.csv"           
    }

    $WorkBook.Close()



 



    ################## MS Office  ###########################
    [array]$visio = $null
    [array]$project = $null

    $WorkBookOffice = $objExcel.Workbooks.Open($path + "\Office.xlsx")
    $objExcel.visible = $false # на экране не отображается
    $WorkSheetOffice = $WorkBookOffice.sheets.item("Office2016Assessment")
    $WorkSheetApp = $WorkBookOffice.sheets.item("OfficeAppSummary")
    $NameOfficeSuite = $WorkSheetOffice.Range("G:G").value2 -ne $null
    $AppName = $WorkSheetApp.Range("A:A").value2 -ne $null
    $AppNumInstallCopie = $WorkSheetApp.Range("D:D").value2 -ne $null



    "`n" + "`n" + "`n" + "`n" + "MS Office" + "`n" + "Название" + "`t" + "Количество" >> "C:\Users\Administrator\Desktop\Info.csv"     

    $CountOfficeSuite  = $NameOfficeSuite| Group-Object | Select-Object -Property Name, Count

    for ($i=0; $i -le $CountOfficeSuite.count; $i++)
    {
    $CountOfficeSuite[$i].name + "`t" + $CountOfficeSuite[$i].count >> "C:\Users\Administrator\Desktop\Info.csv"         
    }


    ################# Visio #############################


     for ($i = 0; $i -le $AppName.count; $i++)
     {
        if (($AppName[$i] -like "*visio*" ) -and ($AppName[$i] -notlike "*viewer*"))  
        {  
        $visio += $AppName[$i] + "`t" + $AppNumInstallCopie[$i-1]  
        }
     }


     "`n" + "`n" + "Visio" + "`n" + "Семейство продуктов" + "`t" + "Всего развертываний ПО"  >> "C:\Users\Administrator\Desktop\Info.csv"        

     for ($i=0; $i -le $visio.count; $i++)
    {
    $visio[$i] >> "C:\Users\Administrator\Desktop\Info.csv"         
    }



     ###################### Project ######################

     for ($i = 0; $i -le $AppName.count; $i++)
     {
        if (($AppName[$i] -like "*project*" ) -and ($AppName[$i] -notlike "*viewer*"))  
        {  
        $project += $AppName[$i] + "`t" + $AppNumInstallCopie[$i-1]  
        }
     }


     "`n" + "`n" + "Project" + "`n" + "Семейство продуктов" + "`t" + "Всего развертываний ПО" >> "C:\Users\Administrator\Desktop\Info.csv"                

    for ($i=0; $i -le $project.count; $i++)
    {
    $project[$i] >> "C:\Users\Administrator\Desktop\Info.csv"        
    }


В таблицах AllDevices_Assessment.HardwareInventoryCore, AllDevices_Assessment.HardwareInventoryEx, Core_Inventory.AdDiscoveredDevices, Core_Inventory.Devices, SqlServer_Assessment.SqlInstances и представлениях MAP_External_Access.InstalledProductsView собрана основная часть необходимого.

Второе место по доступности и функциональности делят SCCM, Altiris, LANDESK, которые мы решили не столько разобрать по косточкам, сколько продемонстрировать разнообразие инструментов, поэтому с нетерпением ждем ваши правки и комментарии:

a0wvxat3pidu8mun9s8xkfdj9cg.jpeg


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

mxu0aocidbuyulahcqhmrxhnxn0.jpeg

Кадр из сериала Altered Carbon / «Видоизмененный углерод»

SAM-проекты с течением времени приобрели совершенно иной размах, по концепции приблизившись к всестороннему консалтингу по части оптимизации и поддержки инфраструктуры, совершенствования ИБ. Составление соотношения всего используемого ПО с фактически закупленным (лицензионный анализ) — бонус проекта. Основная цель заключается в том, чтобы заказчик по окончании проекта мог сам поддерживать идеальный порядок. В конечном итоге, ничто не идет в сравнение с чувством удовлетворения при виде идеально прибранных и управляемых угодий, где минимизированы риски всевозможных угроз и оптимизирована поддержка инфраструктуры заказчика. Welcome to the Brave New World с кастомизированностью и закрытыми IT-гештальтами.

Всем КАРМЫ, а мы с моим дорогим соавтором dnmnk пока будем ждать ваши комментарии и замечания.

Хотите работать с нами?

© Habrahabr.ru