Erreur Web Interface : Invalid URI: The hostname could not be parsed.

Quoi de plus énervant que de retrouver des journaux Windows pollués d’erreurs à ne plus en finir, c’est dans ce contexte que nous avons trouvé certaines Web Interface.

 

Les Web Interface en questions (Windows 2008 Us R2, Web Interface 5.4) généraient l’Event ID 21002 toutes les 3 secondes :

Log Name:      Application
Source:        Citrix Web Interface
Event ID:      21002
Task Category: None
Level:         Error
Keywords:      Classic
Description:
Site path: C:\inetpub\wwwroot\Citrix\Site1.
Critical server error: System.UriFormatException: Invalid URI: The hostname could not be parsed.

 

Event21002_01Il ne reste plus qu’à trouver la source

Event21002_02Inutile de nous faire le coup du “mais où est ton Logstash, ElasticSearch et Kibana ou mieux ton SexiLog pour Citrix” 🙂

Event21002_03Un Wireshark après nous avons trouvé la cause, un cluster de F5 qui monitorait un Site Webi via un GET /Citrix/Site1/auth/login.aspx.

Event21002_04Une fois le monitor corrigé (via un Get sur le site webi  /Citrix/Site1, sans auth/login.aspx) par nos collègues F5.

Post to Twitter

Web Interface erreur : 404 – File or directory not found

Suite à une mise à jour de Web Interface 5.4.059 vers 5.4.2.59 (OS : 2008 R2 sp1 US), des sites affichait un message “404 – File or directory not found”  après l’authentification.


Wi_error1Bien que non bloquant pour lancer une application publiée, ça fait moyen en prod.


Comme le message est explicite, nous avons regardé dans le WebInterface.conf et avons constaté que la partie AppSysMessage_fr pointait sur un chemin incomplet (au passage ce chemin passait en 5.4.059) :

AppSysMessage_fr=<iframe src=’Msg_Info.html’ width=’650′ height=’200′ align=center seamless frameborder=0></iframe>


En corrigeant le chemin de l’ifram src comme ci-dessous l’erreur 404 n’apparaît plus.

AppSysMessage_fr=<iframe src=’..\site\Msg_Info.html’ width=’650′ height=’200′ align=center seamless frameborder=0></iframe>


Wi_error2Une fois le WebInterface.conf corrigé

Post to Twitter

MonitorX (us version)

MonitorX is a Zabbix non-official appliance dedicated to “XenApp” (which uses the XenApp 6.5 template). It allows you to monitor your XenApp 6.5 environment, including your Web Interface/StoreFront/NetScaler 10.x.

The appliance runs on a Debian Wheezy 7.8 (2 vCPU, 4Gb RAM and 40Gb thin provisioned disk), configured to use DHCP with the following modules:

  • apache2
  • mysql-server + mysql-client
  • php5-mysql libapache2-mod-php5
  • phpmyadmin
  • zabbix 2.4.4
  • zabbix agent 2.2.7

Continue reading “MonitorX (us version)”

Post to Twitter

MonitorX (fr version)

MonitorX est une appliance non officielle ZABBIX dédiée “XenApp” (qui reprend notamment le template XenApp 6.5), permettant rapidement et simplement de superviser/Monitorer un environnement XenApp 6.5 (avec ses Webi /StoreFront/Netscaler 10x. ).

L’appliance repose sur une Debian Wheezy 7.8, (2 Vcpu, 4Go de ram et 40 Go de DD en thin) en DHCP (le mot de passe root est “password!01” on vous conseille fortement de le changer) avec les modules ci-dessous :

  • apache2
  • mysql-server + mysql-client
  • php5-mysql libapache2-mod-php5
  • phpmyadmin
  • zabbix 2.4.4
  • zabbix agent 2.2.7

 

Au préalable, si vous ne connaissez pas ZABBIX , nous vous conseillons d’aller faire un tour sur http://www.zabbix.com et http://www.monitoring-fr.org/solutions/zabbix/.

Dans un premier temps, veuillez décompacter le fichier MonitorX.rar (607 Mo), une fois décompacté vous obtenez deux dossiers :

  • Le dossier OVA qui contient l’ova à importer
  • Le dossier Zabbix_agent qui contient l’agent zabbix windows (avec le script permettant l’installation de l’agent et le service associé)

 

