01 · Architecture
Un serveur de supervision dédié.
Installez CVAD Monitor sur un serveur Windows membre du domaine. Il interroge à distance la base Citrix Monitor avec l'authentification Windows intégrée et le serveur de licences avec lmstat.exe. Aucun SDK Citrix ni rôle Delivery Controller n'est requis.
Lecture seule côté SQL, aucune télémétrie externe et données conservées dans votre infrastructure.
02 · Prérequis
Préparer le serveur et les flux.
Serveur joint au domaine. Windows Server 2025 est testé.
Une session administrateur local est nécessaire pendant l'installation.
Le bootstrapper graphique cible net472. Utilisez de préférence la version 4.x la plus récente prise en charge par Windows.
DNS direct et inverse pour SQL et le serveur de licences, avec synchronisation au domaine.
Préparez la capacité contractuelle du site CVAD avant l'installation.
Vérifier .NET Framework
Windows Server 2019, 2022 et 2025 fournissent normalement une version compatible. Vérifiez néanmoins les images minimales ou durcies avant de lancer le Setup.
$release = Get-ItemPropertyValue `
'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full' `
-Name Release -ErrorAction Stop
if ($release -lt 461808) {
throw '.NET Framework 4.7.2 or later is required.'
}
Une valeur Release supérieure ou égale à 461808 satisfait le minimum. Si nécessaire, installez la version de .NET Framework la plus récente prise en charge par le serveur, puis redémarrez. Aucun runtime .NET moderne, comme .NET 6 ou .NET 8, n'est requis.
Flux réseau
| Source | Destination | Port | Usage |
|---|---|---|---|
| CVAD Monitor | SQL Server | TCP configuré · UDP 1434* | Base Citrix Monitor et résolution des instances nommées |
| CVAD Monitor | Citrix License Server | TCP 27000 | Gestionnaire de licences |
| CVAD Monitor | Citrix License Server | TCP 7279* | Citrix vendor daemon |
| Réseaux d'administration | CVAD Monitor | TCP 8788* | Dashboard IIS |
* SQL Server n'écoute pas nécessairement sur 1433. Une instance nommée sans port utilise SQL Browser sur UDP 1434 ; si ce flux est filtré, indiquez son port TCP réel. Le port du dashboard est personnalisable.
Formats SQL acceptés
SQL01
SQL01\CITRIX
SQL01,51433
tcp:SQL01,51433
Laissez le champ Port TCP SQL vide avec SERVEUR\INSTANCE : SqlClient et SQL Browser résolvent alors le port dynamique. Depuis la version 1.2.5, le Setup efface automatiquement un ancien port 1433 mémorisé lorsqu'une instance nommée est rechargée. Ne combinez pas une instance nommée avec un port séparé ; utilisez tcp:SERVEUR,PORT lorsque le port est connu.
03 · Identité
Un compte de service au moindre privilège.
Créez un compte utilisateur de domaine dédié, sans droits administratifs ni ouverture de session interactive. Le Setup lui attribue localement le droit Ouvrir une session en tant que travail par lots. Si ce droit est piloté par GPO, ajoutez le compte dans la stratégie de domaine.
EXAMPLE\svc-cvad-monitor
Droits SQL minimaux
Accordez uniquement une connexion Windows et le rôle db_datareader sur la base Citrix Monitor.
USE [master];
CREATE LOGIN [EXAMPLE\svc-cvad-monitor] FROM WINDOWS;
GO
USE [CitrixSiteMonitoring];
CREATE USER [EXAMPLE\svc-cvad-monitor]
FOR LOGIN [EXAMPLE\svc-cvad-monitor];
ALTER ROLE [db_datareader]
ADD MEMBER [EXAMPLE\svc-cvad-monitor];
GO
N'ajoutez pas le compte aux groupes Domain Admins ou Administrateurs locaux. Aucun droit d'écriture SQL ni rôle Citrix administratif n'est nécessaire.
04 · Installation
Installer avec le Setup signé.
- 01Téléchargez le Setup
Téléchargez Raidho-CVAD-Monitor-Setup-1.2.15.exe depuis la fenêtre d’essai gratuit du site, ou via le lien à usage unique reçu après achat.
- 02Vérifiez l'artefact
Contrôlez la signature Authenticode et la somme SHA-256 avant toute exécution.
- 03Lancez en administrateur
Renseignez les paramètres SQL, le serveur de licences, la capacité, le port IIS et le compte de service.
- 04Validez la première collecte
Le Setup crée la tâche planifiée et déclenche la collecte initiale. En installation complète uniquement, il installe aussi IIS et configure le pare-feu web.
L’installation normale reste complète : collecte et interface web. En Installation personnalisée, décochez Interface web pour installer uniquement la collecte CSV, JSON et Checkmk. La collecte est obligatoire : l’interface web seule est interdite. Aucun rôle IIS ni port web n’est créé pour une nouvelle installation collecte seule.
Vérification du Setup
$setup = '.\Raidho-CVAD-Monitor-Setup-1.2.15.exe'
Get-AuthenticodeSignature $setup |
Select-Object Status, StatusMessage, SignerCertificate
Get-FileHash $setup -Algorithm SHA256
La signature doit être valide. Somme SHA-256 officielle de la version 1.2.15 :
5436e1601b50ddc0d7eb7dbfa67250affad624f8b0b652a37d1f0babef9430df
Paramètres demandés
- Endpoint SQL : instance par défaut, SERVEUR\INSTANCE sans port, ou tcp:SERVEUR,PORT, avec le nom exact de la base Monitor
- Serveur de licences au format 27000@licenses01.example.local
- Capacité contractuelle du site CVAD
- Port du dashboard, par défaut 8788, uniquement avec l’interface web
- Compte de service DOMAINE\compte et mot de passe
- Licence signée facultative pour une première installation en essai
Pour SQL01\CITRIX, laissez Port TCP SQL vide. Si SQL Browser n'est pas joignable sur UDP 1434, demandez le port réel au DBA et saisissez tcp:SQL01,PORT. Depuis la 1.2.5, le Setup ne réutilise plus automatiquement un ancien port 1433 avec une instance nommée.
C:\Program Files\Raidho\CVAD MonitorC:\ProgramData\Raidho\CVAD Monitor05 · Validation
Prouver que la collecte fonctionne.
Get-ScheduledTaskInfo `
-TaskName 'Raidho CVAD License Usage Export' |
Select-Object LastRunTime, LastTaskResult
LastTaskResult doit être égal à 0. Ouvrez ensuite le dashboard et contrôlez la fraîcheur des données.
& "$env:ProgramFiles\Raidho\CVAD Monitor\installer\Test-CvadMonitor.ps1"
Le validateur doit retourner Passed = True. Il contrôle les rôles IIS, l'authentification, le statut HTTP, les ACL, le pare-feu, la tâche planifiée et les identités observées.
http://monitoring-server.example.local:8788/dashboard/
- Les données réelles remplacent les données d'exemple
- Le FQDN SQL, le port et la capacité sont corrects
- Les horodatages se renouvellent après 15 minutes
- La tâche s'exécute avec le compte de service prévu
- Le dashboard répond et exige l'authentification Windows
- Le bloc Licence affiche l'essai ou la licence annuelle
Collecte seule et Checkmk en 1.2.15.
Le mode collecte seule conserve les exports CSV et JSON, la tâche planifiée et la validation de licence. Les données restent dans ProgramData, sous Web\data pour compatibilité : ce nom de dossier n’implique pas un serveur web. En passant d’une installation complète à la collecte seule, seul le site CVAD est arrêté et sa règle pare-feu retirée ; les rôles IIS partagés sont conservés.
Export Checkmk local check
Le fichier latest\cvad-usage.checkmk.txt est produit dans les deux modes et proposé dans la liste des exports du dashboard. Il contient trois services : utilisateurs distincts User/Device depuis le dernier reset, licences concurrentes et consommation du serveur de licences. Les seuils WARN/CRIT sont 80 %/90 % de la capacité effective ; une consommation serveur indisponible est UNKNOWN, jamais OK.
P "CVAD User Device Licenses" cvad_licenses=550;480;540;0;600 550 licenses used out of 600
Copiez le script installé scripts\Get-CvadCheckmk.ps1 dans C:\ProgramData\checkmk\agent\local\, puis lancez la découverte des services Checkmk. Le lecteur ajoute CVAD Collection et marque les quatre services UNKNOWN si les exports sont absents, invalides ou âgés de plus de 45 minutes. Adaptez MaxAgeMinutes si la cadence de collecte diffère de 15 minutes. Ne placez pas le fichier texte dans agent\local : l’agent y exécute des scripts.
Documentation officielle Checkmk
En mode collecte seule, validez la tâche et les exports récents ; les tests HTTP/IIS ci-dessus ne s’appliquent qu’à l’installation complète.
Dans Paramètres, Réinitialiser ce compteur remet à zéro uniquement les utilisateurs distincts All Time, après confirmation par un administrateur Windows. Le pic historique, les autres périodes et les données Citrix sont préservés. Le chargement du handler ASP.NET est corrigé et validé sous IIS.
Nouveautés de la version 1.2.15
Le popup Paramètres propose désormais Recalculer maintenant aux administrateurs Windows locaux. Après confirmation, il relance la collecte complète sans supprimer la configuration, la licence, les archives ni les dernières données valides.
Le lancement est protégé par l’authentification Windows, un contrôle d’origine et un jeton CSRF à usage unique. Une collecte déjà en file d’attente ou en cours bloque un second lancement.
Les calculs conservent leurs index de sessions. Le journal indique l’empreinte du collecteur, tandis que la version, le chemin et l’empreinte permettent de diagnostiquer un mélange de fichiers ; dans ce cas, réinstallez le Setup signé complet.
La version 1.2.15 corrige aussi le contrôle de cohérence entre le lanceur et le collecteur, avec une source de version canonique et un test de non-régression. Pour mettre à niveau, sauvegardez le répertoire ProgramData du produit, lancez le Setup signé complet, saisissez à nouveau le mot de passe du compte de service puis vérifiez un résultat de collecte égal à 0 et des données récentes.
06 · Production
Sécuriser et exploiter dans la durée.
- Publiez IIS en HTTPS avant toute exposition hors du réseau d'administration
- Restreignez la règle pare-feu aux sous-réseaux d'administration autorisés
- Sauvegardez C:\ProgramData\Raidho\CVAD Monitor
- Ne stockez jamais le mot de passe du compte de service dans Git ou un fichier de configuration
- Vérifiez que les GPO conservent le droit d'ouverture de session en tant que travail par lots
- Testez les mises à niveau sur un snapshot avant la production
Avec un certificat machine fourni au Setup, HTTPS écoute sur le port suivant le port HTTP. Par exemple, 8789 pour un port HTTP 8788.
Authentification Windows, FQDN et Kerberos
Le Setup désactive Anonymous, active Windows Authentication et impose l'ordre Negotiate puis NTLM. Utilisez le FQDN canonique et placez le site dans la zone Intranet local afin que le navigateur transmette automatiquement les identifiants. Un alias DNS peut nécessiter les SPN HTTP/alias et HTTP/alias.domaine sur l'identité qui porte réellement HTTP ; vérifiez les doublons avec setspn -Q avant toute modification.
| Code | Signification | Contrôles |
|---|---|---|
| 401.1 | Échec d'ouverture de session | Identité, mot de passe, stratégie et boucle locale avec alias |
| 401.2 | Configuration d'authentification refusée | Anonymous / Windows Authentication · Negotiate / NTLM |
| 401.3 | Refus par ACL NTFS | IIS_IUSRS · Web · dashboard |
07 · Licence
Essai, activation et renouvellement.
Sans fichier de licence, la première installation démarre automatiquement un essai complet de 7 jours et génère une demande liée au site. La licence annuelle fonctionne hors ligne et peut être installée en relançant le Setup.
C:\ProgramData\Raidho\CVAD Monitor\data\license-request.jsonC:\ProgramData\Raidho\CVAD Monitor\license.json- Transmettez uniquement le fichier de demande à Raidho
- Lors d'un renouvellement, saisissez à nouveau le mot de passe du compte de service
- La licence annuelle inclut 14 jours de grâce après expiration
- Après expiration, les données existantes restent consultables mais les nouvelles collectes sont suspendues
08 · Dépannage
Les premiers contrôles utiles.
Consultez bootstrapper-config.log dans le répertoire ProgramData du produit.
C:\ProgramData\Raidho\CVAD Monitor\bootstrapper-config.logVérifiez db_datareader, DNS, SeBatchLogonRight et les journaux. Pour une instance nommée, testez SQL Browser UDP 1434 ou utilisez tcp:SERVEUR,PORT avec le port réel.
C:\ProgramData\Raidho\CVAD Monitor\Web\data\logs\collector.logContrôlez le site IIS Raidho CVAD Monitor, le port choisi et la règle pare-feu locale.
Contrôlez LastRunTime, LastTaskResult et le compte réellement utilisé par la tâche planifiée.
Dans collector.log, repérez le dernier marqueur Collection started et la version 1.2.15, puis l’étape et l’erreur qui suivent. Les anciennes traces peuvent appartenir à une exécution précédente. Le code 267014 (0x41306) signifie que la tâche a été arrêtée ; il ne prouve pas, à lui seul, un dépassement de délai. Vérifiez aussi l’historique du Planificateur de tâches.
