Назад | Перейти на главную страницу

Планировщик заданий и мониторинг виртуальных машин

Я ищу решение для мониторинга бедняги. У меня есть среда Hyper-V 2008 R2, где колебания мощности в непиковые часы довольно распространены. Батарея сохраняет коробку в течение изрядного количества времени. Я работаю над решением, позволяющим переносить команды выключения батареи в коробку для лучшего решения, но я хотел бы получить простое решение для мониторинга для мониторинга состояния виртуальных машин.

По сути, примерно так:

  1. Питание гаснет.
  2. В конечном итоге питание восстановлено.
  3. Сервер автоматически перезагружается (при восстановлении питания).
  4. Виртуальные машины должны быть перезагружены (выключены или сохранены в зависимости от настроек в Hyper-V).
  5. Планировщик задач запускает задачу примерно каждый час и проверяет наличие виртуальных машин, которые не запущены.
  6. Если машины не запущены, он отправляет сообщение, предпочтительнее, чтобы SMTP предупредил кого-нибудь о проверке.

Я не совсем уверен, как лучше всего выполнить проверку виртуальных машин. Выпущу ли я сценарий CLI или PS с кодом возврата, по которому планировщик задач может затем принять решение, или использовать какой-либо другой метод?

Я хочу использовать встроенные инструменты Windows, поскольку это похоже на то, что должно быть выполнено. Если не все в порядке, альтернативы тоже хороши. И да, мне нужен бесплатный способ сделать это. Не хочу тратить здесь деньги или использовать какой-нибудь гигантский инструмент, такой как Nagios, для этой, казалось бы, небольшой проблемы.

Если я сумасшедший, это тоже хорошо!

Похоже, что в предыдущей версии Windows Server (до 2012 г.) модуль PowerShell не был включен для управления Hyper-V. Вы можете использовать некоторые другие модули, такие как отказоустойчивую кластеризацию и т. Д., Но вы должны использовать сценарии WMI для внесения изменений в гипервизор.

В 2012 году эта проблема проста:

PS C:\> Get-VM –ComputerName Server1 | Where-Object {$_.State –eq 'Running'}

Однако похоже, что есть библиотека с открытым исходным кодом это абстрагирует сценарий WMI и оставляет все в PowerShell. Я взгляну на этот модуль сегодня вечером и посмотрю, смогу ли я заставить его делать то, что я хочу.

Спасибо, Боб, что хотя бы указал мне в правильном направлении.

Я бы сделал все внутри Powershell. Некоторое время назад я написал сценарий, чтобы сделать балансировку нагрузки для какого-то бедняги. Он вызвал некоторый код CLI, чтобы вернуть состояние виртуальной машины, и действовал соответственно.

Вы сделаете то же самое: пусть Powershell вызовет оператор CLI (используя getstate), чтобы получить состояние различных гостевых виртуальных машин. Если какой-либо из них не работает, отправьте электронное письмо по SMTP или используйте CLI для запуска виртуальной машины или что-то еще.

Запустите Powershell по запланированной задаче с любым выбранным интервалом. Должен работать как шарм.