Introduction
Surveillez tout ce pour quoi vous pouvez écrire un script. Les moniteurs de script exécutent un script sur les appareils cibles selon un calendrier défini et évaluent le résultat par rapport à une condition que vous définissez — si la condition est remplie, Level déclenche une alerte.
Là où les types de moniteurs intégrés couvrent les conditions courantes (processeur, mémoire, disque, connectivité), les moniteurs de script couvrent tout le reste : état du pare-feu, expiration des certificats, conformité des licences, état des applications personnalisées, dérive de configuration, et toute autre caractéristique de l'appareil que vous pouvez exposer avec un script. Le script s'exécute localement sur l'appareil, sans surcoût lié à un appel externe — juste un accès direct et efficace à ce que le système d'exploitation peut rapporter.
🎬 VIDÉO
Moniteurs de script
Level exécute le script sélectionné sur les appareils concernés à la fréquence que vous avez configurée. Après chaque exécution, il lit l'intégralité de la sortie console et l'évalue par rapport à votre Sortie du script condition et Valeur. Si la condition est remplie pour le nombre d'exécutions consécutives défini par votre Nombre de déclenchements, une alerte se déclenche.
L'évaluation est simple par conception : le script produit une sortie, le moniteur vérifie si cette sortie correspond à votre condition. Le script n'a pas besoin de se terminer avec un code spécifique — c'est la sortie qui compte.
ℹ️ REMARQUE : Level évalue toute la sortie du script, pas seulement la première ou la dernière ligne. Gardez cela à l'esprit lors de l'écriture de scripts produisant une sortie multiligne.
Créer le script
Avant de configurer le moniteur, rédigez et enregistrez le script qu'il exécutera. Tout langage pris en charge fonctionne : PowerShell, Bash, Zsh, Python, Go, Ansible ou osquery.
💡 CONSEIL : osquery s'exécute sur Windows, macOS et Linux — un seul script osquery peut alimenter des moniteurs sur les trois plateformes sans avoir à maintenir des scripts distincts par système d'exploitation.
Le script doit produire une valeur ou un état que Level peut évaluer clairement — un nombre, une chaîne comme True/False, ou un mot reconnu comme Enabled. Le moniteur compare ensuite cette sortie à votre seuil.
💡 CONSEIL : Pour les vérifications complexes où plusieurs conditions doivent être évaluées dans le script, produisez un mot déclencheur connu (comme ALERT) lorsque la condition est défaillante, et régler le moniteur sur ContientALERT. Cela maintient la logique de réussite/échec à l'intérieur du script tout en simplifiant la configuration du moniteur.
Configurer un moniteur de script
Ouvrez la politique de moniteur cible, puis ajoutez ou modifiez un moniteur de script. Le panneau Modifier le moniteur s'ouvre sur la droite.
Nom et type
Saisissez un nom dans le Nom champ. Le nom apparaît dans l'alerte, alors rendez-le descriptif — «Windows Firewall Disabled» est immédiatement exploitable ; «Script Monitor 4» ne l'est pas.
Définissez Type sur Exécuter un script.
Gravité
Définissez Gravité en fonction de l'impact de la condition que ce script détecte :
Information
Avertissement
Critique
Urgence
Système d'exploitation
Sélectionnez le système d'exploitation sur lequel le script doit s'exécuter : Windows, macOS, ou Linux. Le moniteur s'exécutera uniquement sur les appareils fonctionnant sous le système d'exploitation sélectionné.
Script
Sélectionnez le script à exécuter depuis le Script champ. Cliquez sur l'icône de lien pour ouvrir le script et le consulter ou le modifier. Cliquez sur Tester le script pour exécuter le script immédiatement sur les appareils ciblés et inspecter la sortie brute — utile pour confirmer que le script renvoie ce que vous attendez avant la mise en service du moniteur.
Sortie du script
Sortie du script définit comment Level compare la sortie console du script à votre Valeur. La liste complète des opérateurs :
Égal à — la sortie correspond exactement à la valeur
Différent de — la sortie ne correspond pas à la valeur
Contient — la sortie inclut la valeur comme sous-chaîne
Ne contient pas — la sortie n'inclut pas la valeur
Supérieur à — la sortie (numérique) est supérieure à la valeur
Supérieur ou égal à — la sortie (numérique) est supérieure ou égale à la valeur
Inférieur à — la sortie (numérique) est inférieure à la valeur
Inférieur ou égal à — la sortie (numérique) est inférieure ou égale à la valeur
ℹ️ REMARQUE : La sortie console complète de votre script devient la charge utile de l'alerte. Lorsqu'une alerte se déclenche, la sortie du script est visible directement dans les détails de l'alerte — ainsi, tout ce que vous écrivez dans la console (nom de l'appareil, valeurs détectées, détails d'erreur) y apparaîtra. Inclure des informations de contexte utiles dans votre sortie rend les alertes beaucoup plus faciles à traiter sans avoir à creuser davantage.
ℹ️ REMARQUE : La fréquence d'exécution contrôle la fréquence à laquelle Level évalue la sortie du script. Les charges utiles des alertes ne constituent pas une série chronologique complète de chaque exécution du script. Pour conserver chaque lecture à des fins d'analyse, faites en sorte que votre script ajoute des échantillons horodatés dans un fichier CSV local sur l'appareil, puis récupérez ce fichier après l'évaluation. Tenez compte de la taille du fichier, des permissions et du nettoyage.
Valeur
Saisissez la valeur à comparer avec la sortie du script dans le Valeur champ. Pour les opérateurs numériques, saisissez un nombre. Pour les opérateurs de chaîne, saisissez la chaîne exacte.
💡 CONSEIL : L'approche recommandée consiste à produire ALERT (avec tout détail supplémentaire utile à l'investigation) lorsqu'une condition est défaillante, et réglez Sortie du script sur ContientALERT. Cela fonctionne parfaitement avec une sortie multiligne, inclut tout détail ajouté après le mot-clé, et maintient l'alerte lisible. Réglez le moniteur sur Ne contient pasALERT si vous souhaitez inverser la logique.
Fréquence d'exécution
Fréquence d'exécution contrôle la fréquence à laquelle le script s'exécute sur les appareils cibles. Définissez l'unité (Minutes ou Heures) et la valeur à l'aide du curseur ou des flèches haut/bas. La plage est de 1 à 120 minutes ou de 1 à 24 heures.
⚠️ AVERTISSEMENT : L'exécution de scripts à une fréquence très élevée peut affecter les performances de l'appareil, en particulier sur le matériel d'entrée de gamme ou si le script lui-même est gourmand en ressources. Commencez par un intervalle plus long et réduisez-le uniquement si votre cas d'usage nécessite vraiment une détection plus rapide.
Nombre de déclenchements
Nombre de déclenchements définit le nombre d'exécutions consécutives du script qui doivent correspondre à la condition avant que Level crée une alerte. Utilisez les flèches haut/bas pour définir la valeur.
Un nombre de déclenchements de 1 déclenche une alerte dès la première exécution correspondante. Des valeurs plus élevées exigent que la condition persiste sur plusieurs exécutions avant de déclencher une alerte — utile pour les conditions qui peuvent apparaître brièvement en raison du timing (un script s'exécutant en cours d'opération, par exemple).
Résolution automatique
Résoudre automatiquement l'alerte si elle n'est plus applicable ferme l'alerte automatiquement lorsqu'une exécution ultérieure du script ne correspond plus à la condition. Activé par défaut.
Laissez cette option activée pour les conditions qui se résolvent réellement (une valeur redescendant en dessous d'un seuil, une chaîne n'apparaissant plus dans la sortie). Désactivez-la si vous souhaitez que les alertes persistent pour une révision manuelle.
Remédiation
Associez une ou plusieurs automatisations à exécuter lorsque ce moniteur se déclenche — appliquez un correctif de configuration, redémarrez un service, ou notifiez votre équipe.
Cliquez dans le Remédiation champ et sélectionnez une automatisation.
Pour en ajouter d'autres, cliquez sur + Ajouter une autre remédiation.
Pour en supprimer une, cliquez sur × en regard.
ℹ️ REMARQUE : Les remédiations s'exécutent lors de la création de l'alerte, pas lors de sa résolution.
Notifications
Envoyer des notifications lors de la création de l'alerte — les destinataires de la politique reçoivent un e-mail lorsque l'alerte se déclenche
Envoyer des notifications lors de la résolution de l'alerte — les destinataires de la politique reçoivent un e-mail lorsque l'alerte est résolue
Les destinataires sont gérés au niveau de la politique de moniteur, dans la Destinataires section.
Enregistrer le moniteur
Cliquez sur Mettre à jour le moniteur pour enregistrer les modifications, ou Ajouter un moniteur lors de l'ajout d'un nouveau moniteur. Le moniteur commence à s'exécuter immédiatement, les exécutions suivantes étant planifiées à partir du moment de la création selon la fréquence configurée.
Exemples et inspiration
Pour des exemples complets montrant comment écrire un script et configurer le moniteur autour de celui-ci, consultez Exemples de moniteurs de script.
La Bibliothèque Level à level.io/library propose une collection organisée de scripts prêts à l'emploi et de politiques de moniteur que vous pouvez importer dans votre compte en un seul clic. C'est un bon point de départ, que vous souhaitiez déployer quelque chose immédiatement ou simplement voir comment d'autres ont abordé un problème de surveillance particulier.
Bonnes pratiques
Utilisez un signal ALERT comme modèle de sortie standard. L'approche recommandée : écrivez des scripts pour produire ALERT (avec tout détail supplémentaire à la suite) lorsque l'appareil est dans un état défaillant, puis réglez le moniteur sur ContientALERT. Cela fonctionne de manière fiable avec une sortie multiligne, est facile à analyser dans la liste des alertes, et maintient la logique de réussite/échec dans le script là où elle appartient.
Script PowerShell
if ($condition) {
Write-Output "ALERT: $details"
exit 1
} else {
Write-Output "OK"
exit 0
}Gardez la logique d'évaluation dans le moniteur pour les vérifications simples. Lorsqu'un script produit une seule valeur nette — un nombre, True/False, Enabled/Disabled — configurez la comparaison dans le moniteur plutôt que dans le script. Cela rend le moniteur plus facile à comprendre et à ajuster sans modifier le script.
Commencez par une fréquence d'exécution plus longue. Réduire un intervalle est facile ; gérer l'impact sur les performances d'un script s'exécutant trop souvent est plus difficile. Une exécution à haute fréquence peut affecter les appareils d'entrée de gamme, surtout si le script effectue un travail significatif.
Utilisez osquery pour une couverture multiplateforme. osquery s'exécute sur Windows, macOS et Linux et expose l'état de l'appareil via une interface de type SQL. Un seul script osquery peut souvent remplacer trois scripts distincts spécifiques à chaque système d'exploitation.
Testez avant de déployer. Utilisez Tester le script pour exécuter le script sur un appareil cible et inspecter la sortie brute avant la mise en service du moniteur. Cela permet de détecter les surprises de format de sortie — espaces superflus, sauts de ligne inattendus, sortie multiligne — avant qu'elles ne compromettent silencieusement votre moniteur.
FAQ
Qui peut créer et modifier des moniteurs de script ? Les techniciens ayant accès à la politique de moniteur concernée. Les paramètres de permissions sont gérés dans Espace de travail → Permissions.
En quoi un moniteur de script diffère-t-il de l'exécution d'un script via une automatisation ? Une automatisation exécute un script en réponse à un déclencheur (une planification, une alerte, une action manuelle). Un moniteur de script exécute un script selon un calendrier récurrent spécifiquement pour évaluer l'état de santé de l'appareil et déclencher une alerte si une condition est remplie. Utilisez les moniteurs pour les vérifications continues de l'état de santé, et les automatisations pour les tâches réactives ou ponctuelles.
Puis-je utiliser le même script dans plusieurs moniteurs ? Oui. Un seul script peut être référencé par autant de moniteurs que nécessaire, dans différentes politiques. Si vous mettez à jour le script, tous les moniteurs qui l'utilisent prendront en compte la modification lors de leur prochaine exécution.
Mon moniteur de script ne déclenche pas d'alerte alors que je sais que la condition est vraie. Que dois-je vérifier ? Utilisez Tester le script pour exécuter le script sur un appareil cible et inspecter la sortie brute. Problèmes courants : la sortie contient des espaces en début/fin qui compromettent une correspondance exacte avec Égal à correspondent, la sortie est multiligne et la valeur correspondante est perdue, ou le script s'exécute sur des appareils ne correspondant pas au système d'exploitation attendu.
Que se passe-t-il avec les alertes de moniteur de script ouvertes si je supprime le moniteur ? Les alertes existantes restent en place. La suppression d'un moniteur ne ferme pas les alertes qu'il a déjà créées — résolvez-les manuellement.











