Linux Virtual Delivery Agent

Collecte des journaux

Présentation du mécanisme de journalisation

Le tableau suivant présente un aperçu du mécanisme de journalisation pour le VDA Linux.

Module de journalisation Format du nom de fichier journal Exemple de nom de fichier journal Portée de la journalisation Taille maximale d’un fichier unique Seuil de rotation (valeurs par défaut) Configuration
HDX hdx.log[.n] hdx.log, hdx.log.1 Graphiques, connexion, audio, clavier, souris 200 MiB 1 actuel, 2 anciens Configurable via l’utilitaire setlog
Jproxy jproxy.log[.n.log] jproxy.log, jproxy.log.1.log Enregistrement VDA, authentification utilisateur 20 MiB 1 actuel, 10 anciens Configurable via l’utilitaire setlog ou /etc/xdl/log4j2.xml
VDA vda.AAAA-MM-JJ.hh.mm.ss.log vda.2024-05-06.20.18.40.log Enregistrement VDA 50 MiB 1 actuel, 1 ancien Configurable via l’utilitaire setlog ou /etc/xdl/brokeragent.conf

Remarque :

  • Le premier fichier journal n’a pas de numéro dans son nom, et les fichiers suivants sont numérotés avec « .n » où « n » représente le numéro du fichier. Par exemple, « hdx.log » est le premier fichier journal HDX et « hdx.log.1 » est le second.
  • La taille maximale d’un fichier journal unique est mesurée en mébioctets (MiB).
  • Un fichier journal en cours de génération et n’ayant pas encore atteint la taille maximale pour un fichier unique est appelé fichier journal « actuel ». Lorsqu’un fichier journal « actuel » atteint la taille maximale pour un fichier unique, il est transféré et devient un fichier journal « ancien ».
  • Le seuil de rotation est configurable pour limiter le nombre de fichiers journaux « anciens » pouvant être conservés. Les fichiers journaux les plus anciens seront supprimés lorsque la limite sera atteinte.

Configuration de la journalisation

Cette section fournit des informations supplémentaires sur la configuration de la journalisation, complétant les détails décrits dans le tableau ci-dessus.

Journalisation activée par défaut pour le VDA Linux

Le démon ctxlogd et l’utilitaire setlog sont inclus dans le package de publication du VDA Linux. Par défaut, le démon ctxlogd démarre après l’installation et la configuration du VDA Linux. Tous les autres services tracés dépendent du démon ctxlogd. Vous pouvez arrêter le démon ctxlogd si vous ne souhaitez pas que le VDA Linux soit tracé.

Configurer la journalisation VDA via /etc/xdl/brokeragent.conf

Remarque :

Si vous souhaitez configurer uniquement les niveaux de journalisation pour le VDA sans vous pencher sur d’autres paramètres de journalisation tels que la taille maximale d’un fichier journal unique, vous pouvez utiliser l’utilitaire setlog décrit plus loin dans cet article. Sinon, utilisez /etc/xdl/brokeragent.conf.

Le fichier /etc/xdl/brokeragent.conf sur le VDA est disponible pour configurer la journalisation VDA. Par exemple :

Le fichier /etc/xdl/brokeragent.conf

Configurer la journalisation Jproxy via /etc/xdl/log4j2.xml

Remarque :

Si vous souhaitez configurer uniquement les niveaux de journalisation pour Jproxy sans vous pencher sur d’autres paramètres de journalisation tels que la taille maximale d’un fichier journal unique, vous pouvez utiliser l’utilitaire setlog décrit plus loin dans cet article. Sinon, utilisez /etc/xdl/log4j2.xml.

Voici un exemple de configuration de la journalisation Jproxy via /etc/xdl/log4j2.xml, dont le paramètre SizeBasedTriggeringPolicy spécifie la taille maximale d’un fichier journal Jproxy unique et le paramètre DefaultRollerStrategy définit le nombre total de fichiers journaux Jproxy pouvant être conservés.

Configurer la journalisation Jproxy

Configurer la journalisation HDX™ via l’utilitaire setlog

L’utilitaire setlog se trouve sous le chemin /opt/Citrix/VDA/bin/. Seul l’utilisateur root a le privilège de l’exécuter. Vous pouvez utiliser l’interface graphique ou exécuter des commandes pour afficher et modifier vos options de configuration, y compris les valeurs (chemin du fichier journal, limite de taille d’un fichier unique et seuil de rotation) et les niveaux de journalisation. Exécutez la commande suivante pour obtenir de l’aide sur l’utilitaire setlog :

setlog help
<!--NeedCopy-->

Valeurs

Par défaut, les journaux HDX sont enregistrés sous /var/log/xdl/hdx.log, la limite de taille pour un fichier journal HDX unique est de 200 MiB, et vous pouvez enregistrer jusqu’à deux fichiers journaux HDX « anciens » sous /var/log/xdl/hdx.log.

Pour afficher toutes les valeurs setlog actuelles, exécutez la commande suivante :

setlog values

log_path (Log Output Path) = /var/log/xdl/hdx.log

log_size (Max Log Size (MiB)) = 200

log_count (Max Old Log Files) = 2
<!--NeedCopy-->

Pour afficher ou définir une seule valeur setlog, exécutez la commande suivante :

setlog value <name> [<value>]
<!--NeedCopy-->

Par exemple :

setlog value log_size 100
<!--NeedCopy-->

Niveaux

Par défaut, les niveaux de journalisation sont définis sur info (insensible à la casse).

