Инвентаризируй это, инвентаризируй то: SAM
Удовольствие от уборки способен получить далеко не каждый, но и жить в бардаке невозможно. Вот и CIO приходится проводить инвентаризацию нажитого за годы оборудования и софта, чтобы не столкнуться с Error Code: 418 I«m a teapot.
Да, наверное, есть компании, которые держат свои угодья в полном порядке, ведь они давно озаботились этим вопросом, изучили методологию управления активами и взяли под контроль весь жизненный цикл ИТ-инфраструктуры и всего программного обеспечения (cout << «УТОПИЯ!» << endl;). Не будем сейчас об этих тружениках. Если вы не из их числа, предлагаем разобраться со способами оптимизации процессов управления ИТ-активами. Поговорим про SAM Services и различные методы инвентаризации, а закруглиться мы бы хотели на сводной таблице с наиболее часто используемыми нами тулами и их фичами.
Как должна была выглядеть сцена пыток Ковача. Кадр из сериала Altered Carbon / «Видоизмененный углерод»
Программа SAM Services в последнее время претерпела изменения (нынче не то, что прежде, folks). Оптимизация инфраструктуры и рабочих нагрузок, оценка рисков и угроз безопасности — теперь проекты стали более кастомизированными, с лицензионной оптимизацией или без нее. На выходе заказчик получит исчерпывающий персонализированный отчет, содержащий рекомендации и предложения по улучшению существующей инфраструктуры, а в качестве бонуса — лицензионный анализ, экономящий время и силы на то, чтобы привести активы к идеальному состоянию.
Проекты проходят в несколько этапов. Как корабль назовешь, так он и будет плавать, поэтому первостепенно определиться с целями и задачами, для чего жизненно необходимо выявить все «хотелки» и «болячки», чтобы уже со знанием дела перейти к последующему шагу — сбору данных и анализу (сюда же относится составление карты для оптимизированной среды на основе бизнес-задач). И вот мы подошли к финальному этапу, когда заказчик получает рекомендации по оптимизации инфраструктуры с юридическим, экономическим и, безусловно, техническим обоснованием.
Для обследования инфраструктуры рекомендуется использовать нижеперечисленные инструменты — если вы pro, можно несколько сразу, поскольку они отлично дополняют друг друга:
- 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.
Кадр из сериала Altered Carbon / «Видоизмененный углерод»
В комплекте с МАРT устанавливается SQL 2008 R2 редакции Express. У Express редакции имеется ограничение в объеме БД: 10 Гб максимум. Так что если мы нацелены на исследование масштабной инфраструктуры заказчика, перед началом установки МАРT необходимо также установить SQL Server редакции Standard.
МАРT помогает нам в сборе информации об устройствах и их производительности.
МАРT помогает нам в сборе информации об устройстве и его производительности, поддерживает Windows и некоторые версии Unix\Linux систем. Работает по типу сканера, в качестве диапазонов поиска можно задать подсеть IP-адресов, импортировать имена устройства из файла, использовать Active Directory, SCCM. Более наглядно:
На выходе МАРT позволяет сформировать нам отчеты о текущей инфраструктуре, которые также можно использовать для лицензионного анализа. Однако последнее сделать труднее, т.к. МАРT генерирует множество различных отчетов с разрозненной информацией и для сведения их в нечто удобоваримое нужно время. Для автоматизации процесса можно воспользоваться скриптом (в приложении) или выполнить SQL запрос.
- Подсчет процента инвентаризированных устройств;
- Подсчет количества развертываний клиентских ОС и офисных продуктов;
- Формирование таблицы с полученными данными в csv файл.
Входные данные (отчеты из МАРТ формата xlsx):
- По устройствам AD (ActiveDevicesUsageTracker);
- По офисным продуктам (Office)
Выходной файл содержит следующие таблицы:
- Клиентские операционные системы (ОС);
- Microsoft Office;
- Microsoft Visio;
- 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, которые мы решили не столько разобрать по косточкам, сколько продемонстрировать разнообразие инструментов, поэтому с нетерпением ждем ваши правки и комментарии:
Как вы можете видеть, существует целый ряд тул с огромным количеством разнообразных возможностей, но и нюансов предостаточно: одни ни в какую не работают на Debian или Oracle, другие не вполне поддерживают удаленное управление и т.д. Но, если брать среднюю температуру по больнице, то охват преимущественно одинаковый, а сами производители стараются идти в ногу со временем, перманентно дорабатывая свои решения.
Кадр из сериала Altered Carbon / «Видоизмененный углерод»
SAM-проекты с течением времени приобрели совершенно иной размах, по концепции приблизившись к всестороннему консалтингу по части оптимизации и поддержки инфраструктуры, совершенствования ИБ. Составление соотношения всего используемого ПО с фактически закупленным (лицензионный анализ) — бонус проекта. Основная цель заключается в том, чтобы заказчик по окончании проекта мог сам поддерживать идеальный порядок. В конечном итоге, ничто не идет в сравнение с чувством удовлетворения при виде идеально прибранных и управляемых угодий, где минимизированы риски всевозможных угроз и оптимизирована поддержка инфраструктуры заказчика. Welcome to the Brave New World с кастомизированностью и закрытыми IT-гештальтами.
Всем КАРМЫ, а мы с моим дорогим соавтором dnmnk пока будем ждать ваши комментарии и замечания.
Хотите работать с нами?