SCCM; CI/CB; S.M.A.R.T. мониторинг здоровья дисков через WMI. MSStorageDriver_FailurePredictStatu

т.к. Антон заленился набросать данное решение описываю его здесь %)

Цель, считывать SMART-состояния жестких дисков и отправка отчетов ответственным.

Windows заботливо отслеживает состояние жёстких дисков и заполняет соответствующие свойства WMI:

root\wmi\MSStorageDriver_FailurePredictStatus\{HDDInstance}\PredictFailure

Не обойтись и без ограничений, в прочем ограничения эти связаны с заполнением самого класса: «MSStorageDriver_FailurePredictStatus»:

  • Если устройство не ATA /SATA — есть вероятность что не получите состояние;
  • Если диск подоткнули через USB док-станцию — см. предыдущий пункт;
  • Hyper-V виртуальная машина — неа, «Not supported», нет такого класса.

Проверить текущие состояние можно с помощью команды wmic:

WMIC /namespace:\\root\WMI path MSStorageDriver_FailurePredictStatus get InstanceName,PredictFailure

Или PowerShell:

Get-WmiObject -Class MSStorageDriver_FailurePredictStatus -Namespace root\wmi | fl InstanceName,PredictFailure

Где:
«InstanceName» — Идентификатор диска
«PredictFailure» — найдены ли ошибки (True – ошибки обнаружены)

Несколько реализаций конечно же уже описаны, например:

https://isazonov.wordpress.com/2016/05/24/sccm-check-disk-health/

https://habrahabr.ru/company/microsoft/blog/277999/

И много где ещё…

Но в случае статьи на habrahabr — не хочется привязываться к циклу Hardare Inventory, его расписанию, которое раз в 7 дней, по умолчанию. Надо бы по чаще снимать показания, а чаще делать Hardware Inventory — лишняя нагрузка на клиента. В случае статьи на isazonov.wordpress.com — есть одна особенность, связанная с типом получаемых данных по WMI. Как правильно заметил Илья, класс этот нифига не описан, а гадать на WMI — дело не благодарное, но мы про SCCM, поэтому поехали.

План:

  • Создаем Configuration Item;
  • Создаем Configuration Baseline;
  • Распространяем Configuration Baseline на коллекцию устройств;
  • Подписываемся на отчет.

ШАГ 1. Создаем Configuration Item

Идем в \Assets and Compliance\Overview\Compliance Settings\Configuration Items, создаем новый Configuration Item, со следующими значениями:

General:

Name:  <Произвольный>

Type: Windows Desktops and Servers (custom)

2016-11-05WMICI01

Supported Platform:

Можно выбрать версии Windows к которым будем применять данное правило, т.к. мониторить мы будем только клиентские ОС, оставляем их.

Settings:

Создаем новую настройку и заполняем следующим образом:

Name: <Произвольное>

Setting type: WQL query

Data type: Boolean ** (см. конец поста и комментарии)

Namespace: root\wmi

Class: MSStorageDriver_FailurePredictStatus

Property: PredictFailure

2016-11-05WMICI02

Compliance Rule:

Создаем новое правило

Name: <Произвольное>

Select settings: выбираем созданный «Settings», он услужливо помечается словом «… (Current)»

Rule Type: оставляем «Value»

The setting must comply with the following rule: Eguals
the following values: False

Noncompliance severity for reports: Warning

2016-11-05WMICI03

ШАГ 2. Создаем Configuration Baseline

Идем в \Assets and Compliance\Overview\Compliance Settings\Configuration Baselines, создаем новый Configuration Baselines, со следующими значениями:

Name: <Произвольное>

Configuration Data: выбираем единственный, созданный CI на предыдущем шаге

2016-11-05WMICI04

ШАГ 3. Распространяем Configuration Baseline на коллекцию устройств

Щелкам правой кнопкой на вновь созданный CB (Configuration Baseline) / Deploy

Collection: Выбираем произвольную коллекцию устройств.

Simple schedule: Выбираем приемлемое время запуска проверки: 1 Days.
Лирическое отступление: Не вижу никакого смысла запускать проверку чаще, как собственно и реже, так же не вижу никакого смысла применять данную проверку на сервера, поскольку проверку здоровья там должно выполнять специализированное софт (ПО для RAID, SCOM, etc.), но никто не мешает, кроме ограничений, описанных в начале.

