Configurer un serveur de rapports sur un cluster avec équilibrage de la charge réseau

Si vous configurez le scale-out du serveur de rapports en vue de son exécution sur un cluster avec équilibrage de la charge réseau (NLB, Network Load Balancing), vous devez effectuer les opérations suivantes :

  • S'assurer que le cluster avec équilibrage de la charge réseau est accessible via un nom de serveur virtuel mappé avec l'adresse IP du serveur virtuel. Un nom de serveur virtuel est nécessaire pour configurer un point d'entrée unique au cluster avec équilibrage de la charge réseau. Lorsque vous configurerez une URL pour chaque instance du serveur de rapports, spécifiez le nom du serveur virtuel en tant qu’hôte.

  • Configurez la validation de l'état d'affichage pour prendre en charge la consultation des rapports interactifs. Les rapports interactifs sont en général restitués à plusieurs reprises au cours d'une session mono-utilisateur afin de permettre la visualisation de données nouvelles ou différentes en réponse aux actions de l'utilisateur. Configurer la validation de l'état d'affichage assure la continuité au cours de la session utilisateur quel que soit le serveur de rapports qui répond à la demande réelle.

Reporting Services ne fournit pas de fonctionnalités pour l’équilibrage de charge d’un déploiement en scale-out ni pour la définition d’un point d’accès unique via une URL partagée. Vous devez implémenter une solution logicielle ou matérielle distincte de cluster avec équilibrage de la charge réseau afin de prendre en charge un déploiement en scale-out de Reporting Services.

Vous pouvez installer Reporting Services sur les nœuds qui font déjà partie d’un cluster avec équilibrage de la charge réseau, ou bien configurer d’abord un déploiement en scale-out, puis installer le logiciel de cluster.

Étapes pour le déploiement du serveur de rapports sur un cluster avec équilibrage de la charge réseau (NLB)

Appuyez-vous sur les indications suivantes pour installer et configurer votre déploiement :

Étape Description Plus d’informations
1 Avant d'installer Reporting Services sur les nœuds de serveurs d'un cluster avec équilibrage de la charge réseau, vérifiez les spécifications du déploiement avec montée en puissance parallèle. Configurer un déploiement en scale-out de serveurs de rapports en mode natif
2 Configurez le cluster avec équilibrage de la charge réseau (NLB) et vérifiez son bon fonctionnement.

Veillez à mapper un nom d'en-tête de l'hôte à l'adresse IP du serveur virtuel du cluster avec équilibrage de la charge réseau. Le nom d'en-tête de l'hôte est utilisé dans l'URL du serveur de rapports et présente l'avantage d'être plus facile à retenir et à taper qu'une adresse IP.
Pour plus d'informations, consultez la documentation Windows Server correspondant à la version du système d'exploitation Windows que vous exécutez.
3 Ajoutez le nom NetBIOS et le nom de domaine complet (FQDN) pour l’en-tête de l’hôte dans la liste des BackConnectionHostNames stockés dans la base de registre Windows.

Par exemple, si le nom d’en-tête de l’hôte <MyServer> est un nom virtuel pour le nom de l’ordinateur Windows « contoso », vous pouvez probablement référencer le formulaire FQDN sous la forme contoso.domain.com. Vous devez ajouter le nom d’en-tête de l’hôte (MyServer) et le nom de domaine complet (contoso.domain.com) à la liste dans BackConnectionHostNames.

Puis redémarrez l’ordinateur pour vous assurer que ces modifications sont appliquées.
Cette étape est requise si votre environnement serveur implique l'authentification NTLM sur l'ordinateur local, créant une connexion de retour de boucle.

Si tel est le cas, les requêtes entre le Gestionnaire de rapports et le serveur de rapports échouent avec l’erreur 401 (Non autorisé).
4 Installer Reporting Services en mode fichiers uniquement sur les nœuds qui font déjà partie d’un cluster avec équilibrage de la charge réseau et configurer les instances du serveur de rapports pour un déploiement en scale-out.

La montée en puissance parallèle que vous configurez ne répond pas aux demandes adressées à l'IP du serveur virtuel. La configuration de la montée en puissance parallèle pour l'utilisation de l'IP du serveur virtuel intervient à un stade ultérieur, après la configuration de la validation de l'état d'affichage.
Configurer un déploiement en scale-out de serveurs de rapports en mode natif (Gestionnaire de configuration du serveur de rapports)
5 Configurez la validation de l'état d'affichage.

Pour de meilleurs résultats, effectuez cette étape après avoir configuré le déploiement avec montée en puissance parallèle et avant de configurer les instances du serveur de rapports pour l'utilisation de l'IP du serveur virtuel. En configurant d'abord la validation de l'état d'affichage, vous pouvez éviter les exceptions sur l'échec de la validation de l'état quand les utilisateurs tentent d'accéder aux rapports interactifs.
Comment configurer la validation de l’état d’affichage dans cet article.
6 Configurer Hostname et UrlRoot pour utiliser l'adresse IP de serveur virtuel du cluster avec équilibrage de la charge réseau. Comment configurer le nom d’hôte et UrlRoot dans cet article.
7 Vérifiez que les serveurs sont accessibles via le nom d'hôte que vous avez spécifié. Vérifier l’accès au serveur de rapports dans cet article.