Installation de l’appliance :

  1. Importez dans votre hyperviseur favori l’ova “MonitorX.ova” (dans notre cas Esxi 5.5)
  2. Configurez la partie IP si vous ne souhaitez pas rester en DHCP (attention si vous changez le nom du Hostname (ZAB01 par défaut), pensez à changer aussi le nom du hostname dans Zabbix, voir en fin de billet)
    1. Connectez-vous en SSH (via PuTTY par exemple et choisissez le menu 5) via le compte root (mot de passe : password!01)

Menu-MonitorX
Les fans de Sexilog auront reconnu le SexiMenu que nous avons adapté à MonitorX 🙂

 

Lancez dans un navigateur l’url “http://IpMonitorX”

MonitorX_acceuile_ZabbixRenseignez les champs Username (admin) et Password (zabbix)

 

Activation du serveur Zabbix :

  1. Allez dans Configuration-Host

MonitorX_EnableSrv_ZabbixCliquez sur Disabled afin d’activer la supervision/monitoring serveur Zabbix

Ajout des hosts :

  1. Déploiement de l’agent Zabbix  sur vos serveurs XenApp
    1. Copiez le répertoire  “Zabbix_Agent_Install” sur un serveur d’administration de votre ferme XenApp.
    2. Exécutez dans une console PowerShell le script “Zabbix_Agent_Install.ps1”.
    3. Via le menu vous pourrez :
      – Modifiez l’IP du server Zabbix (renseigné dans le fichier zabbix_agentd.win.conf)
      – Déployez l’agent Zabbix sur tous les serveurs membres de la ferme XenApp en cours
      – Ouvrir et modifiez le fichier contenant la liste des serveurs sur lesquels vous souhaitez déployer l’agent Zabbix ( si vous ne souhaitez pas déployer    l’agent Zabbix sur tous les serveurs membres de la ferme XenApp en cours)
      – Déployez l’agent Zabbix sur les serveurs inscrits dans le fichier Servers.txt

MonitorXMenuLa première étape est de changer l’IP du serveur Zabbix configuré par l’IP de votre serveur MonitorX (menu 1)
Une fois le déploiement terminé, un fichier de log (StatutAgentInstall.txt) est disponible dans le dossier Zabbix_Agent_Install.

  1. Ajoutez vos hosts dans Zabbix
    1. Via le discovery rule “XenApp_Discover” (allez dans Configuration-Discovery, modifiez le range IP de la règle “XenApp_Discover”, activez la règle et cliquez sur Update).
    2. Ajoutez les hosts manuellement (pour les courageux 🙂  )
      • Ajoutez les  hosts XenApp dans le groupe “GRP_Citrix_XenApp_6.5”
      • Associez les hosts XenApp au template “TPL_Citrix_XenApp_6.5”
      • Associez les hosts de type Webi/StoreFront (Windows 2008 R2) au template “TPL_Windows_IIS_7.5”

 

Si vous utilisez Edgesight (plus pour très longtemps 😉 ) ou UPM il vous faudra activez les items dans le template “TPL_Citrix_XenApp_6.5”.
Allez Dans l’onglet Configuration-Template , puis cliquez sur TPL_Citrix_XenApp_6.5 et allez dans Items.

MonitorXTemplate_ItemsDisabledCliquez sur Disabled afin d’activer les items

 

Renommez le serveur dans Zabbix (Si vous avez renommé le serveur MonitorX):

  • Connectez-vous en SSH sur le serveur MonitorX
  • Lancez la commande “vi /etc/zabbix/web/zabbix.conf.php”

MonitorX_ZabbixHostnameVi
Modifiez le nom du serveur Zabbix ($ZBX_SERVER = ‘ZAB01’; et $ZBX_SERVER_NAME = ‘ZAB01’; ) et enregistrez le fichier (commande vi “:wq”), pour les réfractaires au “vi” vous pouvez passer par WinSCP.

Si vous ne renommez pas le Hostname dans Zabbix vous obtiendrez l’erreur ci-dessous :

Zabbix server is not running: the information displayed may not be current

ZabbisErrorPas d’inquiétude cependant, ce message dans le cas présent n’a pas d’impact sur les mises à jour des hosts ou autres

 

 

Administrer la base Zabbix
http://IpMonitorX/phpmyadmin ( root/password!01)

 

