Introducción a Azure Monitor

¿Ya has dado el salto a la nube? Enhorabuena. Ahora disfrutarás de muchas funcionalidades que jamás habrías podido soñar hace tan solo unos pocos años atrás, pero también toca asumir nuevas responsabilidades. Lo habrás oído ya cientos de veces, pero debemos repetirlo una vez más. Todo lo que hagas en la nube debe diseñarse para permitir una monitorización continua.

Esto tiene varios motivos. Primero, por supuesto la seguridad de que todo está funcionando como debe, pero también debemos considerar que un pequeño pico o aumento de consumo de la CPU y la memoria de nuestra aplicación impactará en sobrecostes que podemos evitar. Imagina un comercio online, una oferta especial, un incremento inusualmente elevado en el número de visitas. Con una correcta monitorización también podemos escalar nuestra infraestructura para hacer frente a una elevada demanda durante las horas pico de compras.

Con esta visión, Azure ofrece herramientas de supervisión nativas, así como una amplia cartera de herramientas y servicios de terceros fácilmente integrados. Además son extensibles para monitorear recursos en entornos híbridos y multitenant; solo es cuestión de seleccionar la estrategia y la herramienta adecuadas para cada caso de uso.

Pero, ¿qué se debe monitorear? ¿Qué diferentes herramientas están disponibles? ¿y cómo deben manejarse las implementaciones híbridas o multitenant? Para responder a estas preguntas en este artículo hablaremos de Azure Monitor y sus fundamentos.

¿Qué es Azure Monitor?

Azure Monitor es una potente herramienta de análisis y generación de informes. Maximiza la disponibilidad y el rendimiento de nuestras aplicaciones al ofrecer una solución integral para recopilar, analizar y actuar sobre la telemetría desde la nube y entornos locales. Nos ayuda por tanto a comprender el rendimiento de nuestras aplicaciones e identifica de modo proactivo los problemas que las afectan y los recursos de los que dependen, y a responder de manera proactiva a las fallas que se produzcan.

¿Cómo funciona Azure Monitor?

Azure Monitor recibe datos de recursos como aplicaciones, sistemas operativos, recursos de Azure, suscripciones de Azure e inquilinos de Azure. La naturaleza del recurso define qué tipos de datos están disponibles. Un tipo de datos será una métrica, un registro u ambos. Estos datos se pueden procesar luego para realizar diferentes tareas como análisis, visualización de datos, definición de alertas, automatización e integraciones.

Métricas (Metrics)

Las métricas son medidas de determinadas características de un recurso durante un período determinado. Por ejemplo, utilización de CPU, IOPS de disco, número de conexiones, etc. Suelen ser en tiempo real y, dado que se almacenan como valores con un intervalo de recopilación estándar, son ideales para visualizarlos como gráficos que le ayudarán a ver los resultados a lo largo del tiempo.

Las métricas son valores numéricos que describen algún aspecto de un sistema en un momento determinado. Azure Monitor puede capturar métricas casi en tiempo real. Las métricas se recopilan a intervalos regulares y son útiles para crear alertas debido a su muestreo frecuente o para informar sobre el rendimiento del sistema.

Registros (Logs)

Los registros, también conocidos como logs, contienen información con marca de tiempo sobre los cambios realizados en los recursos. El tipo de información registrada varía según la fuente del registro. Los datos de registro se organizan en tablas, con diferentes conjuntos de propiedades para cada tipo de registro. Los registros pueden incluir valores numéricos, como métricas de Azure Monitor, pero la mayoría incluye datos de texto en lugar de valores numéricos.

El tipo más común de entrada de registro registra un evento. Los eventos pueden ocurrir esporádicamente en lugar de a intervalos fijos o de acuerdo con un horario. Los eventos son creados por aplicaciones y servicios, que proporcionan el contexto para los eventos.

Los datos se registran desde Azure Monitor en un área de trabajo de Log Analytics. Azure proporciona un motor de análisis y un lenguaje de consulta enriquecido. Los registros muestran el contexto de cualquier problema y son útiles para identificar las causas fundamentales. Los datos de los registros se pueden obtener utilizando su lenguaje de consulta nativo, "Kusto Query Language" o KQL. Gracias a este lenguaje de consulta podemos manipular estos datos para crear visualizaciones útiles que posteriormente podemos incluir en nuestros paneles de control.

¿Qué tipos de datos recopila Azure Monitor?

