Configurare un server di report in un cluster per il bilanciamento del carico di rete

Se si intende configurare la scalabilità orizzontale di un server di report per l'esecuzione in un cluster per il bilanciamento del carico di rete (NLB, Network Load Balancing), è necessario effettuare le seguenti attività:

  • Verificare che il cluster per il bilanciamento del carico di rete sia accessibile tramite un nome del server virtuale di cui viene eseguito il mapping all'indirizzo IP del server virtuale. Un nome del server virtuale è necessario per poter configurare un singolo punto di ingresso nel cluster per il bilanciamento del carico di rete. Quando si configura un URL per ogni istanza del server di report, è necessario specificare il nome del server virtuale come host.

  • Configurare la convalida dello stato di visualizzazione per supportare la visualizzazione di report interattivi. Il rendering dei report interattivi viene in genere eseguito diverse volte durante una singola sessione utente per visualizzare dati nuovi o diversi in risposta alle azioni dell'utente. La configurazione della convalida dello stato di visualizzazione consente di mantenere la continuità all'interno della sessione utente, indipendentemente dal server di report che risponde alla richiesta effettiva.

Reporting Services non fornisce la funzionalità per il bilanciamento del carico di una distribuzione con scalabilità orizzontale, né per la definizione di un singolo punto di accesso tramite un URL condiviso. È necessario implementare una soluzione cluster separata di bilanciamento del carico di rete software o hardware per supportare una distribuzione con scalabilità orizzontale di Reporting Services.

È possibile installare Reporting Services in nodi che fanno già parte di un cluster per il bilanciamento del carico di rete oppure configurare prima una distribuzione con scalabilità orizzontale e quindi installare il software del cluster.

Passaggi per la distribuzione del server di report in un cluster per il bilanciamento del carico di rete

Per installare e configurare la distribuzione, utilizzare le linee guida seguenti:

Procedi Descrizione Altre informazioni
1 Prima di installare Reporting Services nei nodi del server in un cluster per il bilanciamento del carico di rete, verificare i requisiti per la distribuzione con scalabilità orizzontale. Configurare una distribuzione con scalabilità orizzontale di un server di report in modalità nativa
2 Configurare il cluster per il bilanciamento del carico di rete e verificarne il corretto funzionamento.

Assicurarsi di eseguire il mapping di un nome dell'intestazione host all'IP del server virtuale del cluster per il bilanciamento del carico di rete. Il nome dell'intestazione host viene utilizzato nell'URL del server di report ed è più semplice da ricordare e digitare rispetto a un indirizzo IP.
Per ulteriori informazioni, vedere la documentazione di Windows Server relativa alla versione del sistema operativo Windows utilizzato.
3 Aggiungere il nome del NetBIOS e il nome di dominio completo (FQDN) per l'intestazione host all'elenco di BackConnectionHostNames archiviato nel Registro di sistema di Windows.

Ad esempio, se il nome dell'intestazione host < MyServer> è un nome virtuale per il nome computer Windows "contoso", probabilmente è possibile fare riferimento al modulo FQDN come contoso.domain.com. È necessario aggiungere sia il nome dell'intestazione host (MyServer) che il nome FQDN (contoso.domain.com) all'elenco in BackConnectionHostNames.

Riavviare quindi il computer per assicurarsi che le modifiche diventino effettive.
Questo passaggio è obbligatorio se l'ambiente server implica l'autenticazione NTLM sul computer locale, creando una connessione loopback.

In tal caso, le richieste tra Gestione report e Server di report restituiscono un errore 401 (Unauthorized).
4 Installare Reporting Services in modalità solo file in nodi che appartengono già a un cluster di bilanciamento del carico di rete e configurare le istanze del server di report per la distribuzione con scalabilità orizzontale.

La scalabilità orizzontale configurata potrebbe non rispondere a richieste indirizzate all'IP del server virtuale. La configurazione della scalabilità orizzontale per l'utilizzo dell'IP del server virtuale viene effettuata in un passaggio successivo, dopo la configurazione della convalida dello stato di visualizzazione.
Configurare una distribuzione con scalabilità orizzontale del server di report in modalità nativa (Gestione configurazione server report)
5 Configurare la convalida dello stato di visualizzazione.

Per ottenere risultati ottimali, eseguire questo passaggio dopo avere configurato la distribuzione con scalabilità orizzontale e prima di configurare le istanze del server di report per l'utilizzo dell'IP del server virtuale. Configurando innanzitutto la convalida dello stato di visualizzazione, è possibile evitare eccezioni a causa di errori di convalida dello stato quando gli utenti tentano di accedere a report interattivi.
Come configurare la convalida dello stato di visualizzazione in questo articolo.
6 Configurare Hostname e UrlRoot per l'utilizzo dell'IP del server virtuale del cluster per il bilanciamento del carico di rete. Come configurare Hostname e UrlRoot in questo articolo.
7 Verificare che sia possibile accedere ai server tramite il nome host specificato. Verificare l'accesso al server di report in questo articolo.