Et voila ce que ça donne 🙂 .

MonitorXSrvLes graphiques par host (onglet screen de chaque host)

 

 MonitorXAllSrv
Le graphique des CCU de la ferme XenApp (Onglet Monitoring-Screens)

 

Download_2MonitorX.rar

Post to Twitter

Erreur HTTP : Error 503 sur Web Interface

Suite à une mise à jour sur nos Web Interface (5.4 us /2008 R2 us) de prod (suppression de sites XenApp Web) nous avons rencontré sur deux Web Interface une erreur HTTP 503 (Service Unavailable).


Http503_1

 

Vu que seuls les sites XenApp Web étaient impactés (IIS était ok, la création d’un site et son accès répondait bien), nous avons regardé du coté de IIS, et en cliquant sur l’application Pools (bien sur nous ne sommes pas tombés directement dessus 😉 ), nous avons constaté que “CitrixWebInterface5.4.0AppPool” était arrêté.

 

Http503_2C’est sûr que ça risquait de marcher la

 

Une fois l’application pool “CitrixWebInterface5.4.0AppPool” démarrée, l’erreur HTTP 503  n’apparaissait plus.

Afin de checker les sites XenApp Web de nos différentes Web Interface, nous avons mis en place un script PowerShell permettant de vérifier si les différentes url répondent bien.  Dans un second temps  en parcourant l’outil de supervision (Zabbix) de notre client actuel,  nous avons remarqué que le check d’URL est possible via un scénario web qui lui même va checker les différentes url de nos sites Web Interface (avec un trigger afin de générer une alerte dans Zabbix).

 

Zabbix_WebuiDans notre cas nous avons créé le scénario web dans un template que nous appliquons à nos Web Interface

 

Zabbix01
Une fois l’étape du scénario créée le check d’url est réalisé

 

Zabbix_Webui_XenApp_triggerLe trigger que nous avons associé à notre scénario Web, si le dernier check est différent de 0 (check ok) alors une alerte avec un statut haut remontera dans Zabbix

 

Http503_3
Le résultat de la supervision Web dans Zabbix

 

Concernant le script Powershell, il faut au préalable :

  1. Modifier en ligne 2 du script les Web Interface à checker
  2. Modifier l’url à checker en ligne 7 du script

 

WebiCheckPour la partie PowerShell, si vous avez pas d’outil de surpervision ou autres solution alors à l’ancienne une tache planifiée (en dernier recours)

 

Download_2
Check_Url_Webi.ps1

Post to Twitter

Exclusions antivirus


MAJ : 04/01/2017
Ajout d’une exclusion dans la section UPM


Ajout de l’exclusion : %ProgramFiles%\Citrix\User Profile Manager\Driver\UpmJit.sys


MAJ : 07/10/2015
Ajout de la section PVS servers


Récemment nous avons du mettre  en place des exclusions antivirus (pour des clients SEP 11 ) destinées à des environnements XenApp (5,6.0 et 6.5), et comme à chaque fois on avait pas sous la main une trame générique regroupant les principales exclusions antivirus Microsoft et Citrix .

Afin de ne plus chercher,  nous avons regroupé les principales exclusions dans ce billet.

 

W2K8 R2 

EdgeSight Exclusions Agent

  • %ALLUSERSPROFILE%\Application Data\Citrix\System Monitoring\Data
  • %ProgramFiles%\Citrix\System Monitoring\Agent\Core\rscorsvc.exe
  • %ProgramFiles%\ Citrix\System Monitoring\Agent\Core\Firebird\bin\fbserver.exe

XenApp 6.5 Exclusions

  • %ProgramFiles(x86)%\Citrix\Group Policy\Client-Side Extension\CitrixCseEngine.exe
  • %ProgramFiles(x86)%\Citrix\System32\wfshell.exe
  • %ProgramFiles(x86)%\Citrix\System32\ctxxmlss.exe
  • %ProgramFiles(x86)%\Citrix\System32\CtxSvcHost.exe
  • %ProgramFiles(x86)%\Citrix\System32\mfcom.exe
  • %ProgramFiles(x86)%\Citrix\System32\Citrix\Ima\ImaSrv.exe
  • %ProgramFiles(x86)%\Citrix\System32\Citrix\Ima\IMAAdvanceSrv.exe
  • %ProgramFiles(x86)%\Citrix\HealthMon\HCAService.exe
  • %ProgramFiles(x86)%\Citrix\Streaming Client\RadeSvc.exe
  • %ProgramFiles(x86)%\Citrix\Streaming Client\RadeHlprSvc.exe
  • %ProgramFiles(x86)%\Citrix\Independent Management Architecture\RadeOffline.mdb
  • %ProgramFiles(x86)%\Citrix\Independent Management Architecture\imalhc.mdb

