Cómo establecer una supervisión sencilla del servidor a través de PowerShell
La visibilidad de su infraestructura es absolutamente esencial, tanto para optimizar el rendimiento como para evitar que surjan problemas. El monitoreo en tiempo real e incluso periódico son prácticas poderosas. Naturalmente, existen numerosas formas de hacerlo. También hay una multitud de herramientas.
Si bien la muerte por elección parece ser el problema inicial, el verdadero desafío es la personalización. Cada equipo tiene preferencias diferentes. Las arquitecturas y configuraciones de los servidores difieren mucho. Lamentablemente, en algunos casos de uso, incluso las mejores herramientas deben hacer suposiciones, para bien o para mal. En realidad, estos enfoques rígidos podrían contribuir a aumentar el tiempo de inactividad, socavar el rendimiento y disminuir la seguridad.
Las empresas que ejecutan servidores basados en Windows tienen una excelente opción a su disposición: PowerShell. El potente lenguaje de programación es muy flexible. Debido a que PowerShell se basa en una codificación amigable para los humanos, es relativamente fácil comenzar. ¿Cuál es la mejor parte de escribir tu propio código? Puede diseñar soluciones en torno a cualquier parámetro que elija. Eso no quiere decir que las secuencias de comandos de PowerShell no tengan una curva de aprendizaje. Sin embargo, el potencial para lograr ahorros sustanciales de costos es alto. Tampoco serás rehén de la disponibilidad de soporte de un tercero, en caso de que surjan problemas (como siempre sucede).
Establecer un seguimiento depende de conocer las prioridades de cada uno y los mecanismos básicos detrás del seguimiento. Primero profundizaremos en ellos.
Monitoreo y aspectos básicos de PowerShell
En primer lugar, deberá determinar qué desea monitorear antes de comenzar. Muchas empresas han puesto el carro delante del caballo; Las soluciones de monitoreo resultantes han resultado deficientes. Múltiples factores pueden estar compitiendo por su atención:
- Actuación
- Utilización del proceso
- Uso de memoria y CPU
- Actividad de la red y del usuario.
- Tiempos de respuesta del servidor
- Utilización de la banda de rodadura
- Ancho de banda y rendimiento
Esta lista no es exhaustiva, pero debería ser un buen punto de partida. Es esencial llegar a un consenso sobre las áreas de interés, incluso cuando se crean monitores simples. Sin embargo, digamos que queremos desviarnos de métricas pesadas. Los datos de telemetría son útiles, pero pueden ser demasiado detallados para sus propósitos.
Mantener las cosas simples
Por ejemplo, sabemos que un servidor en su forma más básica puede estar activo o inactivo. Realizar esa verificación de estado es fundamental para mantener su ecosistema. Debido a que las solicitudes del servidor se realizan a través de Internet, se esperan respuestas HTTP de ciertos orígenes. Es probable que sea necesaria una investigación si un puerto se desconecta.
También se debe crear una cadena básica de escalada: ¿qué cuestiones, con qué gravedad, atraerán la atención de quién? Los scripts de PowerShell desencadenan una acción predeterminada, que conduce al resultado deseado. A esto se le suele llamar estado. Si se descubre un mal estado, como una respuesta incorrecta, se debe notificar a alguien.
Podría ser alguien del lado de TI, del lado de DevOps o incluso de un nivel técnico superior. Una persona podría ser suficiente para mitigar el problema. Es posible que varios empleados tengan que extinguir un incendio. Las alertas rápidas a través de PowerShell pueden ayudar a resolver problemas más rápido.
Escribir sus monitores PowerShell
Sus monitores estarán contenidos en un script de PowerShell, un archivo que abarca múltiples funciones escritas. Definirás acciones, buenos estados, malos estados y resultados dentro de dichas funciones.
También incluirá la frecuencia de activación deseada. Los scripts de PowerShell solo se ejecutan una vez de forma predeterminada. Evitamos este pequeño inconveniente creando una tarea, que puede llamar a un script cuando el usuario lo desee. Esto es posible gracias a la funcionalidad de bucle de PowerShell. La sintaxis organizada y basada en variables del lenguaje nos brinda la flexibilidad de definir libremente.
Cualquier archivo de script que cree para PowerShell se guardará con una extensión de archivo de código fuente. Esto podría aparecer como
C:\ServerMonitors.pslBloques de construcción
A continuación, querrás conocer tu palabrería. La gestión de servicios puede introducir una serie de funciones en la ecuación. Sin embargo, queremos centrarnos en algunos cmdlets clave:
- Conseguir
- Prueba
Cada cmdlet también incluye un modificador que proporciona contexto para la solicitud. Esto está conectado al cmdlet mediante un guión, p. Obtener-Servicio -NombreEquipo. Si desea probar la funcionalidad de su servidor, puede optar por codificar algo como Test-HTTP. Estos cmdlets están precedidos por una notación de función, por lo que la primera línea puede verse así:
function Test-HTTP {
Las funciones también incluyen parámetros. Si no define parámetros para sus servidores, sus scripts de PowerShell no distinguirán entre diferentes salidas. Estas funciones generales devolverán resultados generales. Definir correctamente los parámetros (como nombres de computadoras, buenas o malas respuestas) garantizará que el resultado del monitoreo sea contextualmente informativo.
Si desea definir una respuesta positiva, como un código de estado HTTP, deberá indicarlo como un número entero ([int]). Dichos códigos pueden ser 200 (exitoso, respuesta correcta), 202 (aceptado, pero en espera) o cualquier otro relacionado con la funcionalidad del servidor. Dado que los servidores responden en última instancia a las solicitudes de API, es útil diseñar una función de monitoreo que confirme respuestas saludables. También deberá incluir cadenas ([string]) para indicar objetos de monitoreo clave o tipos de datos.
Cómo se vería una función de prueba de respuesta HTTP básica. Cortesía de Adam el Automator.
También querrás validar y incorporar declaraciones de condición en tus funciones de PowerShell. Esto le indicará a su servidor que produzca ciertos resultados, en caso de que los estados sean verdadero o falso. PowerShell seguirá estas instrucciones en consecuencia y le devolverá un resultado valioso a usted o a su equipo.
Inicio de la supervisión de PowerShell
Desarrollar sus funciones de monitoreo es el primer paso. Sin embargo, también deberá escribir un mecanismo para activar estos scripts de monitoreo. El script de "invocación" activa las funciones predefinidas relevantes, al tiempo que define cualquier tarea complementaria programada para su finalización. Este esquema de nomenclatura sigue nuestro esquema de seguimiento anterior:
C:\CallServerMonitors.pslLa estructura es increíblemente importante aquí. Organizará sus diversos monitores en tablas hash, que actúan como estructuras de datos compactas y organizadas. Estos contienen pares de clave y valor. Puede definir los nombres de sus servidores y los nombres de los monitores. Este script de invocación también puede activar alertas basadas en los resultados del backend. Al hacer esto, también puede aplicar reglas específicas según lo desee.
Frecuencias y consideraciones finales
Sus tareas externas activarán estos scripts principales con la frecuencia que desee. Si bien es útil monitorear algunos parámetros del servidor con más frecuencia, otros son decididamente menos críticos. Microsoft considera que estos scripts de monitoreo son idiomático, ya que dependen en gran medida de cmdlets y funciones.
La ejecución simultánea de una gran cantidad de scripts de monitoreo de PowerShell puede generar un costo de recursos; Como no aprovechan .NET directamente, utilizan la canalización. Puede ser mejor escalonar los scripts que NECESITAN ejecutarse con frecuencia y aquellos que no son críticos. Afortunadamente, la naturaleza inherentemente liviana de sus funciones ayudará a mitigar esas preocupaciones.
Estos ejemplos no son exhaustivos. Hay muchas más vías de monitoreo: puede contar con PowerShell para respaldarlo en lo que respecta a la visibilidad del servidor.
PRTG y ScriptRunner: monitorización y automatización en su máxima expresión
Descubra cómo PRTG Network Monitor y ScriptRunner trabajan mano a mano para satisfacer todas sus necesidades de monitoreo de infraestructura de TI.
Vea el seminario web gratis >


