Agendador de Tarefas e Monitoramento de Máquina Virtual

2

Estou procurando a solução de monitoramento do homem pobre. Eu tenho um ambiente Hyper-V 2008 R2, onde as flutuações de energia fora do horário de pico são bastante comuns. A bateria mantém a caixa por um bom tempo. Estou trabalhando em uma solução para ter os comandos de desligamento de problemas de bateria na caixa para uma melhor solução, mas gostaria de ter uma solução de monitoramento simples para monitorar o status das máquinas virtuais.

Essencialmente algo assim:

  1. O poder sai.
  2. A energia é eventualmente restaurada.
  3. O servidor reinicia automaticamente (no Power Restore).
  4. As máquinas virtuais devem reiniciar (de fora ou salvas com base nas configurações do Hyper-V).
  5. O Agendador de Tarefas executa uma tarefa a cada hora e verifica as máquinas virtuais que não foram iniciadas.
  6. Se as máquinas não forem iniciadas, ele envia uma mensagem, prefira o SMTP para alertar alguém para verificá-lo.

Não sei exatamente como melhor realizar a verificação das VMs. Emitir um script CLI ou PS que tenha um código de retorno, o agendador de tarefas pode tomar uma decisão ou usar algum outro método?

Eu estou olhando para usar as ferramentas internas do Windows, pois isso parece ser algo que deve ser realizável. Se não é assim, os suplentes são ótimos também. E sim, eu quero um caminho livre para fazer isso. Não quer gastar dinheiro aqui, ou implementar alguma ferramenta gigante como o Nagios para esse problema aparentemente pequeno.

Se eu sou louco, tudo bem também!

    
por Brent Pabst 19.08.2012 / 22:33

2 respostas

0

Parece que, na versão anterior do Windows Server (anterior a 2012), um módulo do PowerShell não foi incluído para gerenciar o Hyper-V. Você pode usar alguns dos outros módulos, como o Cluster de Failover, etc., mas é necessário usar o script WMI para fazer alterações no hypervisor.

Em 2012, esse problema é tão simples assim:

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

No entanto, parece que existe uma biblioteca de código aberto que abstrai o script WMI e deixa tudo no PowerShell. Vou dar uma olhada neste módulo hoje à noite e ver se consigo fazer o que eu quero.

Obrigado Bob pelo menos me apontando na direção certa.

    
por 20.08.2012 / 14:51
0

Eu faria a coisa toda dentro do Powershell. Eu escrevi um script há algum tempo para fazer o balanceamento de carga de um homem pobre. Ele chamou algum código CLI para retornar o estado de uma VM e agiu de acordo.

Você fará o mesmo: peça ao Powershell para chamar uma instrução CLI (Using getstate) para obter o estado de suas várias VMs convidadas. Se algum deles estiver inoperante, envie um e-mail SMTP ou use a CLI para iniciar a vm ou qualquer outra coisa.

Inicie o Powershell por tarefa agendada no intervalo que você escolher. Deve funcionar como um encanto.

    
por 20.08.2012 / 04:28