Windows Exclusions

  • %windir%\SoftwareDistribution\Datastore\Datastore.edb
  • %windir%\SoftwareDistribution\Datastore\Logs\*.log
  • %windir%\SoftwareDistribution\Datastore\Logs\*.jrs
  • %windir%\SoftwareDistribution\Datastore\Logs\Edb.chk
  • %windir%\SoftwareDistribution\Datastore\Logs\Tmp.edb
  • %windir%\Security\Database\*.edb
  • %windir%\Security\Database\*.sdb
  • %windir%\Security\Database\*.log
  • %windir%\Security\Database\*.chk
  • %windir%\Security\Database\*.jrs
  • %allusersprofile%\NTUser.pol
  • %windir%\System32\GroupPolicy\Machine\Registry.pol
  • %windir%\system32\csrss.exe
  • %windir%\system32\spoolsv.exe
  • %windir%\system32\winlogon.exe
  • %windir%\system32\userinit.exe
  • %windir%\system32\smss.exe
  • %windir%\System32\Spool

UPM

  • %ProgramFiles%\Citrix\User Profile Manager\UserProfileManager.exe
  • %ProgramFiles%\Citrix\User Profile Manager\Driver\UpmJit.sys

PVS (servers)

  • %windir%\System32\drivers\CvhdBusP6.sys
  • %windir%\System32\drivers\CfsDep2.sys
  • %ProgramFiles%\Citrix\Provisioning Services\BNTFTP.EXE
  • %ProgramData%\Citrix\Provisioning Services\Tftpboot\ARDBP32.BIN
  • %ProgramFiles%\Citrix\Provisioning Services\StreamService.exe
  • %ProgramFiles%\Citrix\Provisioning Services\StreamProcess.exe
  • %ProgramFiles%\Citrix\Provisioning Services\soapserver.exe
  • %ProgramFiles%\Citrix\Provisioning Services\PVSTSB.exe
  • %ProgramFiles%\Citrix\Provisioning Services\BNAbsService.exe
  • %ProgramFiles%\Citrix\Provisioning Services\Notifier.exe (à partir de PVS 6.0)
  • %ProgramFiles%\Citrix\Provisioning Services\MgmtDaemon.exe (à partir de PVS 6.0)
  • %ProgramFiles%\Citrix\Provisioning Services\Inventory.exe (à partir de PVS 6.0)
  • …\Store (chemin du répertoire hébergeant les vDisk store)

PVS (poste cible)

  • %ProgramFiles%\Citrix\Provisioning Services\drivers\CNicTeam.sys
  • %ProgramFiles%\Citrix\Provisioning Services\BNDevice.exe
  • %ProgramFiles%\Citrix\Provisioning Services\drivers\BNIStack6.sys
  • %ProgramFiles%\Citrix\Provisioning Services\drivers\CVhdBusp6.sys
  • …\.vdiskcache (emplacement du fichier de cache vdisk)
  • %ProgramFiles%\Citrix\Provisioning Services\TargetOSOptimizer.exe
  • %ProgramFiles%\Citrix\Provisioning Services\drivers\CFsDep2.sys

 

W2K3 (32 bits)

EdgeSight Exclusions Agent

  • %ALLUSERSPROFILE%\Application Data\Citrix\System Monitoring\Data
  • %ProgramFiles%\Citrix\System Monitoring\Agent\Core\rscorsvc.exe
  • %ProgramFiles%\ Citrix\System Monitoring\Agent\Core\Firebird\bin\fbserver.exe

