Journalisation de la configuration

La journalisation de la configuration est une fonctionnalité qui capture les modifications de configuration du site et les activités administratives dans la base de données. Cette fonctionnalité est activée par défaut. Vous pouvez utiliser le contenu journalisé pour :

  • Diagnostiquer et résoudre les problèmes après des modifications de configuration. Le journal fournit une piste d’audit.
  • Faciliter la gestion des changements et suivre les configurations.
  • Rapporter l’activité d’administration.

Vous définissez les préférences de journalisation de la configuration, affichez les journaux de configuration et générez des rapports HTML et CSV depuis Citrix Studio. Vous pouvez filtrer les affichages des journaux de configuration par plages de dates et par résultats de recherche en texte intégral. La journalisation obligatoire, lorsqu’elle est activée, empêche les modifications de configuration d’être effectuées à moins qu’elles ne puissent être journalisées. Avec l’autorisation appropriée, vous pouvez supprimer des entrées du journal de configuration. Vous ne pouvez pas utiliser la fonctionnalité de journalisation de la configuration pour modifier le contenu du journal.

La journalisation de la configuration utilise un SDK PowerShell et le service de journalisation de la configuration. Le service de journalisation de la configuration s’exécute sur chaque contrôleur du site. Si un contrôleur tombe en panne, le service sur un autre contrôleur gère automatiquement les requêtes de journalisation.

Par défaut, la fonctionnalité de journalisation de la configuration est activée et utilise la base de données créée lors de la création du site (la base de données de configuration du site). Vous pouvez spécifier un emplacement différent pour la base de données. La base de données de journalisation de la configuration prend en charge les mêmes fonctionnalités de haute disponibilité que la base de données de configuration du site.

L’accès à la journalisation de la configuration est contrôlé via l’administration déléguée, avec les autorisations Modifier les préférences de journalisation et Afficher les journaux de configuration.

Les journaux de configuration sont localisés lors de leur création. Par exemple, un journal créé en anglais est lu en anglais, quelle que soit la locale du lecteur.

Ce qui est journalisé

Les modifications de configuration et les activités administratives initiées depuis Studio, Director et les scripts PowerShell sont journalisées. Les exemples de modifications de configuration journalisées incluent le travail avec (création, modification, suppression, attribution) :

  • Catalogues de machines
  • Groupes de mise à disposition (y compris la modification des paramètres de gestion de l’alimentation)
  • Rôles et étendues d’administrateur
  • Ressources hôtes et connexions
  • Stratégies Citrix via Studio

Voici des exemples de modifications administratives enregistrées :

  • Gestion de l’alimentation d’une machine virtuelle ou d’un bureau utilisateur
  • Studio ou Director envoyant un message à un utilisateur

Les opérations suivantes ne sont pas enregistrées :

  • Opérations autonomes telles que la mise sous tension des machines virtuelles par la gestion de pools.
  • Actions de stratégie implémentées via la console de gestion des stratégies de groupe (GPMC) ; utilisez les outils Microsoft pour afficher les journaux de ces actions.
  • Modifications effectuées via le registre, l’accès direct à la base de données, ou à partir de sources autres que Studio, Director ou PowerShell.
  • Lorsque le déploiement est initialisé, la journalisation de la configuration devient disponible lorsque la première instance du service de journalisation de la configuration s’enregistre auprès du service de configuration. Par conséquent, les premières étapes de la configuration ne sont pas journalisées (par exemple, lorsque le schéma de la base de données est obtenu et appliqué, lorsqu’un hyperviseur est initialisé).

Gérer la journalisation de la configuration

Par défaut, la journalisation de la configuration utilise la base de données créée lors de la création d’un site (également appelée base de données de configuration du site). Citrix recommande d’utiliser un emplacement distinct pour la base de données de journalisation de la configuration (et la base de données de surveillance) pour les raisons suivantes :

  • La stratégie de sauvegarde de la base de données de journalisation de la configuration est susceptible de différer de la stratégie de sauvegarde de la base de données de configuration du site.
  • Le volume de données collectées pour la journalisation de la configuration (et le service de surveillance) pourrait affecter négativement l’espace disponible pour la base de données de configuration du site.
  • Cela divise le point de défaillance unique pour les trois bases de données.

Les éditions de produit qui ne prennent pas en charge la journalisation de la configuration n’ont pas de nœud Journalisation dans Studio.

Activer et désactiver la journalisation de la configuration et la journalisation obligatoire

