sexta-feira, 14 de novembro de 2014

Monitorando um serviço no Windows Server

Bem em um recente projeto, tinhamos alguns serviços de terceiros rodando em Servidores Windows 2003 Server e Windows 2012 Server. Ate ai tudo bem, o problema era que alguns destes serviços simplesmente paravam e estavam parado (Stopped). Bastava verificar com o services.msc e os serviços estavam mesmo parado.

Em dado momento o Zabbix disparava a trigger dizendo que o Serviço tinha parado.

Para facilitar a vida de todas, criamos um VBS (Visual Basic Script) local em cada máquina que checa se o serviço esta rodando ou não, em caso de estar parado, o mesmo script inicia (start), e o Serviço problemático inicia novamente, e os problemas estavam terminado para este Administrador aqui ;)

Assim, basta você agendar em cada S.O a execução deste script de cinco e cinco minutos e não esquecer de trocar a variavel com o nome do Serviço a ser monitorado!

Segue código do VBS - CheckService1.vbs

' servicename, variavel com o nome do serviço a ser monitorado!'
serviceName = "uvnc_service"


Set wmi = GetObject("winmgmts://./root/cimv2")

qry = "SELECT * FROM Win32_Service WHERE Name='" & serviceName & "'"


For Each s In wmi.ExecQuery(qry)


 If s.State = "Stopped" Then 

  s.StartService

 else

  'wscript.echo "Serviço Rodando... saindo."'

 end if

Next