SharePoint y Azure – Operational Insights

Escrito por Gustavo Velez - 27/08/2015

Muchos de los servicios ofrecidos por Azure se pueden utilizar para ampliar y mejorar el funcionamiento de SharePoint, tanto OnPremises como en la nube. Uno de los servicios que ofrece Azure es "Operational Insights". Operational Insights es una solución de Software como Servicio (SaaS) específicamente diseñada para ayudar a los grupos de infraestructura a recolectar, guardar y analizar datos de registros (logs) de virtualmente cualquier servidor Windows (y Linux), desde cualquier centro de datos o desde la nube. Con los datos almacenados es posible tomar decisiones en tiempo real sobre posibles problemas o mejoras de los equipos monitoreados.

El servicio permite recolectar y agregar información obtenida desde múltiples sistemas y centralizarla en un solo repositorio de datos para identificar fácilmente la causa de problemas operacionales. El servicio dispone de un sistema de paneles de control que se pueden configurar por medio de consultas a los datos almacenados, utilizando los paneles predefinidos, o creando nuevos a la medida.

Adicionalmente, Operational Insights permite identificar parches que no han sido instalados y análisis de virus que pueden haber accedido a los sistemas monitoreados. Otra posibilidad importante es la que el servicio ofrece para mantener un registro de los cambios introducidos en los sistemas, de tal forma que, si el equipo comienza a presentar conductas inesperadas, se puede determinar si un cambio de configuración realizado en el pasado reciente ha sido el culpable.

Finalmente, el servicio permite analizar los sistemas bajo control para determinar si cumplen las buenas practicas ("Best Practices") recomendadas por Microsoft. SQL Server, SharePoint, Exchange y Hyper-V se pueden examinar de esta manera, y generar reportes que permitan mejorar la seguridad y el funcionamiento de los servidores.

Creación de un servicio de Operational Insights en Azure

Para comenzar a utilizar el servicio es necesario crear primero un Espacio de Trabajo (Workspace) de Operational Insights:

1. Desde el portal de administración de Azure (https://manage.windowsazure.com/), haga un login con sus credenciales.
2. Seleccione "Opeational Insights" desde el menú vertical al lado izquierdo de la ventana.
3. Haga clic sobre "Create a workspace". La ventana de "Quick Create" debe aparecer.
Imagen 1.- Creacion de un Workspace en Azure 
4. En "Account" puede seleccionar un Workspace que ya haya sido creado anteriormente, o crear uno nuevo. Asígnele un nombre al Workspace (Azure comprueba que el nombre sea único). Seleccione el tipo de cuenta ("Tier"), la localización del centro de datos de Azure y la suscripción de Azure a utilizar. El "Tier" define el tipo de servicio que se va a recibir y su precio: "Free" es gratis y tiene un límite diario de transferencia de datos de 500MB y un periodo de retención de los datos de una semana; "Standard" y "Premium" son de pago, no tienen límite de transferencia y el periodo de retención es de un mes para el primero y un año para el segundo.
5. Después de utilizar el botón de "Create Workspace", Azure crea y activa la cuenta, lo que puede durar algunos minutos.
6. Cuando el proceso de activación termine, haga clic sobre el nombre del Workspace y en la ventana que aparece, haga clic sobre "Visit your Operational Insights account".​
Imagen 2.- El cuadro de control del Workspace 
7. Clic sobre "Get started" en la nueva página.

8. La primera ventana del asistente permite seleccionar las operaciones que se van a monitorizar. Las opciones incluyen análisis de malware, estado de replicación de máquinas virtuales, análisis de updates, estado del backup, monitoreo de cambios y automatización de tareas repetitivas. Seleccione todas las opciones y utilice el botón de "Add selected Solutions".

Imagen 3.- Soluciones para el Workspace. 

9. Haga clic sobre "Connect a data source" en el menú vertical al lado izquierdo. Azure permite conectarse a diferentes tipos de fuentes de datos (sistemas a monitorizar): Servidores Windows de 32 y 64 bits (soporte para servidores Linux está planeado, pero no activo en el momento), Microsoft System Center Operations Manager o diferentes sistemas de datos de Azure. Como se desea conectar a Operational Insights con un servidor de SharePoint OnPremises, utilice el botón de "Download Windows Agent (64 bit)" y guarde el ejecutable localmente (MMASetup-AMD64.exe).

Imagen 4.- Fuentes de datos para el Workspace 

10. Haga clic sobre "Add logs" en el menú. Seleccione la casilla "Collect W3C format IIS log files" y utilice el botón "Save" (borde inferior de la ventana).

Imagen 5.- Log para monitorear en el Workspace 

Configuración de Operational Insights en un servidor de SharePoint (OnPremises)

El agente que se descargó en el punto 9 de la sección anterior se debe instalar en todos los servidores de la granja de SharePoint OnPremises.

11. Copie el archivo descargado en cada uno de los servidores de la granja, y ejecútelo localmente.

12. Acepte las condiciones de uso del agente.
 
13. Seleccione un directorio para instalarlo, o acepte el por defecto.
 
14. En la ventana de "Agent Setup Options" del asistente, seleccione "Connect the agent to Microsoft Azure Operational Insights" ("Next").
Imagen 5.- Configuración del agente 
15. Regrese al administrador de Azure, segundo punto (Figura 4) y copie los valores de "Workspace ID" y "Workspace Key" (utilice el valor de "Primary Key") en las casillas correspondientes. El botón de "Advanced" permite configurar un proxy si la granja de SharePoint lo está utilizando.
Imagen 6.- Configuración del Workspace en el agente 
16. La siguiente ventana del asistente permite configurar si se desea actualizar el agente por medio de los parches mensuales de Microsoft o no. Recomendado es utilizar la opción de actualizar.
 
17. En la última ventana del asistente revise los datos configurados e instale el agente.
 
18. Abra el Panel de Control de Windows. Una nueva sección "Microsoft Monitoring Agent" ha sido instalada allí. Desde las ventanas de esta sección se puede configurar de nuevo el agente si es necesario, y se puede confirmar que está conectado a Azure.
 
19. Los servidores están ahora conectados con Operational Insights en Azure, pero los agentes instalados demoran algunas horas recopilando los primeros datos del monitoreo y enviándolos para análisis.
Imagen 7.- Consola de manejo de Operational Insights 

Configuración de Paneles de Control

La consola de manejo de Operational Insights ofrece acceso directo a algunos paneles de control, como por ejemplo el monitoreo de malware y de updates. Pero es posible crear varios otros tipos, más adaptados a las necesidades de monitoreo empresariales. Desde la consola seleccione "My Dashboard". El panel de control ("Dashboard") está compuesto de baldosas ("Tiles"), una por cada tipo de monitor que se desea configurar. Para crear nuevas baldosas, utilice el botón "Customize" en la parte inferior de la página, el que abre el menú de baldosas por defecto:

Imagen 8.- Baldosas pre-configuradas 

Seleccione y mueva el elemento al dashboard; cada elemento se convertirá en una baldosa individual, mostrando los datos monitoreados hasta el momento:

Imagen 9.- Dashboard con baldosas pre-configuradas 

Cuando hace clic sobre alguna de las baldosas, se abre una ventana con información detallada sobre las estadísticas del elemento:

Imagen 9.- Drilldown de una baldosa especifica. 

Utilizando el botón de "Customize" de nuevo, se puede seleccionar cada baldosa y modificar su forma de presentar la información o removerlo totalmente. Hay dos formas de presentación: por medio de gráficas, o por medio de números. Esta última forma de visualización permite también definir limites superior e inferior, de tal forma que la baldosa funcione como un KPI:

Imagen 10.- Configuración de una baldosa. 

 

Finalmente, las baldosas se pueden organizar en el dashboard moviéndolas con el ratón.

Búsqueda

La consola de Operational Insights tiene un sistema de búsqueda bastante poderoso que permite filtrar la información almacenada de forma rápida y precisa. Para iniciar una búsqueda, utilice el botón con la lupa ("Log Search") en la página principal de la consola. Una nueva página abre con una casilla en donde se puede crear la consulta. Por ejemplo, utilizando la consulta "Type=ConfigurationChange" se pueden ver todos los cambios de configuración registrados en todo el tiempo de monitoreo almacenado:

Imagen 11.- El sistema de búsqueda en acción 

Las consultas se pueden refinar: por ejemplo, para encontrar cuando se registró el último cambio de configuración en cada uno de los computadores monitoreados, la consulta se puede filtrar como "Type=ConfigurationChange | Measure Max(TimeGenerated) by Computer".

Las consultas de búsqueda pueden ser bastante complejas. En MSDN se puede encontrar un documento que menciona todos los parámetros posibles de utilizar y una descripción de la sintaxis para las consultas (https://azure.microsoft.com/en-us/documentation/articles/operational-insights-search/).

Automatización por medio de PowerShell

Azure dispone de una interface REST (Azure Resource Manager API, ARM) que se puede utilizar para consultar todos los datos monitoreados por Operational Insights. Para utilizar PowerShell como consola Shell con Azure ARM es recomendable utilizar alguno de los varios programas de ayuda que instalan los necesarios cmdlets en PowerShell, como por ejemplo "ARMClient" (https://github.com/projectkudu/ARMClient) o "ARMPowerShell" (https://github.com/dushyantgill/AzureResourceManagerPowerShell/archive/master.zip). Una vez instalado el último programa mencionado, para logearse en Azure ejecute el comando "Connect-ARM " desde una consola de PowerShell. El comando abre una ventana en donde se puede escribir el login y clave de Azure y realiza la conexión con el sistema.

El siguiente script muestra el ultimo error monitoreado por Operational Insights:

$subscripcionID = "[Subscripcion ID]"
$workSpace = "[Nombre Workspace]"
$baseBusqueda = "/subscriptions/$subscripcionID/resourcegroups/OI-Default-West-Europe/providers/microsoft.operationalinsights/workspaces/$workSpace/search"
$myConsulta = "Error"
$myResultado = Execute-ARMQuery -SubscriptionId $subscripcionID -HTTPVerb Post -Base $baseBusqueda -Data @{Query=$myConsulta} -APIVersion "2015-03-20"
$myResultado
 

Los valores de "$subscripcionID" y "$workSpace" se pueden encontrar en la página de Dashboard de Azure (seleccione la pestaña de "Operational Insights" y luego haga clic sobre el nombre del Workspace y utilice la pestaña de "Dashboard").

El resultado se puede ver directamente en PowerShell:

Imagen 12.- El ultimo Error monitoreado con PowerShell 

Que coincide perfectamente con el valor que se puede obtener por medio de la página de búsqueda de la consola de Operational Insights:

Imagen 13.- El ultimo Error monitoreado con la consola de Operational Insights. 

¿Es Operational Insights seguro?

Operational Insights recopila numerosa información de los servidores que monitoriza, en el caso que se discute aquí, servidores de una granja de SharePoint OnPremises. Algunos de esos datos pueden ser confidenciales, lo que plantea la pregunta si el servicio tiene los niveles de seguridad suficientes para mantener la información secreta y garantizar que no va a ser utilizada de ninguna forma fuera del control de la empresa. El esquema de seguridad utilizado por Microsoft es expuesto en la siguiente imagen (tomado de MSDN, https://azure.microsoft.com/en-us/documentation/articles/operational-insights-security/)

Imagen 14.- Esquema de seguridad de Operational Insights. 

Todas las líneas de transferencia de información utilizan Security Layers de HTTP (canales HTTPS), tanto para la comunicación entre los servidores con Azure, como dentro de Azure mismo. Los datos se mantienen separados lógicamente dentro de las bases de datos utilizando un BLOB encriptado con claves separadas para cada cliente, y los periodos de retención están definidos en los contratos de Azure. Los centros de datos de Azure son mantenidos por Microsoft mismo, garantizando todo tipo de medidas de seguridad para el acceso físico y/o remoto. Además, Microsoft garantiza que los datos no se utilizarán para ningún otro objetivo fuera del monitoreo, y nunca serán vendidos comercialmente a otras empresas.

Conclusión

Un requisito indispensable cuando se crea una granja de SharePoint OnPremises es crear un sistema de monitorización que permita mantener información sobre el funcionamiento de los servidores. Operational Insights es un servicio de Azure que permite recopilar toda la información necesaria para garantizar esa monitorización, ofreciendo además herramientas para crear paneles de control, un motor de búsqueda para compendiar la información y acceso remoto por medio de un API REST.

Operational Insights se puede configurar fácilmente y comenzar a utilizar en cuestión de minutos. Azure ofrece varias posibilidades de retención de datos, variando desde la utilización del sistema totalmente gratis con retención por una semana, hasta periodos de retención de hasta un año (servicio de pago). Microsoft garantiza también la seguridad del sistema, su mantenimiento on-line y que los datos no serán utilizados para ningún otro fin que no sea monitoreo por parte del propietario.

 

Gustavo Velez
MVP SharePoint
gustavo@gavd.net
http://www.gavd.net

***