El siguiente diagrama ofrece una vista de alto nivel de Azure Monitor. A la izquierda están las fuentes de datos de Azure Monitor: aplicaciones, sistemas operativos y fuentes de datos personalizadas. En el centro del diagrama están los almacenes de datos posibles para estas métricas y registros. A la derecha están las funciones que Azure Monitor permite con estos datos recopilados, como análisis, alertas y su integración con sistemas externos.

Los datos se pueden obtener de una variedad de fuentes muy diversa. Los usuarios pueden optar por monitorear datos en diferentes niveles en la aplicación, cualquier sistema operativo y los recursos de los que depende, incluida la propia plataforma. Para cada uno de los siguientes niveles, Azure Monitor recopila los siguientes datos:

  • Datos de la aplicación: datos relacionados con el código de la aplicación personalizada. Son los datos sobre el rendimiento y la funcionalidad del código escrito, independientemente de su medio.

  • Datos del sistema operativo: datos relacionados con el sistema operativo en el que se ejecuta la aplicación, es decir, datos de las máquinas virtuales Windows o Linux que pueden ejecutarse en Azure, otra nube o localmente.

  • Datos de recursos de Azure: datos relacionados con las operaciones de un recurso de Azure, como una aplicación web o un equilibrador de carga.

  • Datos de supervisión de la suscripción de Azure: datos relacionados con la suscripción y que también incluyen datos sobre el estado y la disponibilidad de Azure.

  • Datos de supervisión de inquilinos de Azure: datos sobre los servicios de nivel de organización de Azure, como Azure Active Directory.

Dado que Azure Monitor es un sistema automático, comienza a recopilar datos de estas fuentes tan pronto como estos recursos son creados en Azure, como máquinas virtuales y aplicaciones web. También podemos ampliar los datos que recopila Azure Monitor mediante:

  • Habilitación de diagnósticos: para algunos recursos, como Azure SQL Database, recibe información completa sobre un recurso solo después de habilitar el registro de diagnóstico para él. Puede usar Azure Portal, la CLI de Azure o PowerShell para habilitar los diagnósticos.

  • Agregar un agente: para máquinas virtuales, puede instalar el agente de Log Analytics y configurarlo para enviar datos a un área de trabajo de Log Analytics. Este agente aumenta la cantidad de información que se envía a Azure Monitor.

Consideraciones clave para la monitorización de recursos en Azure

La planificación de un marco de monitorización de la nube es un aspecto importante. Como ya se ha mencionado, los datos utilizados por cualquier sistema de monitorización se pueden clasificar en dos categorías: registros y métricas.

Por otro lado, los sistemas en la nube están muy distribuidos, lo que significa que hay muchos canales que producen datos en un momento dado, algunos muy volátiles y generando un gran volumen de datos.

Para encontrar una solución debemos considerar y resolver los siguientes puntos:

  • Agregación: los usuarios deben poder ver e incorporar todas las fuentes de datos sin problemas a través de su entorno de Azure, capturar los datos generados, ya sean registros o mediciones, y almacenar esta información en un almacén de datos centralizado.

  • Ingestión: las canalizaciones de datos son responsables de procesar grandes volúmenes de datos que pueden experimentar una cantidad considerable de presión en ciertas situaciones, lo que resulta en la falla de los componentes. Los remitentes de datos deben estar diseñados para ser lo suficientemente resistentes como para acomodar cantidades enormes y fluctuantes de datos, así como los servicios de backend de almacenamiento a los que envían los datos.

  • Almacenamiento: los datos obtenidos de varias fuentes de datos de Azure deben almacenarse en un almacén de datos consolidado capaz de proporcionar la escala necesaria para admitir el crecimiento de datos y las ráfagas de datos. Al diagnosticar un problema de producción, lo último que debemos esperar  es un almacén de datos defectuoso porque ha superado la capacidad.

  • Procesamiento: si no podemos procesar los datos almacenados, sería más difícil interpretarlos.

  • Análisis: los usuarios finales deben poder interpretar los datos de supervisión de Azure de manera eficiente mediante el uso de visualizaciones y cuadros de mando para poder examinar los datos desde diferentes perspectivas.

  • Alertas: para estar al tanto de los problemas con el entorno de Azure, debemos poder activar alertas que se actualizarán en tiempo real. Esto hace que sea más fácil para los administradores estar más informados y estar al tanto de los incidentes a medida que surgen.

Servicios de Azure