Configurare la convalida dello stato di visualizzazione.

Per eseguire una distribuzione con scalabilità orizzontale in un cluster per il bilanciamento del carico di rete, è necessario configurare la convalida dello stato di visualizzazione in modo che gli utenti possano visualizzare report HTML interattivi. È necessario configurare la convalida dello stato di visualizzazione per il servizio Web ReportServer.

Per eseguire una distribuzione con scalabilità orizzontale in un cluster per il bilanciamento del carico di rete, è necessario configurare la convalida dello stato di visualizzazione in modo che gli utenti possano visualizzare report HTML interattivi.

Convalida dello stato di visualizzazione con controlli ASP.NET è abilitata per impostazione predefinita e utilizza l'identità del servizio Web per eseguire la convalida. In uno scenario di cluster per il bilanciamento del carico di rete, tuttavia, sono presenti più istanze del servizio e identità del servizio Web eseguite in computer diversi. Poiché l'identità del servizio varia per ciascun nodo, non è possibile basarsi su una singola identità del processo per eseguire la convalida.

Per risolvere questo problema, è possibile generare una chiave di convalida arbitraria per supportare la convalida dello stato di visualizzazione e quindi configurare manualmente ciascun nodo del server di report per l'utilizzo della stessa chiave. È possibile utilizzare qualsiasi sequenza esadecimale generata casualmente. L'algoritmo di convalida, ad esempio SHA1, determina la lunghezza della sequenza esadecimale.

Si applica a:✅ SQL Server Reporting Services (2016)

  1. Generare automaticamente una chiave di convalida e una chiave di decrittografia usando la funzionalità disponibile in .NET Framework. In ultima analisi è necessario avere un'unica voce <machineKey> da incollare nel file Web.config per ogni istanza del server di report presente nella distribuzione con scalabilità orizzontale.

    Nell'esempio seguente viene illustrato il valore che è necessario ottenere: Non copiare l'esempio nei file di configurazione in uso, in quanto i valori di chiave non sono validi.

    <machineKey validationKey="123455555" decryptionKey="678999999" validation="SHA1" decryption="AES"/>  
    
  2. Aprire il file Web.config per Reportserver e nella sezione <system.web> incolla l'elemento <machineKey> generato. Per impostazione predefinita, il file Web.config è disponibile in \Program Files\Microsoft SQL Server\MSRS13.MSSQLSERVER\Reporting Services\Reportserver\Web.config:

  3. Salvare il file.

  4. Ripetere il passaggio precedente per ogni server di report presente nella distribuzione con scalabilità orizzontale.

  5. Verificare che tutti i file Web.Config per tutti i server di report nella distribuzione con scalabilità orizzontale contengano elementi <machineKey> identici nella sezione <system.web>.

Si applica a:✅ SQL Server Reporting Services (2017 e versioni successive) ✅ Server di report di Power BI

  1. Generare automaticamente una chiave di convalida e una chiave di decrittografia usando la funzionalità disponibile in .NET Framework. In ultima analisi è necessario avere un'unica voce <machineKey> da incollare nel file RSReportServer.config per ogni istanza del server di report presente nella distribuzione con scalabilità orizzontale.

    Nell'esempio seguente viene illustrato il valore che è necessario ottenere: Non copiare l'esempio nei file di configurazione in uso, in quanto i valori di chiave non sono validi. Il server di report richiede le maiuscole e minuscole corrette.

    <MachineKey ValidationKey="123455555" DecryptionKey="678999999" Validation="SHA1" Decryption="AES"/>
    
  2. Aprire il file RSReportServer.config per Reportserver e nella sezione <Configuration> incolla l'elemento <machineKey> generato. Per impostazione predefinita, il file RSReportServer.config si trova in \Program Files\Microsoft SQL Server Reporting Services\SSRS\ReportServer\RSReportServer.config per Reporting Services. Per Server di report di Power BI, il file si trova in \Program Files\Microsoft Power BI Report Server\PBIRS\ReportServer\RSReportServer.config.

  3. Salvare il file.

  4. Ripetere il passaggio precedente per ogni server di report presente nella distribuzione con scalabilità orizzontale.

  5. Verificare che tutti i file RSReportServer.config per tutti i server di report nella distribuzione con scalabilità orizzontale contengano elementi <MachineKey> identici nella sezione <Configuration>.

Modalità di configurazione Hostname e UrlRoot

Per configurare una distribuzione con scalabilità orizzontale del server di report in un cluster per il bilanciamento del carico di rete, è necessario definire un unico nome del server virtuale che fornisce un singolo punto di accesso al cluster di server. Successivamente, registrare il nome del server virtuale con Domain Name Server (DNS) nel proprio ambiente.