XenApp Exclusions

  • %ProgramFiles%\Citrix\System32\wfshell.exe
  • %ProgramFiles%\Citrix\System32\ctxxmlss.exe
  • %ProgramFiles%\Citrix\System32\mfcom.exe
  • %ProgramFiles%\Citrix\System32\Citrix\Ima\ImaSrv.exe
  • %ProgramFiles%\Citrix\System32\Citrix\Ima\IMAAdvanceSrv.exe
  • %ProgramFiles%\Citrix\HealthMon\HCAService.exe
  • %ProgramFiles%\Citrix\Streaming Client\RadeSvc.exe
  • %ProgramFiles%\Citrix\Independent Management Architecture\RadeOffline.mdb
  • %ProgramFiles%\Citrix\Independent Management Architecture\imalhc.mdb

Windows Exclusions

  • %windir%\SoftwareDistribution\Datastore\Datastore.edb
  • %windir%\SoftwareDistribution\Datastore\Logs\*.log
  • %windir%\SoftwareDistribution\Datastore\Logs\*.jrs
  • %windir%\SoftwareDistribution\Datastore\Logs\Edb.chk
  • %windir%\SoftwareDistribution\Datastore\Logs\Tmp.edb
  • %windir%\Security\Database\*.edb
  • %windir%\Security\Database\*.sdb
  • %windir%\Security\Database\*.log
  • %windir%\Security\Database\*.chk
  • %windir%\Security\Database\*.jrs
  • %allusersprofile%\NTUser.pol
  • %Systemroot%\System32\GroupPolicy\Machine\Registry.pol
  • %SystemRoot%\system32\csrss.exe
  • %SystemRoot%\system32\spoolsv.exe
  • %SystemRoot%\system32\winlogon.exe
  • %SystemRoot%\system32\userinit.exe
  • %SystemRoot%\system32\smss.exe
  • %systemroot%\System32\Spool

UPM

  • %ProgramFiles%\Citrix\User Profile Manager\UserProfileManager.exe

 

W2K3 64 bits

EdgeSight Exclusions Agent

  • %ALLUSERSPROFILE%\Application Data\Citrix\System Monitoring\Data
  • %ProgramFiles%\Citrix\System Monitoring\Agent\Core\rscorsvc.exe
  • %ProgramFiles%\ Citrix\System Monitoring\Agent\Core\Firebird\bin\fbserver.exe

XenApp Exclusions

  • %SystemRoot%\system32\csrss.exe
  • %SystemRoot%\system32\spoolsv.exe
  • %SystemRoot%\system32\winlogon.exe
  • %SystemRoot%\system32\userinit.exe
  • %SystemRoot%\system32\smss.exe
  • %ProgramFiles(x86)%\Citrix\System32\wfshell.exe
  • %ProgramFiles(x86)%\Citrix\System32\ctxxmlss.exe
  • %ProgramFiles(x86)%\Citrix\System32\mfcom.exe
  • %ProgramFiles(x86)%\Citrix\System32\Citrix\Ima\ImaSrv.exe
  • %ProgramFiles(x86)%\Citrix\System32\Citrix\Ima\IMAAdvanceSrv.exe
  • %ProgramFiles(x86)%\Citrix\HealthMon\HCAService.exe
  • %ProgramFiles(x86)%\Citrix\Streaming Client\RadeSvc.exe
  • %ProgramFiles(x86)%\Citrix\Independent Management Architecture\RadeOffline.mdb
  • %ProgramFiles(x86)%\Citrix\Independent Management Architecture\imalhc.mdb

Windows Exclusions

  • %SystemRoot%\SoftwareDistribution\Datastore\Datastore.edb
  • %SystemRoot%\SoftwareDistribution\Datastore\Logs\*.log
  • %SystemRoot%\SoftwareDistribution\Datastore\Logs\*.jrs
  • %SystemRoot%\SoftwareDistribution\Datastore\Logs\Edb.chk
  • %SystemRoot%\SoftwareDistribution\Datastore\Logs\Tmp.edb
  • %SystemRoot%\Security\Database\*.edb
  • %SystemRoot%\Security\Database\*.sdb
  • %SystemRoot%\Security\Database\*.log
  • %SystemRoot%\Security\Database\*.chk
  • %SystemRoot%\Security\Database\*.jrs
  • %allusersprofile%\NTUser.pol
  • %Systemroot%\System32\GroupPolicy\Machine\Registry.pol
  • %SystemRoot%\system32\csrss.exe
  • %SystemRoot%\system32\spoolsv.exe
  • %SystemRoot%\system32\winlogon.exe
  • %SystemRoot%\system32\userinit.exe
  • %SystemRoot%\system32\smss.exe
  • %systemroot%\System32\Spool