Lorsque vous rencontrez un problème nécessitant un dépannage, nous vous recommandons de définir le niveau de journalisation sur verbose dans la plupart des scénarios. Ensuite, reproduisez le problème et collectez les journaux.

Pour définir les niveaux de journalisation (y compris Disabled, Inherited, Trace, Verbose, Information, Warnings, Errors et Fatal Errors), exécutez la commande suivante :

-  setlog level <class> [<level>]
<!--NeedCopy-->
Niveau de journalisation Paramètre de commande (insensible à la casse)
Désactivé none
Hérité inherit
Trace trace
Détaillé verbose
Informations info
Avertissements warning
Erreurs error
Erreurs fatales fatal

La variable <class> spécifie un composant du VDA Linux. Pour couvrir tous les composants, définissez-la sur all. Par exemple :

setlog level all error
<!--NeedCopy-->

Pour afficher toutes les classes ou composants pris en charge, exécutez la commande suivante :

setlog levels
<!--NeedCopy-->

Restaurer les valeurs par défaut

Rétablir tous les niveaux et toutes les valeurs aux paramètres par défaut :

setlog default
<!--NeedCopy-->

Important :

Le service ctxlogd est configuré à l’aide du fichier /var/xdl/.ctxlog, que seuls les utilisateurs root peuvent créer. Les autres utilisateurs n’ont pas l’autorisation d’écriture sur ce fichier. Nous recommandons aux utilisateurs root de ne pas accorder l’autorisation d’écriture à d’autres utilisateurs. Le non-respect de cette consigne peut entraîner une configuration arbitraire ou malveillante de ctxlogd, ce qui peut affecter les performances du serveur et, par conséquent, l’expérience utilisateur.

Collecte des journaux

Vous pouvez exécuter la commande bash /opt/Citrix/VDA/bin/xdlcollect.sh pour collecter les journaux. Le script Bash xdlcollect utilisé pour collecter les journaux est intégré au logiciel VDA Linux et se trouve sous /opt/Citrix/VDA/bin.

Une fois la collecte des journaux terminée, un fichier ZIP est généré sous /tmp/xdlcollect sur le VDA.

Collecte et téléchargement des journaux AOT

Présentation

Cette fonctionnalité collecte les journaux Always-On Tracing (AOT) (traçage permanent) des composants sur le Virtual Delivery Agent (VDA). Elle prend en charge :

  • Le dépannage des problèmes difficiles à reproduire
  • Les vérifications quotidiennes de l’état de santé
  • La gestion centralisée des journaux

Les journaux sont transformés en événements structurés et téléchargés vers un serveur de journaux centralisé pour interrogation et analyse.

Configuration

Configuration de la stratégie de groupe

Pour activer cette fonctionnalité via la stratégie de groupe, assurez-vous que le serveur de journaux est correctement configuré sur le Delivery Controller (DDC). Les étapes sont les suivantes :

  1. Sur Citrix Studio, cliquez sur Paramètres->Serveur de journaux->Modifier

Serveur de journaux AOT

  1. Définissez l’adresse et le port du serveur de journaux pour activer le transfert des journaux vers le serveur de journaux

Configuration des journaux AOT

Configuration du registre local

Les registres locaux ont une priorité plus élevée que les stratégies. Pour activer cette fonctionnalité via le registre local, exécutez les commandes suivantes sur le VDA (remplacez <ip> et <port> par les vôtres) :

Activer la collecte de données AOT :

Définir le point de terminaison du serveur de journaux :

sudo /opt/Citrix/VDA/bin/ctxreg create \ 
  -k "HKLM\System\CurrentControlSet\Control\Citrix\AOT" \ 
  -t "REG_DWORD" \ 
  -v "EnableAotDataCollection" \ 
  -d "0x00000001" --force 

sudo /opt/Citrix/VDA/bin/ctxreg create \ 
  -k "HKLM\System\CurrentControlSet\Control\Citrix\AOT" \ 
  -t "REG_SZ" \ 
  -v "AotDataStoreEndpoint" \ 
  -d "<http/https>://<fqdn-or-ip-address>:<port>" --force
<!--NeedCopy-->

Une fois que les paramètres de stratégie poussés depuis Studio changent, ou que les paramètres du registre local changent, le service ctxvector appliquera automatiquement le changement en moins d’une minute. Il n’est pas nécessaire de le redémarrer manuellement.

Authentification TLS

Cette fonctionnalité prend en charge les connexions HTTP et HTTPS au serveur de journaux. Pour HTTPS, installez les certificats d’autorité de certification racine dans le magasin de clés du système Linux. Le VDA ne peut établir une connexion HTTPS avec succès qu’après avoir authentifié le certificat du serveur de journaux. Le serveur de journaux n’authentifie pas le VDA.

Dépannage

Le démon ctxlogd échoue et vous ne pouvez pas redémarrer le service ctxlogd lorsque le fichier /var/xdl/.ctxlog est manquant (par exemple, supprimé accidentellement).

/var/log/messages:

Apr 1 02:28:21 RH72 citrix-ctxlogd[17881]: Failed to open logging configuration file.

Apr 1 02:28:21 RH72 systemd: ctxlogd.service: main process exited, code=exited, status=1/FAILURE

Apr 1 02:28:21 RH72 systemd: Unit ctxlogd.service entered failed state.

Apr 1 02:28:21 RH72 systemd: ctxlogd.service failed.
<!--NeedCopy-->

Pour résoudre ce problème, exécutez setlog en tant qu’utilisateur root pour recréer le fichier /var/xdl/.ctxlog. Redémarrez ensuite le service ctxlogd dont dépendent d’autres services.