Configurer la validation de l’état d’affichage

Pour exécuter un déploiement avec montée en puissance parallèle sur un cluster avec équilibrage de la charge réseau, vous devez configurer la validation de l'état d'affichage afin que les utilisateurs puissent consulter les rapports HTML interactifs. Vous devez configurer la validation de l’état d’affichage pour le service Web Report Server.

Pour exécuter un déploiement avec montée en puissance parallèle sur un cluster avec équilibrage de la charge réseau, vous devez configurer la validation de l'état d'affichage afin que les utilisateurs puissent consulter les rapports HTML interactifs.

ASP.NET contrôle la validation de l’état d’affichage. Par défaut, la validation de l'état d'affichage est activée et utilise l'identité du service Web pour effectuer la validation. Toutefois, dans un scénario de cluster avec équilibrage de la charge réseau, il existe plusieurs instances de services et plusieurs identités de services Web qui s'exécutent sur différents ordinateurs. L’identité du service étant différente pour chaque nœud, vous ne pouvez pas vous fier à une identité de processus unique pour effectuer la validation.

Pour contourner ce problème, vous pouvez générer une clé de validation arbitraire pour prendre en charge la validation de l'état d'affichage, puis configurer manuellement chaque nœud de serveur de rapports de manière à ce qu'il utilise la même clé. Vous pouvez utiliser n'importe quelle séquence hexadécimale générée de façon aléatoire. L'algorithme de validation (tel que SHA1) détermine la longueur que doit avoir la séquence hexadécimale.

S’applique à : SQL Server Reporting Services (2016)

  1. Autogénérez une clé de validation et une clé de déchiffrement en utilisant la fonctionnalité fournie par .NET Framework. À la fin, vous devez avoir une entrée <machineKey> unique que vous pouvez coller dans le fichier Web.config pour chaque instance du serveur de rapports dans le déploiement en scale-out.

    L'exemple suivant illustre la valeur que vous devez obtenir. Ne copiez pas cet exemple dans vos fichiers de configuration, car les valeurs de clé ne sont pas valides.

    <machineKey validationKey="123455555" decryptionKey="678999999" validation="SHA1" decryption="AES"/>  
    
  2. Ouvrez le fichier Web.config pour Reportserver puis, dans la section <system.web>, collez l’élément <machineKey> que vous avez généré. Par défaut, le fichier Web.config se trouve à l’emplacement \Program Files\Microsoft SQL Server\MSRS13.MSSQLSERVER\Reporting Services\Reportserver\Web.config.

  3. Enregistrez le fichier.

  4. Répétez l'étape précédente pour chaque serveur de rapports impliqué dans le déploiement avec montée en puissance parallèle.

  5. Vérifiez que les fichiers Web.Config de tous les serveurs de rapports concernés par le déploiement en scale-out contiennent tous des éléments <machineKey> identiques dans la section <system.web>.

S'applique à : SQL Server Reporting Services (2017 et ultérieur) Power BI Report Server

  1. Autogénérez une clé de validation et une clé de déchiffrement en utilisant la fonctionnalité fournie par .NET Framework. À la fin, vous devez avoir une entrée <machineKey> unique que vous pouvez coller dans le fichier RSReportServer.config pour chaque instance du serveur de rapports dans le déploiement en scale-out.

    L'exemple suivant illustre la valeur que vous devez obtenir. Ne copiez pas cet exemple dans vos fichiers de configuration, car les valeurs de clé ne sont pas valides. La casse correcte doit être utilisée pour le serveur de rapports.

    <MachineKey ValidationKey="123455555" DecryptionKey="678999999" Validation="SHA1" Decryption="AES"/>
    
  2. Ouvrez le fichier RSReportServer.config pour Reportserver puis, dans la section <Configuration>, collez l’élément <machineKey> que vous avez généré. Par défaut, le fichier RSReportServer.config se trouve à l’emplacement \Program Files\Microsoft SQL Server Reporting Services\SSRS\ReportServer\RSReportServer.config pour Reporting Services. Pour Power BI Report Server, le fichier se trouve dans \Program Files\Microsoft Power BI Report Server\PBIRS\ReportServer\RSReportServer.config.

  3. Enregistrez le fichier.

  4. Répétez l'étape précédente pour chaque serveur de rapports impliqué dans le déploiement avec montée en puissance parallèle.

  5. Vérifiez que les fichiers RSReportServer.config de tous les serveurs de rapports concernés par le déploiement en scale-out contiennent tous des éléments <MachineKey> identiques dans la section <Configuration>.

Comment configurer Hostname et UrlRoot

Pour configurer un déploiement avec montée en puissance parallèle du serveur de rapports sur un cluster avec équilibrage de la charge réseau, vous devez définir un seul nom de serveur virtuel qui fournit un point d'accès unique au cluster de serveurs. Puis, inscrivez le nom du serveur virtuel auprès du serveur de noms de domaine de votre environnement.

