Ir al contenido principal

Monitor Ejecutar Script

Monitorear cualquier condición de dispositivo ejecutando un script y evaluando su salida contra un umbral o coincidencia de cadena.

Introduction

Supervise cualquier cosa para la que pueda escribir un script. Los monitores de script ejecutan un script en dispositivos de destino según un horario establecido y evalúan la salida contra una condición que define — si se cumple la condición, Level genera una alerta.

Si bien los tipos de monitores integrados cubren condiciones comunes (CPU, memoria, disco, conectividad), los monitores de script cubren todo lo demás: estado del firewall, vencimiento de certificados, cumplimiento de licencias, salud de aplicaciones personalizadas, desviación de configuración y cualquier otra característica de dispositivo que pueda exponer con un script. El script se ejecuta localmente en el dispositivo, por lo que no hay gastos generales de llamadas externas — solo acceso directo y eficiente a cualquier cosa que el sistema operativo pueda informar.


🎬 VIDEO


Script Monitors

Level ejecuta el script seleccionado en los dispositivos cubiertos con su frecuencia configurada. Después de cada ejecución, lee la salida completa de la consola y la evalúa contra su Script output condition and Value. Si se cumple la condición durante el número de ejecuciones consecutivas definido por su Trigger count , se dispara una alerta.

La evaluación es simple por diseño: el script genera algo, el monitor verifica si esa salida coincide con su condición. El script no necesita salir con un código específico — la salida es lo que cuenta.

ℹ️ NOTE:Level evalúa toda la salida del script, no solo la primera o última línea. Tenga esto en cuenta al escribir scripts que producen salida de múltiples líneas.


Crear el script

Antes de configurar el monitor, escriba y guarde el script que ejecutará. Cualquier idioma soportado funciona: PowerShell, Bash, Zsh, Python, Go, Ansible u osquery.

💡 TIP: osquery se ejecuta en Windows, macOS y Linux — un único script osquery puede potenciar monitores en las tres plataformas sin mantener scripts separados por sistema operativo.

El script debe generar un valor o estado que Level pueda evaluar limpiamente — un número, una cadena como True/False , o una palabra conocida como Enabled. El monitor luego compara esa salida con su umbral.

Create Script

💡 TIP: Para verificaciones complejas donde múltiples condiciones deben evaluarse dentro del script, genere una palabra clave desencadenante conocida (comoALERT ) cuando la condición sea poco saludable, y establezca el monitor en Contains ALERT. Esto mantiene la lógica de aprobado/fallo dentro del script mientras mantiene la configuración del monitor simple.


Configurar un monitor de script

Abra la política de monitor de destino y agregue o edite un monitor de script. El Editar monitor se abre en el panel de la derecha.

Nombre y Tipo

  1. Ingrese un nombre en elName campo. El nombre aparece en la alerta, así que hazlo descriptivo — "Firewall de Windows deshabilitado" es inmediatamente procesable; "Monitor de script 4" no lo es.

  2. Set Tipo to Run script .

Uptime Monitor

Gravedad

Set Gravedadbasado en el impacto de la condición que este script detecta:

  • Información

  • Advertencia

  • Crítico

  • Emergencia

Operating System

Seleccione el sistema operativo en el que debe ejecutarse el script: Windows, macOS, or Linux . El monitor solo se ejecutará en dispositivos que ejecuten el sistema operativo seleccionado.

OS Selection

Script

Seleccione el script a ejecutar en el Script campo. Haga clic en el icono de enlace para abrir el script y revisarlo o editarlo. Hacer clic Test script para ejecutar el script en dispositivos objetivo inmediatamente e inspeccionar la salida bruta — útil para confirmar que el script devuelve lo que espera antes de que el monitor se ponga en marcha.

Script Selection

Script Output

