Moniteur ControlUp (alias "le moniteur") joue un rôle clé dans la surveillance de vos sources de données, telles que les machines virtuelles, les connexions à l'hyperviseur ou les infrastructures de bureau virtuel. Le moniteur sert également de passerelle d'authentification pour Solve et Insights, notre interface graphique basée sur le web qui représente les données en temps réel et historiques. Le moniteur collecte ensuite les métadonnées de votre infrastructure virtuelle ou les données, telles que les statistiques de santé, les mesures d'utilisation et les événements, à partir des moniteurs eux-mêmes.
Avant ControlUp for VDI v8.6.5, le moniteur était un écosystème fermé sans accès API aux données qu'il recueillait. Vous aviez besoin d'une interface utilisateur graphique, telle que Real-Time Console ou Solve, pour récupérer les données des ressources surveillées. Nous avons maintenant simplifié le processus de récupération des données par programme et introduit de nouveaux CMDLETs dans la version 8.6.5 qui vous permettent de récupérer ces données riches directement à partir des moniteurs.
Avec la sortie de ControlUp for VDI version 8.6.5, trois nouvelles cmdlets ont été ajoutées au module ControlUp.PowerShell.User. Ces CMDLETs sont Invoke-CUQuery, Export-CUQuery et Get-CUVendorVMs. Vous pouvez en savoir plus sur comment utiliser la cmdlet Invoke-CUQuery dans la documentation. Notre base de connaissances contient des informations détaillées et des instructions pour les différentes cmdlets PowerShell Monitor Cluster. Vous pouvez également regarder les nouvelles CMDLETs PowerShell en action avec InfluxDB dans la rubrique cette vidéo de démonstration:
Rien ne peut gâcher votre bonne humeur par une journée ensoleillée, n'est-ce pas ? Rien, sauf lorsque vous recevez un appel téléphonique de votre DSI vous informant qu'aucune donnée historique n'est disponible pour une machine virtuelle essentielle au succès de l'entreprise. Votre première pensée est : "Oh, [EXPLETIVE] !" Comment avez-vous pu manquer ce manque de données ? Pourquoi n'avez-vous pas reçu d'alertes à ce sujet ?
ControlUp peut vous aider à résoudre ce problème de plusieurs façons ! Supposons que, comme dans le cas de votre DPI, vous n'ayez reçu aucune alerte. Vous pouvez vérifier l'écart de données à partir de la page Perspectives comme le montre la capture d'écran ci-dessous, et identifie immédiatement les moniteurs qui n'ont pas envoyé de données depuis deux jours.