Après avoir défini le nom du serveur virtuel, vous pouvez configurer les propriétés Hostname et UrlRoot du fichier RSReportServer.config de façon à inclure le nom du serveur virtuel dans l’URL du serveur de rapports.

Configurez la propriété Hostname lorsque vous utilisez des réservations d’URL spécifiant des caractères génériques dans votre environnement de création de rapports. Lorsque vous spécifiez la propriété Hostname comme nom de serveur virtuel du serveur avec équilibrage de la charge réseau, le trafic réseau de l'environnement de création de rapports est dirigé vers le serveur avec équilibrage de la charge réseau. Le serveur NLB distribue ensuite les demandes parmi les nœuds du serveur de rapports.

En outre, configurez la propriété UrlRoot afin que les liens du rapport fonctionnent dans les rapports exportés vers des rapports statiques, tels que ceux au format Excel ou PDF, ou dans les rapports créés par abonnements, tels que les abonnements de messagerie électronique.

Si vous intégrez Reporting Services à Windows SharePoint Services 3.0 ou à Office SharePoint Server 2007, ou que vous hébergez vos rapports dans une application Web personnalisée, il se peut que vous ayez besoin de configurer seulement la propriété UrlRoot. Dans ce cas, configurez la propriété UrlRoot comme URL du site SharePoint ou de l'application Web. Cette configuration dirige le trafic réseau de l’environnement de création de rapports vers l’application qui traite les rapports plutôt que vers le serveur de rapports ou le cluster avec équilibrage de la charge réseau (NLB).

Ne modifiez pas ReportServerUrl. Si vous modifiez cette URL, vous introduisez un aller-retour supplémentaire vers le serveur virtuel chaque fois qu’une requête interne est traitée. Pour plus d’informations, consultez URL des fichiers de configuration (Gestionnaire de configuration du serveur de rapports). Pour plus d’informations sur la modification du fichier de configuration, consultez Modifier un fichier de configuration Reporting Services (RSreportserver.config).

  1. Ouvrez RSReportServer.config dans un éditeur de texte.

  2. Recherchez la section <Service> et ajoutez les informations suivantes au fichier de configuration, en remplaçant la valeur Hostname par le nom de serveur virtuel de votre serveur avec équilibrage de la charge réseau (NLB) :

    <Hostname>virtual_server</Hostname>  
    
  3. Recherchez UrlRoot. L’élément n’est pas spécifié dans le fichier de configuration, mais la valeur par défaut utilisée est une URL au format https:// ou https://<computername>/<reportserver>, où <reportserver> est le nom du répertoire virtuel du service Web Report Server.

  4. Saisissez une valeur pour UrlRoot qui inclut le nom virtuel du cluster au format https:// ou https://<virtual_server>/<reportserver>.

  5. Enregistrez le fichier.

  6. Répétez ces étapes dans chaque fichier RSReportServer.config de chaque serveur de rapports impliqué dans le déploiement en scale-out.

Vérifier l’accès au serveur de rapports

Vérifiez que vous avez accès au déploiement avec montée en puissance parallèle par le biais du nom du serveur virtuel (par exemple, https://MyVirtualServerName/reportserver et https://MyVirtualServerName/reports).

Vous pouvez vérifier quel nœud traite effectivement les rapports en examinant les fichiers journaux du serveur de rapports ou en vérifiant le journal d’exécution Reporting Services (la table du journal d’exécution contient une colonne InstanceName qui indique quelle instance a traité une demande particulière). Pour plus d’informations, consultez Fichiers journaux et sources de Reporting Services.

Si vous ne pouvez pas vous connecter au serveur de rapports, vérifiez l’équilibrage de la charge réseau (NLB). Assurez-vous que des requêtes sont envoyées au serveur de rapports et consultez le journal HTTP du serveur de rapports pour vérifier que le serveur reçoit bien les requêtes.

Dépannage des requêtes en échec

Si les requêtes n’atteignent pas les instances du serveur de rapports, consultez le fichier RSReportServer.config pour vérifier que le nom du serveur virtuel est spécifié comme nom d’hôte pour les URL du serveur de rapports :

  1. Ouvrez le fichier RSReportServer.config dans un éditeur de texte.

  2. Recherchez <Hostname>, <ReportServerUrl> et <UrlRoot>, et vérifiez le nom d’hôte pour chaque paramètre. Si la valeur n’est pas le nom d’hôte attendu, remplacez-le par le nom d’hôte approprié.

Si vous démarrez l’outil de configuration Reporting Services après avoir effectué ces modifications, l’outil peut remplacer les paramètres <ReportServerUrl> par la valeur par défaut. Conservez toujours une copie de sauvegarde des fichiers de configuration au cas où vous auriez besoin de les remplacer par la version qui contient les paramètres à utiliser.

Configurer une URL (Gestionnaire de configuration du serveur de rapports)
Configurer un déploiement en scale-out de serveurs de rapports en mode natif (Gestionnaire de configuration du serveur de rapports)
Gestionnaire de configuration du serveur de rapports (mode natif)
Gérer un serveur de rapports Reporting Services en mode natif