Par défaut, la journalisation de la configuration est activée et la journalisation obligatoire est désactivée.

  1. Connectez-vous à Web Studio et sélectionnez Journalisation dans le volet gauche.
  2. Sélectionnez Préférences dans la barre d’actions. La boîte de dialogue de journalisation de la configuration contient des informations sur la base de données et indique si la journalisation de la configuration et la journalisation obligatoire sont activées ou désactivées.
  3. Sélectionnez l’action souhaitée :

    Pour activer la journalisation de la configuration, sélectionnez Activer. Il s’agit du paramètre par défaut. Si l’écriture dans la base de données est impossible, les informations de journalisation sont ignorées, mais l’opération se poursuit.

    Pour désactiver la journalisation de la configuration, sélectionnez Désactiver. Si la journalisation était précédemment activée, les journaux existants restent lisibles avec le SDK PowerShell.

    Pour activer la journalisation obligatoire, sélectionnez Empêcher les modifications de la configuration du site lorsque la base de données n’est pas disponible. Aucune modification de configuration ou activité administrative normalement journalisée n’est autorisée, sauf si elle peut être écrite dans la base de données de journalisation de la configuration. Vous ne pouvez activer la journalisation obligatoire que lorsque la journalisation de la configuration est activée (lorsque Activer est sélectionné). Si le service de journalisation de la configuration échoue et que la haute disponibilité n’est pas utilisée, la journalisation obligatoire est supposée. Dans de tels cas, les opérations qui seraient normalement journalisées ne sont pas effectuées.

    Pour désactiver la journalisation obligatoire, sélectionnez Autoriser les modifications de la configuration du site lorsque la base de données n’est pas disponible. Les modifications de configuration et les activités administratives sont autorisées, même si la base de données de journalisation de la configuration est inaccessible. Il s’agit du paramètre par défaut.

Modifier l’emplacement de la base de données de journalisation de la configuration

