Вы находитесь на странице: 1из 4

Monitorizar los Servicios 1 - Windows Server - MSMVPS.

COM

1 de 4

http://msmvps.com/blogs/juansa/archive/2008/11/28/monitorizar-los-serv...

MSMVPS.COM
The Ultimate Destination for Blogs by Current and Former Microsoft Most Valuable Professionals.

Monitorizar los Servicios 1


Muchas de las operaciones que hace un equipo (especialmente un servidor) es ejecutar servicios. Esto hace que debamos ser cuidadosos con monitorizar los
servicios que se ejecutan en los equipos de nuestra red. Una de las maneras ms prcticas de monitorizacin es el uso de scripts.
Muchos de los servicios (DNS, DHCP,...) son crticos y un error en un nico servidor puede tener un impacto en cientos, incluso miles, de usuarios, impidindoles
iniciar sesin o acceder a los recursos de la red.
Como normas ms generales de monitorizacin:
Monitorizar la disponibilidad del servicio: Medir el porcentaje de tiempo que un servicio est disponible.
La definicin exacta de disponibilidad depende de lo que se espera de cada servicio. Si un recurso debe estar disponible todos los das de 22:00 a
06:00 horas y ste fallase un domingo a las 8:00 de la maana, no se considerara fallo de disponibilidad.
Monitorizar la fiabilidad del servicio: Medir la frecuencia de fallos de un servicio y el tiempo necesario para restaurarlo a su funcionalidad.
La fiabilidad se calcula mediante la divisin del tiempo que el servicio est en funcionamiento por el nmero total de das en un ao. Por ejemplo,un
servicio que ha sufrido paradas en 6 das durante un ao tendra una fiabilidad de 98,3% ((359 das disponible)/365 das en un ao)
Monitorizar el rendimiento del servicio: Medir si el servicio cumple su tarea en la forma esperada.
Monitorizar la disponibilidad del servicio

Cuando monitorizamos la disponibilidad de un servicio, comprobamos slo que el servicio se est ejecutando. Si necesitamos saber si el servicio se ejecuta con
mxima eficiencia, necesitamos usar otro tipo de monitorizacin (el rendimiento). Aunque relativamente es simple, la monitorizacin de disponibilidad es muy
importante; otras cuestiones, como si el servicio se comporta en el nivel esperado, no tienen sentido si no se est ejecutando.
Esta monitorizacin comprende normalmente una prueba que nos devolver el estado del servicio. Guardando el resultado de cada prueba en una BD podemos
calcular la disponibilidad de un servicio. Si realizamos 100 pruebas y el servicio responde 97 veces, someramente, est disponible un 97%.
La disponibilidad frecuentemente se expresa con la media de tiempo que durante un ao el servicio no ha estado disponible.
Para incrementar la disponibilidad de un servicio podemos intentar:
Aumentar el tiempo medio entre fallos: Desafortunadamente, un fallo de servicio es causado frecuentemente por un error del propio servicio o del sistema
operativo. A menos que seamos los autores del cdigo, poco podremos cambiar para solucionar el error y as aumentar el tiempo entre fallos.
Disminuir el tiempo necesario para reiniciar el servicio: Si hemos de reiniciar el servicio manualmente cada vez que falle, el servicio no ser funcional a menos
que lo reiniciemos. Para aumentar la disponibilidad, podemos escribir un script que compruebe su estado y reinicie, en su caso, el servicio automticamente,
peridicamente.
Podemos usar scripts de Shell (sc.exe y net.exe), WSH, WMI (Scriptomatic utility) y ADSI (ADSI Scriptomatic).
Informar sobre la disponibilidad de los servicios puede hacerse mediante:
Informar sobre el estado del servicio.
Informar de los servicios que se encuentran en un estado especfico (e.g. en ejecucin o detenidos)
Informar del estado de todos los servicios.
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:

'Este script sirve para comprobar el estado de todos los servicios


'en un archivo de texto
'(c) Juansa 28-11-2008
Const ForReading = 1, ForWriting = 2
Dim TabStop, NewLine
TabStop = Chr(9)
NewLine = Chr(10)
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile("C:\scripts\Estado_Servicios.txt", ForWriting, True)
StrComputer = "."

