Configurar um servidor de relatório em um cluster com balanceamento de carga de rede

Se estiver configurando uma expansão de servidor de relatório para execução em um cluster de balanceamento de carga de rede (NLB), você deverá executar as seguintes tarefas:

  • Verifique se o cluster NLB pode ser acessado através de um nome de servidor virtual que mapeia para o endereço IP do servidor virtual. Um nome de servidor virtual é necessário para que você possa configurar um único ponto de entrada para o cluster NLB. Quando você configurar uma URL para cada instância do servidor de relatório, especificará o nome do servidor virtual como host.

  • Configure a validação do estado de exibição para permitir a exibição de relatórios interativos. Esses relatórios costumam ser renderizados inúmeras vezes durante uma única sessão de usuário para exibir dados novos ou diferentes em resposta a ações do usuário. Quando você configura a validação do estado de exibição, a continuidade é preservada na sessão de usuário, independentemente dos serviços do servidor de relatório solicitados.

O Reporting Services não fornece a funcionalidade para balancear a carga de uma implantação em expansão ou para definir um único ponto de acesso através de uma URL compartilhada. Você deve implementar uma solução separada de software ou hardware de cluster NLB para dar suporte a uma implantação em expansão do Reporting Services.

Você pode instalar o Reporting Services em nós que já fazem parte de um cluster NLB ou pode configurar primeiro uma implementação em expansão e, depois, instalar o software de cluster.

Etapas da implantação do servidor de relatório em um cluster NLB

Use as seguintes diretrizes para instalar e configurar sua implantação:

Etapa Descrição Mais informações
1 Antes de instalar o Reporting Services em nós de servidor em um cluster NLB, verifique os requisitos de implantação em expansão. Configurar uma implantação escalável do servidor de relatório em modo nativo
2 Configure o cluster NLB e verifique se ele está funcionando corretamente.

Mapeie um nome de cabeçalho de host para o IP de servidor virtual do cluster NLB. O nome de cabeçalho de host é usado na URL do servidor de relatório e é mais fácil de lembrar e digitar do que um endereço IP.
Para obter mais informações, consulte a documentação do produto do Windows Server para a versão do sistema operacional Windows que você executa.
3 Adicione o NetBIOS e o nome de domínio totalmente qualificado (FQDN) do cabeçalho do host à lista de BackConnectionHostNames armazenados no Registro do Windows.

Por exemplo, se o nome do cabeçalho do host <MyServer> for um nome virtual para o nome do computador Windows "contoso", você provavelmente poderá fazer referência ao formato FQDN como contoso.domain.com. Você precisa adicionar o nome do cabeçalho do host (MyServer) e o nome FQDN (contoso.domain.com) à lista em BackConnectionHostNames.

Em seguida, reinicie o computador para garantir que as alterações entrem em vigor.
Esta etapa é necessária se seu ambiente de servidor envolver autenticação de NTLM no computador local, criando uma conexão de loopback.

Nesse caso, as solicitações entre o Report Manager e o Report Server falharão com 401 (Não Autorizado).
4 Instale o Reporting Services no modo somente arquivos nos nós que já fazem parte de um cluster NLB e configure as instâncias do servidor de relatório para a implantação escalável.

A expansão configurada poderá não responder às solicitações dirigidas ao IP do servidor virtual. A configuração da expansão para usar o IP do servidor virtual ocorre em uma etapa posterior, depois que você configura a validação do estado de exibição.
Configurar uma implantação escalável do servidor de relatório no modo nativo (Gerenciador de Configurações do Servidor de Relatório)
5 Configure a validação do estado de exibição.

Para obter os melhores resultados, execute esta etapa depois de configurar a implantação em expansão e antes de configurar as instâncias do servidor de relatório que usarão o IP do servidor virtual. Ao configurar primeiro a validação do estado de exibição, você evitará exceções sobre falha na validação do estado quando usuários tentarem acessar relatórios interativos.
Como configurar a validação do estado de exibição neste artigo.
6 Configure o Hostname e o UrlRoot para usar o IP do servidor virtual do cluster NLB. Como configurar Hostname e UrlRoot neste artigo.
7 Verifique se é possível acessar os servidores através do nome do host especificado. Verificar o acesso ao servidor de relatório neste artigo.