Los servicios de Azure son los recursos ofrecidos por Microsoft Azure como Azure Active Directory, Logic Apps,  Service Bus, Event Hubs, Event Grids, Function Apps, etc. A continuación se definimos los datos o parámetros que están habilitados para los servicios de Azure para monitoreo:

  • Métricas: el servicio recopila automáticamente métricas en Azure Monitor Metrics.

  • Registros: el servicio admite que la configuración de diagnóstico recopile registros y métricas de la plataforma en los registros de Azure Monitor.

  • Insight: el servicio recopila la información disponible para los servicios y aplicaciones creadas ofreciendo una experiencia de supervisión personalizada.

Alertas

En Azure Monitor, las alertas notifican de forma proactiva cuando se detectan problemas en nuestra infraestructura o aplicación utilizando sus datos de supervisión. Incluso antes de que un problema serio se produzca, podemos definir alertas que nos permitan identificar y abordar todo tipo de escenarios.

Las reglas de alerta están separadas de las alertas y las acciones que se toman cuando se dispara una alerta. La regla de alerta logra capturar el objetivo de la alerta y los criterios de alerta. Es posible tener la regla de alerta en un estado habilitado o deshabilitado. Las alertas se activan solo cuando están habilitadas y se alcanza una coincidencia con la condición definida.

Metric Alerts

Las alertas basadas en métricas se utilizan para lograr una supervisión de los recursos de Azure. Azure Monitor ejecuta condiciones de activación de alertas de métricas a intervalos regulares. Cuando la evaluación es verdadera, Azure Monitor envía una notificación. Las alertas de métricas tienen estado y Azure Monitor enviará una notificación sólo cuando se cumplan las condiciones previas. Las alertas de métricas pueden ser útiles si, por ejemplo, necesitamos saber cuándo la utilización de la CPU de un servidor está alcanzando un umbral crítico del 90%. Esto hará que podamos recibir una alerta cuando el almacenamiento de una base de datos se está quedando demasiado bajo o cuando la latencia de la red esté a punto de alcanzar niveles inaceptables.

Log Alerts

Las alertas basadas en registro de actividad permiten recibir una notificación cuando ocurre un evento específico en algún recurso de Azure. Por ejemplo, podemos recibir una notificación cuando alguien crea una nueva máquina virtual en una suscripción. Un registro de actividad también puede incluir alertas sobre el estado del servicio de Azure. Las alertas de registro de actividad están diseñadas para funcionar con recursos de Azure. Normalmente, crea este tipo de registro para recibir notificaciones cuando se producen cambios específicos en un recurso dentro de la suscripción de Azure.

Herramientas nativas de supervisión de Azure

Azure ofrece herramientas prácticas de monitorización nativas. A continuación se enumeran algunas de las herramientas de supervisión nativas comunes que ofrece Azure:

Registros de actividad

El registro de actividad de Azure es un registro de suscripción que brinda información sobre los eventos de nivel de suscripción que se han creado en Azure. Incorpora un alcance de información, desde información operativa de Azure Resource Manager hasta actualizaciones sobre eventos de estado del servicio.

Análisis de registros

Azure Log Analytics Workspace es la unidad de almacenamiento lógica donde se recopilan y almacenan los datos de registro. Puede considerarse como la unidad de administración principal de Azure Monitor Logs. Se utiliza para recopilar datos de diversas fuentes como Azure Virtual Machines, Windows o Linux Virtual Machines, Azure Resources en una suscripción, etc.

Alertas de Azure

Alerta es un servicio de supervisión ofrecido por Azure Monitor que notifica de forma proactiva al usuario cuando se encuentran problemas con su infraestructura o aplicación utilizando sus datos de supervisión en Azure Monitor. Hay tres tipos de alertas de Azure disponibles:

  • Metric Alerts: estas alertas supervisarán los recursos de Azure en función de las métricas que son específicas de los recursos de Azure y alertarán al usuario siempre que haya una infracción con el valor de umbral configurado. Por ejemplo, la métrica Recuento de mensajes no entregados para el bus de servicio, Ejecución correcta para Azure Logic Apps.

  • Log Alerts: estas alertas permiten a los usuarios monitorear las consultas de Log Analytics mediante la evaluación de registros de recursos con cada frecuencia establecida y desencadenar una notificación basada en los valores devueltos por la consulta.

  • Activity Log Alerts: las alertas de registro de actividad enviarán un informe de alerta cada vez que se produzca un nuevo evento de registro de actividad que coincida con la condición especificada.

Azure Diagnostics

