none
SCOM Мониторинг датчиков на "Юзер" ПК RRS feed

  • Вопрос

  • Всем доброго времени !

    (Возможно вопрос крайне глуп, извиняюсь только познаю SCOM).

    Интересует вопрос о мониторинге датчиков/сенсоров (температура, вольтаж) - на юзер ПК в инфраструктуре с разным железом.

    Возможно существует универсальный MP, или это делать как-то из PowerShell.

    Подскажите.

    26 февраля 2019 г. 12:26

Ответы

  • Если есть скрипт, который умеет читать температуру HDD или вольтаж ЦП, можно создать нужный монитор. Если есть ПО, которое умеет читать данные значения и записывать их в текстовый файл, например, то можно также с помощью скрипта читать текстовый файл с заданной периодичностью и создать нужный монитор.

    Но есть ограничение: SCOM не поддерживает мониторы на основе скриптов Powershell. Данное ограничение можно обойти.

    Сложнее создать скрипт Powershell для чтения температуры HDD. По ключевым словам "deviceiocontrol hdd serial number" в google можно найти пример получения серийного номера hdd с использованием функции deviceiocontrol на языке C++, пример получения температуры не нашел, но, скорее всего, реализуется также с помощью вызова функции deviceiocontrol.

    Вызовы WinAPI из примеров можно реализовать с помощью Powershell (хотя процесс непростой и требует тестирования).

    3 марта 2019 г. 5:47

Все ответы

  • если оборудование отдельное сетевое устройство, которое можно мониторить через snmp, то его можно завести как сетевое устройство snmp в консоль scom, поискать/создать пакет управления для мониторинга. если оборудование подключено к ПК и на ПК установлен агент SCOM, то да, можно через скрипты.

    2 марта 2019 г. 1:09
  • Про SNMP знаю, но вот например читать температуру HDD или вольтаж ЦП ?
    2 марта 2019 г. 10:49
  • Если есть скрипт, который умеет читать температуру HDD или вольтаж ЦП, можно создать нужный монитор. Если есть ПО, которое умеет читать данные значения и записывать их в текстовый файл, например, то можно также с помощью скрипта читать текстовый файл с заданной периодичностью и создать нужный монитор.

    Но есть ограничение: SCOM не поддерживает мониторы на основе скриптов Powershell. Данное ограничение можно обойти.

    Сложнее создать скрипт Powershell для чтения температуры HDD. По ключевым словам "deviceiocontrol hdd serial number" в google можно найти пример получения серийного номера hdd с использованием функции deviceiocontrol на языке C++, пример получения температуры не нашел, но, скорее всего, реализуется также с помощью вызова функции deviceiocontrol.

    Вызовы WinAPI из примеров можно реализовать с помощью Powershell (хотя процесс непростой и требует тестирования).

    3 марта 2019 г. 5:47
  • любой из способов сводиться к написанию powershell монитора, кто то тут сказал что SCOM не поддерживает такие мониторы, категорически не согласен, штатный функционал, но лишь немного вынесенный за скобки гуишной консоли, да и то есть пример даже с ней:

    https://blog.ctglobalservices.com/powershell/clm/example-of-setting-up-a-custom-monitor-in-scom-with-a-powershell-script-monitor-nic-teams-in-scom/

    Далее вам необходимо определиться с методом которым будете получать данные, что то конечно можно выдернуть через WMI, но есть и более изощренные способы. Например использование библиотеки OpenHardwareMonitor https://github.com/openhardwaremonitor/

    Вот так к примеру можно выдернуть температуры процессора:

    [System.Reflection.Assembly]::LoadFile("C:\\Users\\<username>\\Documents\\OpenHardwareMonitor\\OpenHardwareMonitorLib.dll") | Out-Null

    $HW = New-Object OpenHardwareMonitor.Hardware.Computer
    $HW.CPUEnabled = $true
    $HW.Open()
    ($HW.Hardware[0].Sensors | where {$_.SensorType -like 'Temperature'}).Value

    Аналогичным образом и другие показатели. 

    Вообще либа очень мощная и перед использованием её крайне рекомендовано поиграться самому и понять что она может и умеет.

    Либо есть ещё топорный вариант:

    cpuz.exe -console

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


    • Изменено Swepper 6 марта 2019 г. 9:59
    • Предложено в качестве ответа Swepper 6 марта 2019 г. 10:00
    6 марта 2019 г. 9:57
  • Монитор на основе Powershell в SCOM можно создать, но потребуется загрузка стороннего Management Pack (пример приведён по вашей ссылке). Работу данного Management Pack нужно проверять.

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

    Сделать скрипт Powershell для проверки температуры жёсткого диска требует усилий. Пробовал найти решение, нашел исходный код crystaldiskinfo на GitHub, написанный на Си++ с использованием WinAPI. Можно найти через google по ключевым словам "crystaldiskinfo deviceiocontrol".

    Получается, что простого решения нет.
    • Изменено Mikhail_sa 6 марта 2019 г. 13:15
    6 марта 2019 г. 13:14