Configure a validação do estado de exibição.

Para executar uma implantação em expansão em um cluster NLB, você deve configurar a validação do estado de exibição para que os usuários possam exibir relatórios HTML interativos. Você deve configurar a validação do estado de exibição para o Serviço Web Servidor de Relatório.

Para executar uma implantação em expansão em um cluster NLB, você deve configurar a validação do estado de exibição para que os usuários possam exibir relatórios HTML interativos.

Os controles do ASP.NET visualizam a validação do estado. Por padrão, ela fica habilitada e usa a identidade do serviço Web para efetuar a validação. Porém, em um cenário de cluster NLB, existem várias instâncias de serviço e identidades de serviço Web que são executadas em computadores diferentes. Como a identidade do serviço varia para cada nó, não é possível usar uma única identidade de processo para efetuar a validação.

Para contornar esse problema, você pode gerar uma chave de validação arbitrária para dar suporte à validação do estado de exibição e, depois, configurar manualmente cada nó do servidor de relatório para usar a mesma chave. É possível usar qualquer sequência hexadecimal gerada aleatoriamente. O algoritmo de validação (como SHA1) determina o comprimento da sequência hexadecimal.

Aplica-se a: SQL Server Reporting Services (2016)

  1. Gere automaticamente uma chave de validação e uma chave de descriptografia usando a funcionalidade fornecida pelo .NET Framework. No final, você deve ter uma única entrada <machineKey> que possa ser colada no arquivo Web.config para cada instância do Report Server na implantação de expansão.

    O exemplo a seguir mostra uma ilustração do valor a ser obtido. Não copie o exemplo em seus arquivos de configuração; os valores-chave não são válidos.

    <machineKey validationKey="123455555" decryptionKey="678999999" validation="SHA1" decryption="AES"/>  
    
  2. Abra o arquivo Web.config e, na seção Reportserver, cole o elemento <system.web> que você gerou. Por padrão, o arquivo Web.config está localizado em \Program Files\Microsoft SQL Server\MSRS13.MSSQLSERVER\Reporting Services\Reportserver\Web.config.

  3. Salve o arquivo.

  4. Repita a etapa anterior para cada servidor de relatório na implantação em expansão.

  5. Verifique se todos os arquivos Web.Config de todos os servidores de relatório na implantação de expansão contêm elementos <machineKey> idênticos na seção.

Aplica-se a: SQL Server Reporting Services (2017 e posterior) Servidor de Relatórios do Power BI

  1. Gere automaticamente uma chave de validação e uma chave de descriptografia usando a funcionalidade fornecida pelo .NET Framework. No final, você deve ter uma única entrada <machineKey> que possa ser colada no arquivo RSReportServer.config para cada instância do servidor de relatório na implantação de expansão.

    O exemplo a seguir mostra uma ilustração do valor a ser obtido. Não copie o exemplo em seus arquivos de configuração; os valores-chave não são válidos. O servidor de relatório requer o uso de maiúsculas e minúsculas correto.

    <MachineKey ValidationKey="123455555" DecryptionKey="678999999" Validation="SHA1" Decryption="AES"/>
    
  2. Abra o arquivo RSReportServer.config e, na seção Reportserver, cole o elemento <Configuration> que você gerou. Por padrão, o arquivo RSReportServer.config está localizado em \Program Files\Microsoft SQL Server Reporting Services\SSRS\ReportServer\RSReportServer.config para o Reporting Services. Para o Servidor de Relatório do Power BI, o arquivo está localizado em \Program Files\Microsoft Power BI Report Server\PBIRS\ReportServer\RSReportServer.config.

  3. Salve o arquivo.

  4. Repita a etapa anterior para cada servidor de relatório na implantação em expansão.

  5. Verifique se todos os arquivos RSReportServer.config de todos os servidores de relatório na implantação de expansão contêm elementos <MachineKey> idênticos na seção <Configuration>.

Como configurar Hostname e UrlRoot

Para configurar uma implantação em expansão do servidor de relatório em um cluster NLB, é necessário definir um único nome de servidor virtual que forneça um único ponto de acesso ao cluster de servidores. Então registre esse nome de servidor virtual com o DNS (Domain Name Server, servidor de nomes de domínio) em seu ambiente.