El resultado:

19/12/2012 09:42 a.m.

Monitorizar los Servicios 1 - Windows Server - MSMVPS.COM

2 de 4

http://msmvps.com/blogs/juansa/archive/2008/11/28/monitorizar-los-serv...

* Podemos incluirlo en una tarea programada y realizar la comprobacin diaria o a horas determinadas. Se puede incluir adems de la fecha, la hora en la que se
realiza la comprobacin en el script.
1.
2.
3.
4.
5.
6.
7.
8.

Creamos una constante de lectura y escritura


creamos las variables de Tab y Nueva linea
Asignamos los valores de Tab y NewLine
Creamos el objeto del archivo
Abrimos el archivo, indicando su ruta y nombre, para escritura.
variable del equipo, el punto indica equipo local.
conectamos con el espacio de nombres WMI \root\cimv2 con GetObject, estableciendo el nivel de impersonation en impersonate.
Usamos el mtodo ExecQuery para conectar con la clase Win32_Service, lo que nos devolver una coleccin que consiste en todos los servicios instalados
en el equipo.
9. Para cada servicio devuelto en la coleccin, se escribe una nueva lnea para la fecha actual y el nombre del servicio y una nueva lnea para su estado, en el
archivo abierto.
10. Lanzamos un mensaje al acabar. -Podemos eliminarlo si el script no requiere de nuestra presencia.
Informar slo de aqullos servicios que no estn en ejecucin
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:

'Este script sirve para listar los servicios en estado detenido en un archivo de texto
'(c) Juansa 28-11-2008
Const ForReading = 1, ForWriting = 2
Dim TabStop, NewLine
TabStop = Chr(9)
NewLine = Chr(10)
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile("C:\scripts\Servicios_detenidos.txt", ForWriting, True)
StrComputer = "."
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=Impersonate}!\\" & strComputer & "\root\cimv2")

* El cambio es evidente, hemos modificado la consulta (SELECT) para que slo devuelva los servicios que no tengan un estado Running.

Crear una tarea en Windows para que se ejecute el script diariamente


1. Desde Inicio, todos los programas, accesorios, herramientas del sistema, programador de tareas.

19/12/2012 09:42 a.m.

Monitorizar los Servicios 1 - Windows Server - MSMVPS.COM

3 de 4

http://msmvps.com/blogs/juansa/archive/2008/11/28/monitorizar-los-serv...

2. Desde la ventana del programador, doble clic en Agregar tarea programada y seguiremos el asistente, primer paso, pulsar siguiente.

3. Siguiente ventana, pulsaremos en Examinar para ir donde tenemos nuestro script, lo elegiremos y pulsaremos en Abrir del correspondiente cuadro de dilogo.

4. Elegimos un nombre descriptivo para la tarea, y marcamos la secuencia deseada, en este caso diariamente.

5. Hora de inicio, frecuencia de das y da de inicio, siguiente.

6. Datos de la cuenta con la que se ejecutar la tarea. Ojo, si la cuenta no tiene suficientes privilegios no ejecutar la tarea o incluso el script.

7. Si deseamos configurar alguna opcin avanzada o slo comprobarlas, marcaremos la casilla de verificacin y pulsamos en Finalizar.

8. Avanzadas, ventanas Tarea, Programacin, Configuracin y Seguridad.

19/12/2012 09:42 a.m.

Monitorizar los Servicios 1 - Windows Server - MSMVPS.COM

4 de 4

http://msmvps.com/blogs/juansa/archive/2008/11/28/monitorizar-los-serv...

9. La tarea se ha aadido al programador de tareas.

Posted Fri, Nov 28 2008 13:34 by juansa


Filed under: Herramientas, Windows Server, Scripting

Questions? Contact Susan at Susan-at-msmvps.com. Each post's copyright held by the original author. All rights reserved. Blog site is an independent site not
sponsored by Microsoft.
Our servers would like to thank www.ownwebnow.com and www.exchangedefender.com. We wouldn't be here without the generosity of Vlad Mazek and his companies.

biz:andre wbe lon.com

19/12/2012 09:42 a.m.