Servidores: Monitorizar servicios con powershell

Al mismo hilo que la monitorizacion de espacio libre en disco de los servidores, es interesante controlar que los servicios estan corriendo. Esto no siempre garantiza que las aplicaciones funcionen, pero es un comienzo.

Con un fichero de texto que englobe los servidores y los servicios a revisar (servicios.ini)

Mostrar ejemplo de fichero ini

Y el siguiente script en powershell que conectara con los servidores y recuperará la informacion a traves del cmdlet get-service de los servicios que nos interesen:

$idservgroup=0
$archivoservicios=".\servicios.ini"
$linea=get-content($archivoservicios)
$linea|%{
 $campo=$_.split(" ") #separo los servicios en el ini con Tabulador
 $servidor=$campo[0]
 $servicio=$campo[1]
 $idserv=$campo[2]
 if ($idserv -ne $idservgroup) 
  {  
  if ($idservgroup -ne 0) {write-host $idservgroup $estado}
  $estado=1
  $idservgroup=$idserv
  }
 $result=get-service -computername $servidor -name $servicio
 log-ipads $idserv "$($result.status) $($result.displayname)($servicio) on $servidor"
 if ($result.status -ne "Running"){$estado=0}
} #fin del for
write-host $idservgroup $estado
Podemos finalizar el script con un envio de correo si $estado=0 o guardar la salida en un fichero (out-file) en vez de sacarla por pantalla.

Comentarios

  1. Hola.Si uno de esos servicios fuera gestor de licencias.¿Podríamos consultar la fecha de expiración con get-service?

    Gracias

    ResponderEliminar

Publicar un comentario