Script outputDefine cómo Level compara la salida de la consola del script con suValue . La lista completa de operadores:

  • Equals — la salida coincide exactamente con el valor

  • Does not equal — la salida no coincide con el valor

  • Contains — la salida incluye el valor como una subcadena

  • No contiene — la salida no incluye el valor

  • Greater than — la salida (numérica) es mayor que el valor

  • Mayor o igual a — la salida (numérica) es mayor que o igual al valor

  • Less than — la salida (numérica) es menor que el valor

  • Menor o igual a — la salida (numérica) es menor que o igual al valor

Script Output

ℹ️ NOTE:La salida completa de la consola de su script se convierte en la carga de alerta. Cuando se dispara una alerta, la salida del script es visible directamente en los detalles de la alerta — así que cualquier cosa que escriba en la consola (nombre del dispositivo, valores detectados, detalles del error) aparecerá allí. Escribir un contexto útil en su salida hace que las alertas sean mucho más fáciles de actuar sin tener que investigar más.

Value

Ingrese el valor para comparar la salida del script contra en el Value campo. Para operadores numéricos, ingrese un número. Para operadores de cadena, ingrese la cadena exacta.

Output

💡 TIP: El patrón recomendado es generarALERT (con cualquier detalle adicional útil para investigar) cuando una condición sea insalubre, y establezca Script output to Contains ALERT . Esto funciona limpiamente con salida de múltiples líneas, incluye cualquier detalle que agregue después de la palabra clave, y mantiene la alerta legible. Establezca el monitor en No contiene ALERTsi desea invertir la lógica.

Run Frequency

Run frequency Controla con qué frecuencia se ejecuta el script en los dispositivos de destino. Establezca la unidad ( Minutes or Hours ) y el valor usando el deslizador o las flechas hacia arriba/abajo. El rango es 1–120 minutos o 1–24 horas.

Run Frequency

⚠️ WARNING:Ejecutar scripts con una frecuencia muy alta puede afectar el rendimiento del dispositivo, particularmente en hardware de especificaciones más bajas o si el script en sí es intensivo en recursos. Comience con un intervalo más largo y redúzcalo solo si su caso de uso realmente requiere una detección más rápida.

Trigger Count

Trigger count Define cuántas ejecuciones consecutivas de scripts deben coincidir con la condición antes de que Level cree una alerta. Use las flechas hacia arriba/abajo para establecer el valor.

Un recuento de disparo de 1 dispara una alerta en la primera ejecución coincidente. Los valores más altos requieren que la condición persista en múltiples ejecuciones antes de alertar — útil para condiciones que pueden aparecer brevemente debido al calendario (un script que se ejecuta a mitad de una operación, por ejemplo).

Trigger Count

Resolución Automática

Auto-resolve alert if it is no longer applicable Cierra la alerta automáticamente cuando una ejecución de script posterior ya no coincida con la condición. Habilitado de forma predeterminada.

Déjelo activado para condiciones que se resuelvan genuinamente (un valor que cae por debajo de un umbral, una cadena que ya no aparece en la salida). Desactívelo si desea que las alertas persistan para revisión manual.

Auto-Resolve


Remediación

Adjunte una o más automatizaciones para ejecutar cuando este monitor se dispare — envíe una corrección de configuración, reinicie un servicio o notifique a su equipo.

  1. Click in the Remediación campo y seleccione una automatización.

  2. Para agregar más, haga clic+ Add another remediation .

  3. Para eliminar uno, haga clic en el× next to it.

Remediation

ℹ️ NOTE:Las remediaciones se ejecutan cuando se crea la alerta, no cuando se resuelve.


Notificaciones

  • Send notifications on alert creation — los destinatarios de la política reciben un correo electrónico cuando se dispara la alerta

  • Send notifications on alert resolution — los destinatarios de la política reciben un correo electrónico cuando se resuelve la alerta

Los destinatarios se administran a nivel de política de monitor, en el Destinatarios section.

Notifications


Saving the Monitor