Após definir o nome do servidor virtual, você poderá configurar as propriedades Hostname e UrlRoot no arquivo para incluir o nome do servidor virtual na URL do servidor de relatório.

Configure a propriedade Hostname quando você estiver usando reservas curinga de URL em seu ambiente de relatório. Quando você especifica a propriedade Hostname para ser o nome do servidor virtual do servidor NLB, o tráfego de rede para o ambiente de relatório é direcionado ao servidor NLB. O NLB, em seguida, distribui solicitações entre os nós de servidor de relatório.

Além disso, configure a propriedade UrlRoot para que os links de relatório funcionem em relatórios exportados para relatórios estáticos, como em formato Excel ou PDF ou em relatórios gerados por assinaturas, como assinaturas de email.

Se você integrar o Reporting Services com o Windows SharePoint Services 3.0 ou o Office SharePoint Server 2007, ou hospedar relatórios em um aplicativo Web personalizado, poderá ser necessário configurar somente a propriedade UrlRoot. Nesse caso, configure a propriedade UrlRoot para ser a URL do site do SharePoint ou do aplicativo Web. Essa configuração direciona o tráfego de rede do ambiente de relatório para o aplicativo que manipula os relatórios, em vez de para o servidor de relatório ou cluster NLB.

Não modifique ReportServerUrl. Se você modificar essa URL, introduzirá uma viagem de ida e volta a mais no servidor virtual sempre que uma solicitação interna for tratada. Para obter mais informações, confira URLs em arquivos de configuração (Gerenciador de Configurações do Servidor de Relatório). Para obter mais informações sobre como editar o arquivo de configuração, consulte Modificar um arquivo de configuração do Reporting Services (RSreportserver.config).

  1. Abra RSReportServer.config em um editor de texto.

  2. Localize a seção <Service> e adicione as seguintes informações ao arquivo de configuração, substituindo o valor Hostname pelo nome do servidor virtual do servidor NLB:

    <Hostname>virtual_server</Hostname>  
    
  3. Localize UrlRoot. O elemento não é especificado no arquivo de configuração, mas o valor padrão usado é uma URL neste formato: https:// ou https://<computername>/<reportserver>, em que <reportserver> é o nome do diretório virtual do serviço Web do Servidor de Relatório.

  4. Digite um valor para UrlRoot que inclua o nome virtual do cluster neste formato: https:// ou https://<virtual_server>/<reportserver>.

  5. Salve o arquivo.

  6. Repita essas etapas em cada arquivo RSReportServer.config para cada servidor de relatório na implantação de expansão.

Verificar o acesso ao servidor de relatório

Verifique se você pode acessar a implantação escalável por meio do nome do servidor virtual (por exemplo, https://MyVirtualServerName/reportserver e https://MyVirtualServerName/reports).

Você pode verificar que nó efetivamente processa relatórios examinando os arquivos de log do servidor de relatório ou verificando o log de execução do RS (a tabela do log de execução contém uma coluna denominada InstanceName que mostra qual instância processou uma determinada solicitação). Para obter mais informações, consulte Fontes e arquivos de log do Reporting Services.

Se você não conseguir se conectar ao servidor de relatório, verifique o NLB. Verifique se as solicitações são enviadas ao servidor de relatório e visualize o log HTTP do servidor de relatório para garantir que o servidor esteja recebendo as solicitações.

Solucionando problemas de solicitações com falha

Se as solicitações não chegarem até as instâncias do servidor de relatório, verifique no arquivo RSReportServer.config se o nome do servidor virtual está especificado como o nome do host para as URLs do servidor de relatório:

  1. Abra o arquivo RSReportServer.config em um editor de texto.

  2. Localize <Hostname>, <ReportServerUrl> e <UrlRoot> e verifique o nome do host para cada configuração. Se o valor não for o nome de host esperado, substitua-o pelo nome de host correto.

Se você iniciar a ferramenta Configuração do Reporting Services depois de fazer essas alterações, a ferramenta poderá alterar as configurações de <ReportServerUrl> com o valor padrão. Sempre tenha uma cópia de backup dos arquivos de configuração caso seja necessário substituí-los pela versão que contém as configurações desejadas.