UPM

  • %ProgramFiles(x86)%\Citrix\User Profile Manager\UserProfileManager.exe

 

Web Interface

  • %SystemRoot%\system32\LogFiles
  • %systemroot%\system32\inetsrv

 

EdgeSight Server

  • %SystemRoot%\system32\LogFiles
  • %systemroot%\system32\inetsrv
  • %ProgramFiles%\Citrix\System Monitoring\Server\EdgeSight\scripts\rssh
  • %ProgramFiles%\Citrix\System Monitoring\Server\EdgeSight\Pages

 

Serveur de Licence Citrix

  • %ProgramFiles(x86)%\Citrix\Licensing
  • %systemroot%\system32\inetsrv
  • %SystemRoot%\system32\LogFiles

 

Serveur de Licence RDS

  • %SystemRoot%\System32\LServer\*.edb
  • %SystemRoot%\System32\LServer\*.log
  • %SystemRoot%\System32\LServer\*.tmp
  • %SystemRoot%\System32\LServer\*.chk

 

Quelques liens sur les exclusions antivirus Microsoft et Citrix :

Post to Twitter

Problème pour forcer l’adresse Ip dans un launch.ica

Toujours dans la série post-it (rentrée des classes oblige), récemment nous avons rencontré un problème pour forcer l’adresse IP serveur dans un launch.ica via une WebInterface 5.4 (2003 sp1 us). 
Dans pareil cas on se tourne rapidement vers le webinterface.conf du site afin de modifier l’addressResolutionType pour forcer le type de résolution (dns-port, dns, ipv4-port, ipv4).

ResolXml03

 

ResolXml01Dans notre cas le WebInterface.conf était configuré pour présenter des adresses dns (configuration par défaut)

 

Pour le coup normal que les launch.ica présentent des adresses dns, cependant une fois le webinterface.conf modifié (addressResolutionType=ipv4-port) afin de présenter des adresses Ip nos launch.ica présentaient toujours des adresses dns.

Après un moumoutage (french expression very famous 🙂 ) de 20 mn, direction les propriétés de la ferme (XenApp 5 R07, 2003 sp1 us) dans la partie XenApp-General la coche XML Service DNS address Resolution était coché .

 

ResolXml02Sous XenApp5 

  

ResolXml05 Sous XenApp 6.5 (dans stratégie ordinateur-Paramètre du serveur)

 

ResolXml04Une fois l’XML service DNS adress resolution décoché nous obtenons bien une adresse en Ip dans le launch.ica 

 

Post to Twitter

Script : Check XML Broker

Comme vous le savez le rôle XML Broker est important au sein d’une ferme XenApp, et à ce titre un check de ce dernier est très fortement recommandé (si vous souhaitez en savoir plus sur les interactions entres une Web-Interface et un XML Broker alors direction la CX122877).

Xml_schema

 Un schéma simplifié d’une architecture XenApp (issus de support.citrix.com)

 

Il existe nativement des solutions permettant de checker les XML Brokers (Netscaler et F5 par exemple), mais si comme nous dans votre infra le matériel acheté et “censé”  faire ce check ne le fait pas et que l’affaire tourne en rond, alors il vous reste la solution scripting (afin de laisser le temps au fameux matériel de pouvoir répondre au besoin 🙂 ).

panneau signalétique rue Marettes

 

Avant de scripter il faut déjà comprendre ce qu’il faut envoyer à l’XML Broker et ce qu’il doit nous répondre, ce type d’infos se trouve dans le pdf “Health Checking Citrix Services with Advanced Monitors from the NetScaler Application Switch ” (dont nous vous recommandons la lecture), en page 12 nous trouvons la requete HTTP à envoyer à l’xml broker ainsi que la réponse si tout est ok

La requête Http (au format xml), avec comme application publiée “Notepad_Netscaler” pour le check  :

<?xml version=”1.0″ encoding=”UTF-8″?>
<!DOCTYPE NFuseProtocol SYSTEM “NFuse.dtd”>
<NFuseProtocol version=”4.1″>
<RequestAddress>
<Flags>no-load-bias</Flags> ###
<Name>
<AppName>Notepad_Netscaler</AppName>
</Name>
</RequestAddress>
</NFuseProtocol>