Vous ne pouvez pas modifier l’emplacement de la base de données lorsque la journalisation obligatoire est activée, car le changement d’emplacement inclut un bref intervalle de déconnexion qui ne peut pas être journalisé.

  1. Créez un serveur de base de données, en utilisant une version prise en charge de SQL Server.
  2. Connectez-vous à Web Studio et sélectionnez Journalisation dans le volet gauche.
  3. Sélectionnez Préférences dans la barre d’actions.
  4. Dans la boîte de dialogue Préférences de journalisation, sélectionnez Modifier la base de données de journalisation.
  5. Dans la boîte de dialogue Modifier la base de données de journalisation, spécifiez l’emplacement du serveur contenant le nouveau serveur de base de données. Consultez (/fr-fr/citrix-virtual-apps-desktops/2507-ltsr/technical-overview/databases.html#database-address-formats) pour les formats valides.
  6. Pour permettre à Studio de créer la base de données, cliquez sur OK. Lorsque vous y êtes invité, cliquez sur OK, et la base de données est créée automatiquement. Studio tente d’accéder à la base de données en utilisant les informations d’identification de l’utilisateur Studio actuel. Si cela échoue, vous êtes invité à saisir les informations d’identification de l’utilisateur de la base de données. Studio télécharge ensuite le schéma de la base de données dans celle-ci. (Les informations d’identification ne sont conservées que pendant la création de la base de données.)
  7. Pour créer la base de données manuellement, cliquez sur Générer le script de base de données. Le script généré inclut des instructions pour la création manuelle de la base de données. Assurez-vous que la base de données est vide et qu’au moins un utilisateur dispose des autorisations d’accès et de modification de la base de données avant de télécharger le schéma.

Les données de journalisation de la configuration de la base de données précédente ne sont pas importées dans la nouvelle base de données. Les journaux ne peuvent pas être agrégés à partir des deux bases de données lors de la récupération des journaux. La première entrée de journal dans la nouvelle base de données de journalisation de la configuration indique qu’un changement de base de données s’est produit, mais elle n’identifie pas la base de données précédente.

Afficher le contenu du journal de configuration

Pour afficher le contenu du journal de configuration, sélectionnez Journalisation dans le volet gauche, puis sélectionnez l’onglet Événements.

Par défaut, les journaux d’événements sont répertoriés par nom d’administrateur. Vous pouvez effectuer les tâches suivantes selon vos besoins :

  • Afficher les détails du journal. Une opération de haut niveau entraîne un ou plusieurs appels de service et SDK, qui sont des opérations de bas niveau. Lorsque vous sélectionnez une opération de haut niveau dans le volet supérieur, le volet inférieur affiche les opérations de bas niveau.
  • Trier l’affichage. Triez l’affichage en cliquant sur un en-tête de colonne.
  • Filtrer les journaux. Affinez l’affichage en définissant des conditions de filtre telles que des intervalles de jours ou des périodes personnalisées, ou en saisissant des noms de tâches principales complets ou partiels dans la zone de recherche. Pour revenir à l’affichage standard après avoir utilisé la recherche, effacez le texte dans la zone de recherche.
  • Exporter les journaux. Exportez les journaux sélectionnés ou tous les journaux vers un fichier CSV pour archivage ou analyse approfondie.
  • Personnaliser les colonnes. Adaptez l’affichage à vos besoins en ajoutant des colonnes non par défaut telles que l’adresse IP du client et les étiquettes.
  • Gérer les étiquettes. Ajoutez, modifiez et supprimez des étiquettes pour les journaux d’événements afin d’améliorer l’organisation et le suivi des journaux.

Caractéristiques d’affichage :

  • Si une opération échoue avant d’être terminée, l’opération de journalisation peut ne pas être terminée dans la base de données. Par exemple, un enregistrement de début n’a pas d’enregistrement de fin correspondant. Dans de tels cas, le journal indique qu’il manque des informations. Lorsque vous affichez les journaux en fonction de plages horaires, les journaux incomplets sont affichés si les données correspondent aux critères.

    Par exemple, si vous demandez les journaux des cinq derniers jours, et qu’un journal avec une heure de début au cours des cinq derniers jours n’a pas d’heure de fin, il est inclus.

  • Lorsque vous utilisez un script qui appelle des cmdlets PowerShell, si vous créez une opération de bas niveau sans spécifier d’opération de haut niveau parente, la journalisation de la configuration crée une opération de haut niveau de substitution.

Générer des rapports

Vous pouvez générer des rapports CSV et HTML contenant les données du journal de configuration.

  • Le rapport CSV contient toutes les données de journalisation d’un intervalle de temps spécifié. Les données hiérarchiques de la base de données sont aplaties en une seule table CSV. Aucun aspect des données n’a de priorité dans le fichier. Aucun formatage n’est utilisé et aucune lisibilité humaine n’est supposée. Le fichier (nommé MyReport) contient les données dans un format universellement consommable. Les fichiers CSV sont souvent utilisés pour archiver des données ou comme source de données pour un outil de création de rapports ou de manipulation de données tel que Microsoft Excel.
  • Le rapport HTML fournit une forme lisible par l’homme des données de journalisation pour un intervalle de temps spécifié. Il offre une vue structurée et navigable pour l’examen des modifications. Un rapport HTML comprend deux fichiers, nommés Résumé et Détails. Le Résumé répertorie les opérations de haut niveau : quand chaque opération a eu lieu, par qui et le résultat. Cliquer sur un lien Détails à côté de chaque opération vous amène aux opérations de bas niveau dans le fichier Détails, qui fournit des informations supplémentaires.

Pour générer un rapport de journal de configuration, sélectionnez Journalisation dans le volet de navigation de Studio, puis sélectionnez Créer un rapport personnalisé dans la barre d’actions.

  • Sélectionnez la plage de dates pour le rapport.
  • Sélectionnez le format du rapport : CSV, HTML ou les deux.
  • Accédez à l’emplacement où vous souhaitez enregistrer le rapport.

Supprimer le contenu du journal de configuration

Pour supprimer le journal de configuration, vous devez disposer de certaines autorisations d’administration déléguée et de base de données SQL Server.

  • Administration déléguée : Vous devez disposer d’un rôle d’administration déléguée qui permet la lecture de la configuration du déploiement. Le rôle d’administrateur complet dispose de cette autorisation. Un rôle personnalisé doit avoir Lecture seule ou Gérer sélectionné dans la catégorie Autres autorisations.

    Pour créer une sauvegarde des données de journalisation de la configuration avant de les supprimer, le rôle personnalisé doit également avoir Lecture seule ou Gérer sélectionné dans la catégorie Autorisations de journalisation.

  • Base de données SQL Server : Vous devez disposer d’un identifiant de connexion SQL Server avec l’autorisation de supprimer des enregistrements de la base de données. Il existe deux façons de procéder :

    • Utilisez un identifiant de connexion de base de données SQL Server avec un rôle de serveur sysadmin, ce qui vous permet d’effectuer n’importe quelle activité sur le serveur de base de données. Alternativement, les rôles de serveur serveradmin ou setupadmin vous permettent d’effectuer des opérations de suppression.

    • Si votre déploiement nécessite plus de sécurité, utilisez un identifiant de connexion de base de données non-sysadmin mappé à un utilisateur de base de données qui a l’autorisation de supprimer des enregistrements de la base de données.

      1. Dans SQL Server Management Studio, créez un identifiant de connexion SQL Server avec un rôle de serveur autre que ‘sysadmin’.
      2. Mappez l’identifiant de connexion à un utilisateur dans la base de données. SQL Server crée automatiquement un utilisateur dans la base de données portant le même nom que l’identifiant de connexion.
      3. Dans l’appartenance au rôle de base de données, spécifiez au moins un des membres de rôle pour l’utilisateur de base de données : ConfigurationLoggingSchema_ROLE ou dbowner.

      Pour plus d’informations, consultez la documentation de SQL Server Management Studio.

Pour supprimer les journaux de configuration :

  1. Connectez-vous à Web Studio et sélectionnez Journalisation dans le volet gauche.
  2. Sélectionnez Supprimer les journaux dans la barre d’actions.
  3. Il vous est demandé si vous souhaitez créer une sauvegarde des journaux avant leur suppression. Si vous choisissez de créer une sauvegarde, accédez à l’emplacement où l’archive de sauvegarde est enregistrée. La sauvegarde est créée sous forme de fichier CSV.

Une fois les journaux de configuration effacés, la suppression des journaux est la première activité enregistrée dans le journal vide. Cette entrée fournit des détails sur la personne qui a supprimé les journaux et à quel moment.

Afficher les journaux d’API et PowerShell

Pour surveiller les requêtes API effectuées pendant votre session actuelle, cliquez sur l’onglet API. Les journaux d’API sont effacés après votre déconnexion de Web Studio.

Pour afficher les commandes PowerShell correspondant aux actions d’interface utilisateur que vous avez effectuées pendant la journée, cliquez sur l’onglet PowerShell.

Associer des métadonnées aux journaux de configuration

Vous pouvez associer des métadonnées aux journaux de configuration en associant une paire name-value appelée MetadataMap aux enregistrements de journal.

Remarque :

  • Vous ne pouvez associer des métadonnées qu’aux objets d’opération de haut niveau.
  • Les métadonnées sont associées aux enregistrements existants au moment de l’exécution.

Définir les métadonnées

Exécutez la commande PowerShell Set-LogHighLevelOperationMetadata pour associer un enregistrement de journal à la MetadataMap. Set-LogHighLevelOperationMetadata prend les paramètres suivants :

  • Id : ID de l’opération de haut niveau.
  • InputObject : Opérations de haut niveau auxquelles vous ajoutez les métadonnées. Il s’agit d’une alternative au paramètre Id où un objet d’opération de haut niveau ou une liste d’objets est passé à la commande PowerShell.
  • Name : Nom de la propriété des métadonnées à ajouter. La propriété doit être unique pour l’opération de haut niveau spécifiée. La propriété ne peut pas contenir les caractères suivants ()\/;:#.*?=<> []”’.
  • Value : Valeur de la propriété.
  • Map : Dictionnaire de paires (nom, valeur) pour les propriétés. Il s’agit d’une alternative à la définition des métadonnées à l’aide des paramètres -Name et -Value.

Par exemple, pour associer les métadonnées à tous les enregistrements de journal de haut niveau avec l’ID 40, exécutez la commande PowerShell suivante :

Get-LogHighLevelOperation – Id 40 | Set-LogHighLevelOperationMetadata -Name A -Value B

Pour associer les métadonnées à l’enregistrement de haut niveau avec l’utilisateur abc@example.com, exécutez la commande PowerShell suivante :

Get-LogHighLevelOperation – User `abc@example.com` | Set-LogHighLevelOperationMetadata -Name C -Value D

Récupérer à l’aide des métadonnées

Exécutez les commandes PowerShell suivantes pour utiliser les métadonnées associées afin de récupérer les enregistrements de journal :

  • Rechercher par clé et valeur :

    Get-LogHighLevelOperation -Metadata "Key:Value"

  • Rechercher par valeur n’importe quelle clé :

    Get-LogHighLevelOperation -Metadata "*:Value"

  • Rechercher par clé et n’importe quelle valeur :

    Get-LogHighLevelOperation -Metadata "Key:*"

Supprimer les métadonnées

Exécutez la commande PowerShell Remove-LogHighLevelOperationMetadata pour supprimer les métadonnées associées. Remove-LogHighLevelOperationMetadata prend les paramètres suivants :

  • Id : ID de l’opération de haut niveau.
  • InputObject : Les opérations de haut niveau auxquelles vous ajoutez les métadonnées. Il s’agit d’une alternative au paramètre Id où un objet d’opération de haut niveau ou une liste d’objets est passé à la commande PowerShell.
  • Name : Nom de la propriété des métadonnées à supprimer. Définissez sur $null pour supprimer toutes les métadonnées de l’objet spécifié.
  • Map : Dictionnaire de paires (nom, valeur) pour les propriétés. Il peut s’agir d’une table de hachage (créée avec @{“name1” = “val1”; “name2” = “val2”}) ou d’un dictionnaire de chaînes (créé avec new-object “System.Collections.Generic.Dictionary[String, String]”). Les propriétés dont les noms correspondent aux clés de la carte sont supprimées.