Dopo avere definito il nome del server virtuale, è possibile configurare le proprietà Hostname e UrlRoot nel file RSReportServer.config per includere tale nome nell'URL del server di report.

Configurare la proprietà Hostname quando si utilizzano prenotazioni URL con caratteri jolly nell'ambiente di gestione dei report. Quando si specifica la proprietà Hostname come nome del server virtuale del server con bilanciamento del carico di rete, il traffico di rete relativo all'ambiente di gestione dei report viene indirizzato a quest'ultimo server, che distribuisce quindi le richieste tra i nodi del server di report.

Configurare inoltre la proprietà UrlRoot in modo che i collegamenti al report funzionino nei report esportati in report statici, ad esempio in formato Excel o PDF, oppure in report generati da sottoscrizioni, ad esempio una sottoscrizione con recapito tramite posta elettronica.

Se si integra Reporting Services con Windows SharePoint Services 3.0 o Office SharePoint Server 2007 oppure si ospitano i report in un'applicazione Web personalizzata, potrebbe essere necessario configurare solo la proprietà UrlRoot. In questo caso, configurare la proprietà UrlRoot in modo che rappresenti l'URL del sito di SharePoint o dell'applicazione Web. In questo modo il traffico di rete relativo all'ambiente di gestione dei report viene indirizzato all'applicazione che gestisce i report anziché al server di report o al cluster per il bilanciamento del carico di rete.

Non modificare ReportServerUrl. Se si modifica questo URL, si introduce un ulteriore round trip attraverso il server virtuale ogni volta che viene gestita una richiesta interna. Per altre informazioni, vedere URL nei file di configurazione (Gestione configurazione del server di report). Per altre informazioni sulla modifica del file di configurazione, vedere Modificare un file di configurazione di Reporting Services (RSreportserver.config).

  1. Aprire RSReportServer.config in un editor di testo.

  2. Individuare la sezione <Service> e aggiungere le informazioni seguenti al file di configurazione, sostituendo il valore Hostname con il nome del server virtuale per il server per il bilanciamento del carico di rete:

    <Hostname>virtual_server</Hostname>  
    
  3. Individuare UrlRoot. L'elemento non è specificato nel file di configurazione, ma il valore predefinito usato è un URL in formato https:// o https://<computername>/<reportserver>, dove <reportserver> corrisponde al nome della directory virtuale del servizio Web ReportServer.

  4. Digitare un valore per UrlRoot che includa il nome virtuale del cluster in formato https:// o https://<virtual_server>/<reportserver>.

  5. Salvare il file.

  6. Ripetere questi passaggi in ciascun file RSReportServer.config per ogni server di report presente nella distribuzione con scalabilità orizzontale.

Verificare l'accesso al server di report

Verificare che sia possibile accedere la distribuzione con scalabilità orizzontale tramite il nome del server virtuale (ad esempio, https://MyVirtualServerName/reportserver e https://MyVirtualServerName/reports).

È possibile determinare il nodo che elabora effettivamente i report esaminando i file di log del server di report o controllando il log di esecuzione di RS. La tabella del log di esecuzione contiene una colonna denominata InstanceName che indica l'istanza che ha elaborato una richiesta specifica. Per altre informazioni, vedere File di log e origini di Reporting Services.

Se non è possibile connettersi al server di report, controllare bilanciamento carico di rete. Verificare che le richieste vengano inviate al server di report e visualizzare il log HTTP del server di report per appurare che il server le stia ricevendo.

Risoluzione dei problemi relativi alle richieste non riuscite

Se le richieste non raggiungono le istanze del server di report, controllare il file RSReportServer.config per verificare che il nome del server virtuale sia specificato come nome host per gli URL del server di report:

  1. Aprire il file RSReportServer.config in un editor di testo.

  2. Trovare <Hostname>, <ReportServerUrl> e <UrlRoot> e quindi controllare il nome host per ogni impostazione. Se il valore non corrisponde al nome host previsto, sostituirlo con il nome host corretto.

Se si avvia lo strumento di configurazione di Reporting Services dopo avere apportato queste modifiche, lo strumento potrebbe modificare le impostazioni di <ReportServerUrl> ripristinando il valore predefinito. Mantenere sempre una copia di backup dei file di configurazione per i casi in cui sia necessario sostituirli con la versione contenente le impostazioni che si desidera utilizzare.

Configurare un URL (Gestione configurazione del server di report)
Configurare una distribuzione con scalabilità orizzontale del server di report in modalità nativa (Gestione configurazione server report)
Gestione configurazione server di report (modalità nativa)
Gestire un server di report in modalità nativa di Reporting Services