Il est très probable qu'il y ait un problème de connexion entre l'agent ControlUp sur la VM et le moniteur. L'identification du moniteur affecté à cette VM est la première étape de la résolution du problème. Dans un environnement étendu, la recherche de ce moniteur peut prendre un certain temps. Heureusement, ControlUp facilite l'identification et la résolution du problème. Dans ce cas, notre environnement ne contient que quatre moniteurs et vous pouvez trouver le moniteur en cliquant sur la liste des sources de données (voir la capture d'écran ci-dessous) :

En cliquant sur chaque source de données et en les triant par nom de machine, vous découvrirez le problème rencontré par la machine. Vous pouvez en savoir plus sur cette erreur en consultant la colonne Dernière erreur. Dans ce cas, vous constatez une erreur de connexion avec l'agent. Comme le montre la capture d'écran ci-dessous, le moniteur n'est pas en mesure de se connecter à l'agent exécuté sur win10-64b-cpu.controlUp.demo :

C'est très bien ! Vous avez trouvé le problème et vous pouvez facilement le résoudre. Mais attendez ! Combien de temps vous a-t-il fallu pour comprendre ce qui se passe ici ?
L'ouverture de la console a pris environ une minute et l'identification du moniteur connecté à cette VM a pris environ une minute. Dans le meilleur des cas, il ne nous a fallu que deux minutes pour voir l'erreur, et ce pour une seule machine ! Imaginez que vous deviez faire la même chose pour plusieurs machines virtuelles.
Voici ce qu'il en est : Tirer parti de moyens plus efficaces pour récupérer des informations pertinentes! Les nouveaux CMDLETs de Monitor Cluster vont-ils être utiles dans cette situation ? Absolument, et nous allons vous montrer comment.
Plutôt que d'ouvrir la console ou de cliquer sur plusieurs fenêtres et pop-ups, vous pouvez (et devriez) utiliser les nouveaux CMDLETs de PowerShell. Voici comment procéder avec PowerShell :
$pathtomodule = (Get-ChildItem "C:\Program Files\Smart-X\ControlUpMonitor\*ControlUp.PowerShell.User.dll" -Recurse | Sort-Object LastWriteTime -Descending)[0] (en anglais) Import-Module $pathtomodule
(Invoke-CUQuery -Table "Computers" -Fields *).data `
| Select-Object FQDN, ConnectionError | Where-Object {$_.FQDN -eq 'win10-64b-gpu.controlup.demo'}Vous pouvez voir que nous filtrons le FQDN de la machine dans le champ Où-Objet bloc. En moins d'une seconde, le Erreur de connexion de la machine est affichée en sortie.
Vous pouvez voir que nous filtrons le FQDN de la machine dans le champ Où-Objet bloc. En moins d'une seconde, le Erreur de connexion de la machine est affichée en sortie.

Comme vous pouvez le constater, le CMDLET est intuitif et convivial. Lorsque vous l'utiliserez davantage, vous devrez réutiliser les extraits de code.
Si vous êtes un utilisateur avancé de PowerShell, vous pouvez écrire vos propres fonctions pour rendre votre script plus interactif. Les fonctions améliorent considérablement la convivialité et rendent PowerShell beaucoup plus facile à utiliser. Au lieu de réécrire du code sans cesse, vous pouvez vous concentrer sur la création de fonctions réutilisables. Avant de vous asseoir et de commencer à coder, prenez quelques minutes pour réfléchir à la conception et demandez-vous si une fonction est le meilleur moyen d'atteindre votre objectif. Les fonctions ne doivent avoir qu'un seul but, à savoir exécuter une seule action.
Pour cet exemple, nous utilisons un cas d'utilisation courant : Interroger toutes les machines pour un état d'alimentation VM spécifique. Concentrons-nous sur deux états possibles : "ON" et "OFF". Il existe d'autres états d'alimentation, en fonction du type d'infrastructure. (i.e., CVAD, vSphere, ou VMware Horizon). Gardons les choses simples en filtrant les machines qui sont soit tournées, soit à l'arrêt. sur ou éteint.
function Get-MachinesWithPowerState {
[CmdletBinding()]
param (
[Parameter(Mandatory = $true)]
[ValidateSet('On', 'Off')]
[string[]]$PowerState
)
(Invoke-CUQuery -Scheme Main -Table Computers -Fields * -Where "vmPowerState LIKE '$($PowerState)'").Data `
Select-Object @{Name = 'Nom de la machine' ; Expression = 'sName' }, @{Name = 'État d'alimentation' ; Expression = 'vmPowerState' }
}
Exécutez la commande suivante pour obtenir une liste de toutes les machines qui sont allumées :
Get-MachinesWithPowerState -PowerState On
Le résultat sera le suivant :

Vous pouvez voir comment les cmdlets vous permettent de trouver facilement des informations et de créer des scripts personnalisés pour récupérer des informations en quelques secondes. Dans cet article, nous avons montré comment vous pouvez utiliser le CMDLET Invoke-CUQuery de manière simple et efficace.
Les liens suivants permettent d'approfondir certains sujets liés à ce blog :
Nous venons également d'annoncer la sortie de Real-Time DX v8.6.5qui, en plus de ces nouveaux CMDLETs PowerShell, comprend des améliorations au niveau des scripts et des déclencheurs, de nouvelles mesures PVS, de nouvelles intégrations tierces, et bien plus encore !
Vous voulez voir tout cela en action ? Inscrivez-vous à notre webinaire d'approfondissement du mercredi 8 juin, où vous obtiendrez des informations détaillées sur toutes les mises à jour de Real-Time DX, ainsi qu'un aperçu en direct de toutes ces fonctionnalités à l'œuvre. Rejoignez-nous!