2016-11-05WMICI05

ШАГ 4. Подписываемся на отчет

Наблюдать за успешной и не успешной проверкой в консоли SCCM конечно интересно, но пользы от этого не много, поэтому не плохо бы получать отчеты о состоянии здоровья HDD. Получать мы их будем на почту с помощью стандартного функционала SCCM — подписки на отчёты.
В чате по SCCM (https://telegram.me/configmgr) есть «некие, неизвестные» Антон и Макс, которые знают запрос для спец. отчета, можно зайти в чат и потребовать от них выложить сей отчет в публичный доступ.

Мы же будем использовать универсальный отчет для DCM / Configuration Baselines.

Переходим в раздел \Monitoring\Overview\Reporting\Reports\Compliance and Settings Management
Находим отчет: «List of assets by compliance state for a configuration baseline» («Список активов по состоянию соответствия шаблонам базовых конфигурации»), нажимаем правой кнопкой / Create Subscription

Subscription Delivery:

Report delivery: E-mail

To/Сс/Bcc: e-mail адреса получателя отчета

Reply-To: — Не плохо бы указать ваш e-mail, на случай если у получателя отчета возникнет вопрос.

Subject: <Тема письма>

Comment: <Комментарии в письме>. Комментарии вставляются в начало письма.

Ставим галку «Include Report»

Render Format: На ваш вкус, я выбираю MHTML (web achieve), дабы читалось сразу в письме.

2016-11-05WMICI06

Subscription Schedule:

Заполняем значениями как вам считается правильным, чтобы получать отчет. Нет никакого смысла получать отчет чаще чем указано в ШАГ 3. Например, так: ***

2016-11-05WMICI07

Subscription Parameters:

Configuration Baseline: Выбираем созданный на шаге 3 — Configuration Baseline;

Configuration Item State: «None Compliance» («Не соответствует»);

Остальные значения по желанию.

Если все сделано, осталось дождаться отчета на почту. Что-то вроде этого:

image

Минус у такого отчета очевиден – мы получаем отчет по расписанию, а не по событию, но SCCM и не система мониторинга Smile

Bonuses:

  • Готовый Configuration Baseline, можно скачать тут.
  • Если у вас есть настроенный SCSM (System Center Service Manager), то вряд ли вам вообще понадобиться данный пост… вы можете настроить создание инцидента на основе состояния Configuration Baseline – «How to Configure Desired Configuration Management to Generate Incidents«, и тогда исключаем минус с отчетом по расписанию.

* В картинках, как идентифицировать диск по InstanceName:
https://blogs.msdn.microsoft.com/san/2011/08/11/have-you-ever-wanted-to-know-if-your-disk-is-going-to-fail-before-it-does/

** Проверить какой тип возвращается в запросe можно через PowerShell:

((Get-WmiObject -Class MSStorageDriver_FailurePredictStatus -Namespace root\wmi).PredictFailure)[0].gettype().Name

*** Есть один неприятный момент связанный с отображением и заданием времени выполнения отчета по времени. В интерфейсе 12-часовой формат, но при этом не видно AM/PM. Так что имейте ввиду эту «особенность» при указании времени.

Реклама
Запись опубликована в рубрике SCCM, Tricks. Добавьте в закладки постоянную ссылку.

2 отзыва на “SCCM; CI/CB; S.M.A.R.T. мониторинг здоровья дисков через WMI. MSStorageDriver_FailurePredictStatu

  1. Уведомление: SCCM; Configuration Baselines; Уведомление пользователей о необходимости перезагрузки через CCM/CB и SCToastNotification; | "Ссылочная" или Sergey Korotkov's Blog

  2. В общем, понаблюдав продолжительное время за этим CB, ответственно заявляю — бесполезная это задача мониторить таким образом HDD. А пост оставлю как демонстрацию работы с CI/CB

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход /  Изменить )

Google photo

Для комментария используется ваша учётная запись Google. Выход /  Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход /  Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход /  Изменить )

Connecting to %s