Click Update monitor para guardar cambios, oAdd monitoral agregar uno nuevo. El monitor comienza a ejecutarse inmediatamente, con las ejecuciones posteriores programadas a partir del momento de creación basándose en su frecuencia configurada.


Ejemplos e inspiración

Para ejemplos completos de un extremo a otro que muestran cómo escribir un script y configurar el monitor alrededor, consulte Ejemplos de monitor de script .

The Level Library at level.io/librarytiene una colección seleccionada de scripts listos para usar y políticas de monitor que puede importar a su cuenta con un clic. Es un buen punto de partida si desea implementar algo de inmediato o simplemente desea ver cómo otros han abordado un problema de monitoreo particular.


Best Practices

Use an ALERT centinela como su patrón de salida estándar. El enfoque recomendado: escriba scripts para generarALERT (con cualquier detalle adicional después) cuando el dispositivo esté en un estado insalubre, luego establezca el monitor en Contains ALERT. Esto funciona de forma confiable con salida de múltiples líneas, es fácil de analizar en la lista de alertas y mantiene la lógica de aprobado/fallo dentro del script donde pertenece.

Script de PowerShell

if ($condition) {
Write-Output "ALERT: $details"
exit 1
} else {
Write-Output "OK"
exit 0
}

Mantenga la lógica de evaluación en el monitor para controles simples.Cuando un script produce un único valor limpio — un número, True/False , Enabled / Disabled— configure la comparación en el monitor en lugar de en el script. Esto hace que el monitor sea más fácil de entender y ajustar sin tocar el script.

Comience con una frecuencia de ejecución más larga. Reducir un intervalo es fácil; hacer frente al impacto en el rendimiento de un script que se ejecuta demasiado a menudo es más difícil. La ejecución de alta frecuencia puede afectar dispositivos de especificación más baja, especialmente si el script está haciendo trabajo significativo.

Use osquery para cobertura multiplataforma. osquery se ejecuta en Windows, macOS y Linux y expone el estado del dispositivo a través de una interfaz similar a SQL. Un único script osquery a menudo puede reemplazar tres scripts separados específicos del sistema operativo.

Prueba antes de implementar. Use Test scriptpara ejecutar el script en un dispositivo de destino e inspeccionar la salida bruta antes de que el monitor se active. Esto atrapa sorpresas de formato de salida — espacios en blanco adicionales, saltos de línea inesperados, salida de múltiples líneas — antes de que silenciosamente rompan su monitor.


FAQ

  • ¿Quién puede crear y editar monitores de script?Técnicos con acceso a la política de monitor relevante. La configuración de permisos se administra enWorkspace → Permissions .

  • ¿En qué se diferencia un monitor de script de ejecutar un script a través de una automatización? Una automatización ejecuta un script en respuesta a un desencadenante (un horario, una alerta, una acción manual). Un monitor de script ejecuta un script en un horario recurrente específicamente para evaluar la salud del dispositivo y generar una alerta si se cumple una condición. Utilice monitores para verificaciones de salud continuas, automatizaciones para tareas reactivas o únicas.

  • ¿Puedo usar el mismo script en múltiples monitores? Sí. Un único script puede ser referenciado por tantos monitores como sea necesario, en diferentes políticas. Si actualiza el script, todos los monitores que lo usan recogerán el cambio en su próxima ejecución.

  • Mi monitor de script no se dispara aunque sé que la condición es verdadera. ¿Qué debo revisar? Use Test script para ejecutar el script en un dispositivo de destino e inspeccionar la salida bruta. Problemas comunes: la salida tiene espacios en blanco iniciales/finales que rompen una coincidencia exactaEquals , la salida es multilínea y el valor coincidente se pierde, o el script se ejecuta en dispositivos que no coinciden con el sistema operativo esperado.

  • ¿Qué sucede con las alertas de monitor de script abiertas si elimino el monitor? Las alertas existentes permanecen en su lugar. Eliminar un monitor no cierra las alertas que ya ha creado — resuelva manualmente.

¿Ha quedado contestada tu pregunta?