El procedimiento de instalación y configuración de un Cluster NLB dedicado para Reporting Services 2008 R2 (en modo Nativo), es relativamente sencillo. El hecho de que se trate de máquinas dedicadas para Reporting Services, implica que se deberá instalar sin configurar el Reporting Services, de tal modo, que una vez instalado se configurará maualmente con la herramienta administrativa Reporting Services Configuration Manager (esta quizás sea la parte un poco más compleja). Además, se necesitará, al menos una máquina adicional que actúe como servidor de base de datos, para almacenar las bases de datos de Reporting Services (en nuestro caso, un SQL Server 2008 R2), y por supuesto se necesitará de un dominio de Directorio Activo, del cual serán miembros todas estas máquinas.
Será necesario instalar y configurar el Network Load Balancing (NLB) de Windows Server 2008 R2 manualmente, ya sea antes de instalar Reporting Services o después de su instalación y configuración, excepto que se utilice algún otro tipo de balanceo de red (ej: un balanceo hardware como el NetScaler).
Una vez instalado y configurado Reporting Services 2008 R2 en todos los Nodos que formarán nuestra Granja de Reporting Services, deberemos realizar el Scale-out Deployment, para de este modo, que todos los Nodos puedan acceder satisfactoriamente a la Base de Datos de configuración de Reporting Services.
A continuación se describe la instalación y configuración de Reporting Services 2008 R2 paso a paso, incluyendo todas las pantallas capturadas. Antes de iniciar la instalación deberemos disponer de las credenciales utilizadas para Reporting Services (al menos, una cuenta de usuario de Directorio Activo – en nuestro caso GUILLESQL\SSRSSvc, aunque podrían ser dos: una para arrancar los servicios de Reporting Services y otra para el acceso a la base de datos de configuración de Reporting Services).
Recordemos que Reporting Services no utiliza IIS, por lo que no será necesario agregar el Role de Web Server (IIS). Eso sí, si no tenemos agregada la Feature de .Net Framework, el instalador de Reporting Services nos la agregará.
La base de este artículo es la instalación de un nuevo Cluster NLB dedicado a Reporting Services 2008 R2 para su utilización por Microsoft Dynamics CRM 4.0, tratándose de una Granja de Reporting Services en modo Nativo (sin integración con MOSS).
Instalación de Reporting Services 2008 R2
La primera tarea que tendremos que realizar es la instalación de Reporting Services 2008 R2, algo que deberemos realizar por separado en todos los Nodos que formen parte del Cluster NLB. En nuestro caso, deseamos montar un Cluster NLB con dos Nodos ejecutando Windows Server 2008 R2 y Reporting Services 2008 R2, en particular, las máquinas VRS01 y VRS02, por lo que deberemos instalar por separado los Reporting Services en ambas máquinas. El proceso de instalación es idéntico para todas las máquinas del Cluster NLB de Reporting. A continuación se detalla, tomando las pantallas capturadas de la instalación de Reporting Services 2008 R2 sobre la máquina VRS01.guillesql.local. Empezamos.
Nos conectaremos por RDP o por Consola a la máquina que deseamos instalar, y ejecutamos el setup.exe del DVD de SQL Server 2008 R2. Si no tenemos instalado el .Net Framework, nos saldrá un mensaje informándonos de esta situación, en cuyo caso deberemos hacer click sobre el botón OK para continuar, quedando instalado el .Net Framework.
En la pantalla SQL Server Installation Center, seleccionaremos la opción Installation del menú lateral izquierdo, y seguidamente click en New installation or add features to an existing installation.
En la pantalla Setup Support Rules, comprobar que no se muestra ningún error, y click OK para continuar.
En la pantalla Product Key, nos aparecerá ya relleno el Serial del producto. Click Next para continuar.
En la pantalla License Terms, aceptamos los términos de licencia. Click en Next para continuar.
En la pantalla Setup Support Files, click Install.
En la pantalla Setup Support Rules, comprobar que no se muestra ningún error. Es habitual que se muestre como aviso la regla Microsoft .Net Application Security. Si lo deseamos, podemos hacer click en dicho Warning.
Se mostrará el detalle del Warning, en este caso, el problema conocido de lentitud con algunas aplicaciones como el SQL Server Management Studio. Click OK para continuar.
De vuelta a la pantalla Setup Support Rules, click Next para continuar. En la pantalla Setup Role, seleccionaremos la opción SQL Server Feature Installation. Click Next para continuar.
En la pantalla Feature Selection, seleccionaremo el ítem de Reporting Services de la sección Instance Features, y de forma adicional, seleccionaremos los ítems Management Tools – Complete y SQL Server Books Online. Click Next para continuar.
En la pantalla Installation Rules, comprobamos que no hay ningún error. Click Next para continuar.
En la pantalla Instance Configuration, deberemos especificar si deseamos instalar una instancia con nombre o una instancia por defecto (téngase en cuenta que es posible instalar múltiples instancias de Reporting Services). En nuestro caso, seleccionaremos la instalación de una instancia por defecto (Default instance). Mantendremos los valores propuestos de Instance ID e Instance root directory (ruta de instalación de la instancia de Reporting Services). Click Next para continuar.
En la pantalla Disk Space Requirements comprobaremos que tenemos espacio suficiente para realizar la instalación de Reporting Services. Click Next para continuar.
En la pantalla Server Configuration, especificaremos las credenciales que deseamos utilizar para iniciar el servicio de Reporting Services, siendo muy recomendable utilizar una cuenta de usuario de Directorio Activo. En nuestro caso de ejemplo, utilizaremos la cuenta de usuario GUILLESQL\SSRSSvc. Click Next para continuar.
En la pantalla Reporting Services Configuration, seleccionaremos la única opción que tenemos disponible: Install, but not configure the Report Server. Click Next para continuar.
En la pantalla Error Reporting, click Next para continuar.
En la pantalla Installation Configuration Rules, comprobaremos que no se muestra ningún error. Click Next para continuar.
En la pantalla Ready to Install, revisamos la información de resumen de la instalación, y si está todo OK, click Install.
Pasaremos un rato con la barrita progreso de turno, y tras esto la instalación finalizará, mostrándose la pantalla Complete. Click Close para continuar.
Configuración de Reporting Services 2008 R2 en el Primer Nodo: Creación de la Granja
Una vez que hemos instalado Reporting Services 2008 R2 en todos los Nodos del Cluster NLB que formarán la Granja de Reporting Services, llega el momento de configurar Reporting Services en el primer Nodo (el que más rabia nos de). Con este paso, se creará la Granja de Reporting Services, lo que implica por ejemplo la creación de las bases de datos de Reporting Services. A continuación se detalla este procedimiento, tomando las pantallas capturadas durante su realización sobre la máquina VRS01.guillesql.local. Empezamos.
Nos conectaremos por RDP o por Consola a la máquina que deseamos configurar, y ejecutaremos la herramienta administrativa Reporting Services Configuration Manager. En el diálogo de conexión, especificamos los datos de conexión a la instancia local de Reporting Services (en nuestro caso, servidor VRS01 e instancia MSSQLSERVER), y click Connect.
Se muestra la pantalla principal del Reporting Services Configuration Manager. Click en la opción Web Service URL.
En la página Web Service URL, aceptaremos los valores que nos muestra por defecto, y click Apply. De este modo, se creará el Sitio Web de Reporting Services que contiene los Web Services de Reporting Services, utilizando los valores de configuración mostrados en esta pantalla.
En breves instantes, el Sitio Web habrá sido creado. Click en la opción Database.
En la página Database, click en el botón Change Database. A través de este botón, se presentará un Asistente, el cual nos permitirá crear las bases de datos de Reporting Services, y de este modo, crear la Granja de Reporting Services. Alternativamente, y como veremos más adelante, este Asistente también permite al resto de Nodos seleccionar una base de datos existente, esto es, añadirse a una Granja existente.
Se muestra el diálogo Report Server Database Configuration Wizard. En la página Action, seleccionaremos la opción Create a new report server database, para de este modo crear las bases de datos de Reporting Services y en consecuencia crear la correspondiente Granja de Reporting Services. Click Next para continuar.
En la página Database Server, deberemos seleccionar los datos de la Instancia de SQL Server que deseamos utilizar para almacenar las bases de datos de Reporting Services, y además, deberemos especificar los datos de conexión deseados para poder conectarse a dicha Instancia de SQL Server y crear las bases de datos de Reporting Services. En nuestro caso, especificaremos la Instancia VSQL08, que corresponde a una Máquina Virtual que corre Windows Server 2008 R2 con SQL Server 2008 R2. Click Next para continuar.
En la página Database, especificaremos el nombre de la base de datos que deseamos crear, así como el idioma y el Modo (Nativo o integrado en SharePoint). Téngase en cuenta, que si deseamos utilizar una única instancia de SQL Server para almacenar las bases de datos de múltiples Instancias de Reporting Services, se deberán utilizar diferentes nombres para las bases de datos de cada Instancia de Reporting Services. En nuestro caso, deseamos montar Reporting Services en Modo Nativo (para montar Reporting Services en Modo integrado con SharePoint, deberíamos montar Reporting Services en los frontales de MOSS). En nuestro caso, mantendremos las opciones mostradas por defecto, ya que son las que nos interesan para reproducir el entorno de producción de un cliente, que es nuestro objetivo. Click Next para continuar.
En la página Credentials, deberemos seleccionar con qué cuenta de usuario deseamos que se realice la conexión del servicio de Reporting Services a SQL Server, pudiendo elegir entre tres opciones: Database Credentials (permite utilizar un Login de SQL Server, apropiado para Instancias de SQL Server en dominios con los que no existe una relación de confianza, o cuando tenemos algún Firewall por medio dando guerra), Windows Credentials (permite utilizan una cuenta de usuario de Directorio Activo para conectar con SQL Server), o Service Credentials (permite utilizar la cuenta de usuario que inicia el servicio de Reporting Services para conectar con SQL Server). En nuestro caso, hemos elegido la opción Service Credentials. Click Next para continuar.
En la página Summary revisamos la información de resumen de la configuración a realizar. Si está todo OK, click Next para continuar.
En la página Progress and Finish, esperaremos breves instantes mientras finaliza la configuración de Reporting Services. Click Finish.
De vuelta a la página Database, podremos comprobar que la configuración de base de datos del primer Nodo ha quedado realizada, por lo que la Granja de Reporting Services ya está casi creada. Para continuar, click en la opción Report Manager URL.
En la página Report Manager URL, aceptaremos los valores que nos muestra por defecto, y click Apply. De este modo, se creará el Sitio Web de Reporting Services que contiene la Aplicación Web que actúa como Portal de acceso para los usuarios, utilizando los valores de configuración mostrados en esta pantalla.
En breves instantes, el Sitio Web habrá sido creado. Realizado esto, ha estará creada nuestra Granja de Reporting Services 2008 R2, eso sí, de momento con un único Nodo.
Configuración de Reporting Services 2008 R2 en el resto de Nodos la Granja
Ahora que ya tenemos creada nuestra Granja de Reporting Services 2008 R2 con un único Nodo, llega el momento de añadir el resto de Nodos a nuestra Granja, en nuestro caso, tan sólo un Nodo más. Téngase en cuenta, que si no estuviésemos configurando una Granja de Reporting Services con varios Nodos, llegados a este punto ya habríamos finalizado la instalación de Reporting Services. Empezamos.
Nos conectaremos por RDP o por Consola a la máquina que deseamos configurar, y ejecutaremos la herramienta administrativa Reporting Services Configuration Manager. En el diálogo de conexión, especificamos los datos de conexión a la instancia local de Reporting Services (en nuestro caso, servidor VRS02 e instancia MSSQLSERVER), y click Connect.
Se muestra la pantalla principal del Reporting Services Configuration Manager. Click en la opción Web Service URL.
En la página Web Service URL, aceptaremos los valores que nos muestra por defecto, y click Apply. De este modo, se creará el Sitio Web de Reporting Services que contiene los Web Services de Reporting Services, utilizando los valores de configuración mostrados en esta pantalla.
En breves instantes, el Sitio Web habrá sido creado. Click en la opción Database.
En la página Database, click en el botón Change Database.
Se muestra el diálogo Report Server Database Configuration Wizard. En la página Action, seleccionaremos la opción Choose an existing report server database, para de este modo añadir esta instancia de Reporting Services a la correspondiente Granja de Reporting Services. Click Next para continuar.
En la página Database Server, deberemos seleccionar la Instancia de SQL Server que almacena las bases de datos de Reporting Services, y además, deberemos especificar los datos de conexión deseados para poder conectarse a dicha Instancia de SQL Server. En nuestro caso, especificaremos la Instancia VSQL08, que corresponde a una Máquina Virtual que corre Windows Server 2008 R2 con SQL Server 2008 R2. Click Next para continuar.
En la página Database, seleccionaremos la base de datos correspondiente a la Granja de Reporting Services a la que nos deseamos unir. Click Next para continuar.
En la página Credentials, deberemos seleccionar con qué cuenta de usuario deseamos que se realice la conexión del servicio de Reporting Services a SQL Server, pudiendo elegir entre tres opciones: Database Credentials (permite utilizar un Login de SQL Server, apropiado para Instancias de SQL Server en dominios con los que no existe una relación de confianza, o cuando tenemos algún Firewall por medio dando guerra), Windows Credentials (permite utilizan una cuenta de usuario de Directorio Activo para conectar con SQL Server), o Service Credentials (permite utilizar la cuenta de usuario que inicia el servicio de Reporting Services para conectar con SQL Server). En nuestro caso, hemos elegido la opción Service Credentials. Click Next para continuar.
En la página Summary revisamos la información de resumen de la configuración a realizar. Si está todo OK, click Next para continuar.
En la página Progress and Finish, esperaremos breves instantes mientras finaliza la configuración de Reporting Services. Click Finish.
De vuelta a la página Database, podremos comprobar que la configuración de base de datos del segundo Nodo ha quedado realizada, por lo tanto, teniendo en cuenta que este es el único Nodo que deseamos agregar a nuestra Granja de Reporting Services, la creación de nuestra Granja ya está casi finalizada. Para continuar, click en la opción Report Manager URL.
En la página Report Manager URL, aceptaremos los valores que nos muestra por defecto, y click Apply. De este modo, se creará el Sitio Web de Reporting Services que contiene la Aplicación Web que actúa como Portal de acceso para los usuarios, utilizando los valores de configuración mostrados en esta pantalla.
En breves instantes, el Sitio Web habrá sido creado.
Realizado esto, y dado que en nuestro caso de ejemplo éste es el único Nodo que deseamos añadir a nuestra Granja de Reporting Services 2008 R2, tan sólo nos quedará realizar la configuración de Scale-out Deployment de nuestra Granja de Reporting Services 2008 R2.
Configuración del Scale-out Deployment en la Granja de Reporting Services 2008 R2
Nos conectaremos por RDP o por Consola a la máquina que utilizamos para crear la Granja de Reporting Services, en nuestro caso, la máquina VRS01. Abrimos la herramienta administrativa Reporting Services Configuration Manager, nos conectamos a la Instancia local de Reporting Sevices, y nos situamos en la página de Scale-out Deployment. En esta pantalla, seleccionaremos el servidor VRS02 (aparecerá en estado Waiting to Join), y seguidamente, click en el botón Add Server, para así añadirlo formalmente a la Granja de Reporting Services y que pueda acceder satisfactoriamente a la base de datos.
Realizado esto, habremos agregado satisfactoriamente dicho Nodo a la Granja de Reporting Services 2008 R2.
Si tuviésemos servidores de Reporting Services adicionales en nuestra Granja, repetiríamos este paso con cada uno de dichos servidores. Realizado todo esto, nuestra Granja de Reporting Services habrá quedado finalmente configurada, y estaremos en situación de poder acceder con éxito a nuestra nueva instalación de Reporting Services.
Configuración del Estado de Página (Viewstate), Hostname, y UrlRoot
Para evitar que se produzca el mensaje de error Validation of viewstate MAC failed error, deberemos configurar la clave machineKey del Web.Config con el mismo valor en todos los Servidores de la Granja de Reporting Services, tanto en el ReportServer como en el ReportManager, tal y como se describe en el artículo Validation of viewstate MAC failed error, y la clave machineKey del Web.Config
Además, también deberemos configurar las claves Hostname y UrlRoot en el fichero de configuración RSReportServer.config para especificar la dirección del servidor virtual.
Para más info: Cómo configurar un servidor de informes en un clúster con equilibrio de carga de red
Habilitar el Report Server HTTP Log
Una de las tareas post-instalación más importantes a realizar tras la instalación de Reporting Services 2008 R2, es habilitar el Report Server HTTP Log. Este Log, por defecto está deshabilitado, y en ocasiones nos puede resultar de interés para resolver incidencias o problemas relacionados con Reporting Services. En resumidas cuentas, el Report Server HTTP Log es el equivalente a los Logs de IIS, es decir, el Log en el que queda registrado cada petición Web realizada a Reporting Services (ej: cada página, cada imagen, etc.).
La configuración no es muy complicada, como se indica en la documentación del producto referente al Report Server HTTP Log, y una vez habilitado mantiene por defecto la información de los últimos 14 días y con límite de un tamaño de 32MB (esto es configurable, si fuera necesario).
Así, tras instalar Reporting Services 2008 R2, los únicos ficheros de Log que generará nuestro sistema (recordemos que la ruta por defecto es C:\Program Files\Microsoft SQL Server\MSRS10_50.MSSQLSERVER\Reporting Services\LogFiles) son los Report Server Service Trace Log (como se muestra en la siguiente pantalla capturada), que si bien también nos pueden resultar de ayuda en alguna ocasión, en otros casos podría resultar insuficiente.
Para habilitar los Report Server HTTP Log, deberemos modificar el fichero de configuración ReportingServicesService.exe.config, existente por defecto en la ruta C:\Program Files\Microsoft SQL Server\MSRS10_50.MSSQLSERVER\Reporting Services\ReportServer\bin. El contenido del fichero de configuración ReportingServicesService.exe.config, incialmente será similar al siguiente (en lo que a nosotros nos respecta).
De acuerdo al anterior enlace de la MSDN, para configuración del fichero ReportingServicesService.exe.config, deberemos añadir un par de líneas al fichero de configuración (HttpTraceFileName y HttpTraceSwitches) y modificaremos la última línea (Components), como se muestra en el siguiente ejemplo.
Tras esto, deberemos reiniciar el servicio de Reporting Services, por ejemplo, desde la consola de Servicios.
Si ahora intentamos realizar algún acceso Web (ej: http://localhost/Reports), y comprobamos de nuevo la carpeta de Logs (por defecto C:\Program Files\Microsoft SQL Server\MSRS10_50.MSSQLSERVER\Reporting Services\LogFiles), ya deberíamos tener disponible nuestro primer fichero de Log del Report Server HTTP Log (el que empieza por ReportServerService_HTTP_).
Configuración de la Autenticación Integrada y la Delegación de Kerberos en Reporting Services
Otra tarea post-instalación bastante importante es configurar la Autenticación Integrada y la Delegación de Kerberos en Reporting Services, para lo cual deberemos seguir los siguientes pasos, que quedan detallados en el anterior enlace:
- Configurar en Microsoft Internet Explorer (es decir, en los equipos clientes) la zona de seguridad de Local Intranet para incluir el nombre DNS que deseamos utilizar para acceder a Reporting Services (si no estuviese incluido ya en dicha zona), y además, modificar la configuración de la zona activando la opción de "Automatic logon with current user name and password" si no estuviese así configurada. Esta configuración se debe realizar sobre todos los equipos clientes, por lo cual, resulta de utilidad el uso de Directivas de Grupo (es decir, Políticas de Directorio Activo), o alguna otra forma de automatización para aplicar esta configuración de forma masiva.
- Habilitar la Delegación de Kerberos en la cuenta de usuario utilizada para iniciar el servicio de Reporting Services (en nuestro caso, la cuenta GUILLESQL\SQLSSRSSvc). Esta tarea se hace con la Herramienta Administrativa de Active Directory Users and Computers (ADUC), en las Propiedades de la cuenta de usuario (opción Account is trusted for delegation).
- Habilitar la Delegación de Kerberos en la cuenta de usuario utilizada para iniciar el servicio de SQL Server.
- Registrar los Service Principal Name (SPN) necesarios para acceder a Reporting Services, utilizando la utilidad setspn (también es posible utilizar otros métodos alternativos, como la herramienta administrativa ADSI Edit). En nuestro caso, estamos utilizando la cuenta GUILLESQL\SSRSSvc para ejecutar Reporting Services 2008 R2 respondiendo a la URL http://vrs00.guillesql.local. Como consecuencia, ejecutaremos los siguientes comando setspn: setspn –A HTTP/vrs00.guillesql.local GUILLESQL\SSRSSvc y setspn –A HTTP/vrs00 GUILLESQL\SSRSSvc.
- Registrar los Service Principal Name (SPN) necesarios para acceder a SQL Server. En nuestro caso, ejecutaremos los siguientes comando setspn: setspn –A MSSQLSvc/vsql08.guillesql.local:1433 GUILLESQL\SQLSvc y setspn –A MSSQLSvc/vsql08:1433 GUILLESQL\SQLSvc.
- En cada máquina de Reporting Services, realizar la configuración de los tipos de autenticación (AuthenticationTypes) en el fichero rsReportServer.config, añadiendo las líneas RSWindowsNegotiate y RSWindowsKerberos.
- Reinicio de los servicios de SQL Server.
- Reinicio de los servicios de Reporting Services en todas las máquinas de la Granja.
Despedida y Cierre
Hasta aquí llega el presente artículo de instalación y configuración de una Granja de Reporting Services 2008 R2. En la práctica, existen más tareas que suelen realizarse después, quizás las más inmediatas e importantes, sean realizar un Backup de la Clave de Encriptación (Encryption Keys) de Reporting Services (también desde la herramienta administrativa de Reporting Services Configuration Manager), comprobar el acceso a Reporting Services (tanto el acceso a las distintas URLs como el acceso desde SQL Server Management Studio), y conceder los permisos necesarios (desde la URL del Report Manager).
Téngase en cuenta que por defecto en Windows Server 2008 R2 no es posible acceder a las URLs de Reporting Services desde el equipo local, ni tampoco acceder a SQL Server Management Studio (SSMS) desde el equipo local. Para más info, leer How to: Configure a Report Server for Local Administration on Windows Vista and Windows Server 2008 (UAC).
Poco más por hoy. Como siempre, confío que la lectura resulte de interés.