La réponse de l’XML Broker si tout est ok :

<?xml version=”1.0″ encoding=”UTF-8″ ?>
<!DOCTYPE NFuseProtocol SYSTEM “NFuse.dtd”>
<NFuseProtocol version=”4.1″>
<ResponseAddress>
<ServerAddress addresstype=”dot”>5.214.10.251</ServerAddress>
<ServerType>win32</ServerType>
<ConnectionType>tcp</ConnectionType>
<ClientType>ica30</ClientType>
<TicketTag>IMAHostId:13093</TicketTag>
<FarmLoadHint>0</FarmLoadHint>
</ResponseAddress>
</NFuseProtocol>

Comme indiqué en page 13 du pdf, ce qui nous intéresse dans la réponse de l’XML Broker est la partie <TicketTag>, donc si tout va bien on obtient un TicketTag, inversement si la requête échoue nous n’avons pas de TicketTag dans la réponse.

Xml_Error1Exemple de réponse sans TicketTag (pour le test nous avions désactiver l’application Notepad_Netscaler)

 

Afin que le check passe bien il faut s’assurer que (toujours page 12 du pdf) :

  • L’IMA est bien fonctionnel sur l’XML Broker checker
  • La LHC de l’XML Broker est valide
  • L’IMA est fonctionnel sur le ZDC
  • La base de donnée dynamique du ZDC est valide
  • Avoir un serveur XenApp disponible pour l’application publiée (dans notre cas “notepad”)
  • Le service XML de l’XML Broker fonctionne correctement

Concernant le script nous nous sommes inspirés des scripts trouvés sur http://stackoverflow.com (Powershell API Post Variable to Ducksboard et powershell http post REST API basic authentication).

Au passage nous avons rajouté un envoi de mail en cas d’échec sur un XML Broker (à terme nous enverrons une trape snmp). 

Dans notre production nous avons mis en place le script Check_Xml.ps1 en tache planifiée (toutes les 5 mn 7/24).

Xml_scriptSi vous recevez ce type de mail…. rien ne va plus (mais au moins vous êtes au courant 😉 )

 

 

Download_2Check_Xml.ps1

Post to Twitter

F5 et les accents sur une application publiée

Il y a quelques temps certains de nos utilisateurs rencontraient un message d’erreur (“This published application currently is not available – Try connecting again later“) lors du lancement d’une application via des Web Interface (5.4 us – Windows 2008 R2 sp1 us) positionnées derrière des F5.

En regardant le launch.ica on s’aperçoit que le nom de l’application comporte un Ã suivie d’un ©  en lieu et place d’un “é”, on comprend vite que le F5 réécrit le launch.ica et qu’il n’aime pas les é 🙂 .


Une fois le nom de l’application modifié (remplacement du é par un e) le launch.ica est correctement réécrit par le F5 et l’application se lance sans problème.

 En attendant un correctif de chez F5, il vous faut supprimer les é dans le nom de vos applications 🙂 .

Les F5 en question étaient des 1600/3600 (BIG-IP 11.2.0 Build 2451.0 Hotfix HF1)

Post to Twitter

Cacher des applications dans une Web Interface

Récemment nous souhaitions cacher des applications publiées d’un site Web Interface sur un pool de Web Interface  5.4 (us) dédiées, sans modifier le fichier WebInterface.conf (voir la CTX122133 qui au passage nous avait déjà rendu service 🙂 ).
 


L’idée était de le faire via le champ description des applications (comme la CTX123969 mais qui ne fonctionne qu’avec les sites XenApp Services) et de modifier le champs description d’une ou plusieurs applications publiées via un script powershell (tout en gardant l’ancienne description).

Nous somme tombés sur un post de Miguel Contreras sur le Citrix blog qui justement met en ligne un code à insérer dans le fichier global.asax.cs et qui correspond exactement à notre recherche.

Une fois le fichier global.asax.cs modifié il ne reste plus qu’à rajouter au début du champs description des applications un “@” (dans notre cas nous avions remplacé le @ par la chaîne =HIDE=).

Par contre ne pas perdre de vu que si vous cachez toutes les applications d’un dossier Web Interface, le dossier sera quand même visible dans la Web Interface 😉 .


global.asax.cs

App_Change_Description.ps1


Post to Twitter