Azure Diagnostics ofrece capacidades para exportar a métricas y actividad a registros a otros recursos para la supervisión y manipulación personalizadas. Estos registros de diagnóstico se pueden pasar a recursos como Azure Storage, el área de trabajo de Log Analytics y Event hubs para su posterior procesamiento.

Métricas de Azure

Las métricas son valores numéricos que describen algún aspecto de un sistema en un momento determinado. Las métricas se recopilan a intervalos regulares que se pueden usar para análisis, visualización y monitorización. Cada recurso de Azure ofrece un amplio conjunto de métricas específicas para esos recursos que se pueden usar para crear gráficos y alertas.

Azure Service Health

Azure Service Health nos informa sobre cualquier tiempo de inactividad planificado. Debido a razones de mantenimiento, algunos recursos y regiones pueden tener algún impacto, y esto se informará a los usuarios con anticipación para que puedan actuar en consecuencia.

El estado del servicio de Azure contiene tres eventos que lo ayudan a comprender mejor algunos errores inesperados y tiempos de inactividad planificados.

  • Problemas de servicio: contiene informes de los problemas actuales que ocurren en Azure, como interrupciones del servicio, etc., e incluso la solución del equipo de desarrollo de Azure también se puede encontrar aquí.

  • Mantenimiento planificado: contiene informes del servicio de mantenimiento planificado programado por Azure e incluso informes de alguna solución sobre cómo podría lograr un menor impacto en este tiempo de inactividad.

  • Avisos de salud: informa problemas que requieren su acción para evitar la interrupción del servicio

Azure Advisor

Azure Advisor es un asesor de nube personalizado que nos ayuda a seguir las mejores prácticas y consejos para optimizar nuestras implementaciones en Azure. Analiza las configuraciones de recursos y la telemetría de uso y recomienda las mejores soluciones posibles.

Azure Application Insights

Application Insights se utiliza para monitorear aplicaciones en vivo y para detectar y analizar problemas en las aplicaciones.

Herramientas de supervisión de Azure de terceros

Muchas empresas disponen de proyectos que conviven en varios tipos de ambientes diferentes. Desde ambientes On-Premises, híbridos a multiCloud. Cuando se trabaja con soluciones cloud procedentes de diferentes proveedores es posible que las herramientas de monitorización de Azure se vuelvan insuficientes. Es por eso que muchas empresas apuestan por herramientas diferentes a las herramientas de supervisión nativas que ofrece Azure. Algunos ejemplos son:

Dynatrace

Dynatrace lleva la infraestructura y la nube, el rendimiento de las aplicaciones y el monitoreo de la experiencia digital en una solución automatizada todo en uno que funciona con inteligencia artificial. Dynatrace es principalmente útil para que los desarrolladores realicen la monitorización de aplicaciones, infraestructura y nube.

AppDynamics

AppDynamics proporciona una visibilidad de extremo a extremo del rendimiento de nuestra aplicación. Proporcionan supervisión del usuario final, visibilidad de la infraestructura, supervisión del rendimiento de las aplicaciones y supervisión del rendimiento empresarial.

Datadog

Datadog es un servicio de monitorización para aplicaciones de múltiples escalas en la nube, que brinda monitorización de servidores, bases de datos, herramientas y servicios, a través de una plataforma de análisis de datos basada en SaaS.

NewRelic

New Relic Infrastructure se puede usar para monitorear servicios de Azure según la consulta del usuario. New Relic ofrece servicios de monitorización para aplicaciones en la nube, servidores, bases de datos, contenedores y monitorización de infraestructura y cloud.

Conclusiones

Que la nube ha llegado para quedarse creo que ya es algo que nadie puede discutir. Es por eso que debemos enfatizar la importancia de la monitorización de lo que ocurre en la nube. Esto nos impedirá incurrir en gastos extra, optimizar procesos y prevenir posibles escenarios que impacten en una pérdida de producción. En otras palabras, más vale prevenir que curar. ¿Cierto?

Lo habrás oído ya cientos de veces, pero hay que repetirlo. Todo lo que hagas en la nube debe permitir una monitorización continua. Por eso queremos que conozcas Azure Monitor, una herramienta que nos ayuda a comprender el rendimiento de nuestras aplicaciones e identifica los problemas y los recursos que se necesitan.

 

 

Guía de posibilidades profesionales sobre Azure
He leído y acepto la política de privacidad
Acepto recibir emails sobre actividades de recruiting NTT DATA