Как настроить сервер отчетов в кластере с балансированием сетевой нагрузки

Если настраивается масштабное развертывание сервера отчетов для запуска в кластере с балансировкой сетевой нагрузки, необходимо выполнить следующие действия.

  • Проверьте доступность NLB-кластера через имя виртуального сервера, соответствующее IP-адресу виртуального сервера. Имя виртуального сервера необходимо, чтобы настроить единую точку входа в NLB-кластер. При настройке URL-адреса для каждого экземпляра сервера отчетов имя виртуального сервера указывается как узел.

  • Настройте проверку состояния представления для интерактивного просмотра отчетов. Интерактивные отчеты обычно подготавливаются к просмотру несколько раз в течение одного сеанса пользователя, чтобы отобразить новые или другие данные в ответ на действия пользователя. Благодаря настройке проверки состояния представления сохраняется степень непрерывности внутри сеанса пользователя независимо от того, какие службы сервера отчетов были запрошены.

Службы Службы Reporting Services не обеспечивают ни балансировку нагрузки в конфигурации масштабного развертывания, ни описание единой точки доступа через общий URL-адрес. Для поддержки конфигурации масштабного развертывания служб Службы Reporting Services необходима отдельная реализация программного или аппаратного решения NLB-кластера.

Можно либо установить службы Службы Reporting Services на узлах, которые уже входят в NLB-кластер, либо сначала настроить масштабное развертывание, а затем приступать к установке программного обеспечения кластера.

Шаги масштабного развертывания сервера отчетов на NLB-кластере

Используйте следующие рекомендации для установки и настройки развертывания.

Шаг

Описание

Дополнительные сведения

1

Прежде чем установить службы Reporting Services на серверных узлах в NLB-кластере, проверьте требования к масштабному развертыванию.

В разделе Планирование масштабного развертывания электронной документации по SQL Server

2

Настройте NLB-кластер и убедитесь в его правильной работе.

Не забудьте сопоставить имя заголовка узла IP-адресу виртуального сервера NLB-кластера. Имя заголовка узла используется в URL-адресе сервера отчетов; его проще запомнить и ввести, чем IP-адрес.

Дополнительные сведения см. в документации по продукту Windows Server для соответствующей версии операционной системы Windows.

4

Установите службы Службы Reporting Services в режиме «только файлы» на узлах, которые уже входят в NLB-кластер, затем подготовьте экземпляры сервера отчетов к масштабному развертыванию.

Настроенное масштабное развертывание может не отвечать на запросы, направленные по IP-адресу виртуального сервера. Настройка масштабного развертывания на использование IP-адреса виртуального сервера выполняется на более позднем шаге, после настройки проверки состояния представления.

Как настроить масштабное развертывание сервера отчетов (настройка служб Reporting Services)

5

Настройка проверки состояния представления

Для достижения наилучшего результата выполняйте этот шаг после настройки масштабного развертывания и перед настройкой экземпляров сервера отчетов на использование IP-адреса виртуального сервера. Это позволит избежать исключений о неудавшейся проверке состояния при обращении пользователей к интерактивным отчетам.

Как настроить проверку состояния представления — далее в этом разделе.

6

Настройте в Hostname и UrlRoot использование IP-адреса виртуального сервера NLB-кластера.

Как настроить свойства HostName и UrlRoot — далее в этом разделе.

7

Проверьте, что серверы доступны через указанное имя узла.

Проверка доступа к серверу отчетов далее в этом разделе.

Как настроить проверку состояния представления

Для запуска масштабного развертывания на NLB-кластере необходимо настроить проверку состояния представления, чтобы пользователи могли просматривать интерактивные HTML-отчеты. Это необходимо сделать для сервера отчетов и диспетчера отчетов.

Проверка состояния представления управляется ASP.NET. По умолчанию она включена и для нее используется удостоверение веб-службы. Однако в NLB-кластере и конфигурации масштабного развертывания обычно содержится несколько экземпляров службы и удостоверения веб-службы, работающих на разных компьютерах. Поскольку разные узлы имеют разные удостоверения службы, на одно удостоверение при проверке полагаться нельзя.

Чтобы избежать этой проблемы, можно создать произвольный ключ для проверки состояния представления, а затем вручную настроить каждый узел сервера отчетов на его использование. Можно использовать любую случайно сформированную шестнадцатеричную последовательность. Алгоритм проверки (такой как SHA1) определяет длину шестнадцатеричной последовательности.

  1. Создайте ключ проверки и ключ дешифрования с помощью функции автоформирования, доступной в .NET Framework. В результате этого будет сформирован один элемент <machineKey>, который можно добавить в файл Web.config для каждого экземпляра диспетчера отчетов, входящего в конфигурацию масштабного развертывания.

    В следующем примере приведено значение, которое должно быть получено. Не нужно вставлять в файл конфигурации данные из этого примера; значения ключа недопустимы.

    <machineKey validationKey="123455555" decryptionKey="678999999" validation="SHA1" decryption="AES"/>
    
  2. Откройте в диспетчере отчетов файл конфигурации Web.config и в разделе <system.web> вставьте в него полученный элемент <machineKey>. Файл Web.config для диспетчера отчетов по умолчанию находится в папке \Program Files\Microsoft SQL Server\MSRS10_50.MSSQLSERVER\Reporting Services\ReportManager\Web.config.

  3. Сохраните файл.

  4. Повторите предыдущий шаг для каждого сервера отчетов в конфигурации масштабного развертывания.

  5. Убедитесь в том, что все файлы Web.Config в папках \Reporting Services\Report Manager содержат идентичные элементы <machineKey> в разделе <system.web>.

Как настроить свойства HostName и UrlRoot

При настройке сервера отчетов в конфигурации масштабного развертывания для запуска в NLB-кластере с балансировкой нагрузки на сеть необходимо описать единое имя виртуального сервера, обеспечивающего единую точку доступа для всего кластера. После этого следует зарегистрировать имя виртуального сервера на сервере доменных имен в вашей среде.

После того как определено имя виртуального сервера, можно настраивать свойства Hostname и UrlRoot в файле RSReportServer.config, чтобы включить имя виртуального сервера в URL-адрес сервера отчетов.

ПредупреждениеВнимание!

Свойство UrlRoot влияет на URL-адрес, который отображается в электронной почте, отправляемой через подписку служб Reporting Services. Если свойство UrlRoot в файле RSReportServer.config остается пустым, то URL-адрес, отображаемый в электронной почте, будет содержать имя физического компьютера, а не URL-адрес виртуального сервера NLB. Чтобы исключить возможное обнаружение имени физического компьютера злоумышленниками, который могут получить подписку, измените свойство UrlRoot на подходящее имя виртуального сервера NLB.

Настройте свойство Hostname при резервировании URL-адресов по шаблону в среде создания отчетов. Если в качестве значения свойства Hostname указано имя виртуального сервера или NLB-сервера, то сетевой трафик среды создания отчетов направляется на NLB-сервер. После этого NLB распределяет запросы по узлам сервера отчетов.

Кроме того, настройте свойство UrlRoot таким образом, чтобы в отчетах, экспортированных в статические отчеты (например, в форматах Excel или PDF), либо в отчетах, сформированных подписками (например подписками электронной почты), работали ссылки на отчеты.

При объединении служб Службы Reporting Services со службами Windows SharePoint Services 3.0 или Office SharePoint Server 2007 либо при размещении отчетов в пользовательском веб-приложении может потребоваться настройка только свойства UrlRoot. В данном случае в качестве значения свойства UrlRoot следует указать URL-адрес сайта SharePoint или веб-приложения. При этом сетевой трафик среды отчетов будет направлен на приложение, обрабатывающее отчеты, а не на сервер отчетов или NLB-кластер.

Не изменяйте параметр ReportServerUrl. При изменении этого URL-адреса вводится дополнительное обращение к виртуальному серверу при обработке каждого внутреннего запроса. Дополнительные сведения см. в разделе URL-адреса файлов конфигурации (службы Reporting Services). Дополнительные сведения о редактировании файла конфигурации см. в разделе Как изменить файл конфигурации служб Reporting Services электронной документации по SQL Server.

  1. Откройте файл RSReportServer.config в текстовом редакторе.

  2. Найдите раздел <Service> и добавьте приведенную ниже информацию в файл конфигурации, заменив при этом значение Hostname именем виртуального сервера для NLB-сервера:

    <Hostname>virtual_server</Hostname>
    
  3. Найдите параметр UrlRoot. Этот элемент не указывается в файле конфигурации, но по умолчанию используется URL-адрес в следующем формате: http:// или https://<имя_компьютера>/<сервер_отчетов>, где <сервер_отчетов> — имя виртуального каталога веб-службы сервера отчетов.

  4. Введите значение для UrlRoot, включающее виртуальное имя кластера, в следующем формате: http:// или https://<виртуальный_сервер>/<сервер_отчетов>.

  5. Сохраните файл.

  6. Повторите эти шаги в каждом файле RSReportServer.config для каждого сервера отчетов в масштабном развертывании.

Проверка доступа к серверу отчетов

Проверьте, чтобы масштабное развертывание было доступно по имени виртуального сервера (например, https://MyVirtualServerName/reportserver и https://MyVirtualServerName/reports).

Выяснить, какой из узлов в действительности обрабатывает отчеты, можно в файлах журналов или в журнале выполнения сервера отчетов (таблица журнала выполнения содержит столбец InstanceName, в котором отражается экземпляр, который обработал конкретный запрос). Дополнительные сведения см. в разделе Файлы журнала служб Reporting Services электронной документации по SQL Server.

Если не удается соединиться с сервером отчетов, проверьте NLB и убедитесь, что запросы отправляются на сервер отчета, а также просмотрите журнал HTTP-сервера, чтобы убедиться, что сервер получает эти запросы.

Устранение неполадок в ошибочных запросах

Если запросы не достигают экземпляров сервера отчетов, проверьте файл RSReportServer.config и убедитесь, что имя виртуального сервера указано как имя узла для URL-адресов сервера отчетов.

  1. Откройте файл RSReportServer.config в текстовом редакторе.

  2. Найдите <Hostname>, <ReportServerUrl> и <UrlRoot> и проверьте имя узла для каждого параметра. Если значение отличается от предполагаемого имени узла, замените его правильным именем узла.

Если средство настройки служб Reporting Services запускается после внесения этих изменений, элемент <ReportServerUrl> может быть сброшен ею в значение по умолчанию. Всегда сохраняйте резервную копию файлов конфигурации на тот случай, если понадобится восстановить настроенные параметры.