Supervisión de aplicaciones web en AzureWeb application monitoring on Azure

Las ofertas de Plataforma como servicio (PaaS) de Azure administran automáticamente los recursos de proceso y afectan a la forma de supervisar las implementaciones.Azure platform as a service (PaaS) offerings manage compute resources for you and affect how you monitor deployments. Azure incluye varios servicios de supervisión, cada uno de los cuales realiza una función específica.Azure includes multiple monitoring services, each of which performs a specific role. Juntos, estos servicios ofrecen una solución completa para recopilar, analizar y actuar sobre los datos de telemetría de las aplicaciones y los recursos de Azure que consumen.Together, these services deliver a comprehensive solution for collecting, analyzing, and acting on telemetry from your applications and the Azure resources they consume.

Este escenario aborda los servicios de supervisión que puede usar y describe un modelo de flujo de datos para su uso con varios orígenes de datos.This scenario addresses the monitoring services you can use and describes a dataflow model for use with multiple data sources. Cuando se trata de supervisión, muchas herramientas y servicios funcionan con implementaciones de Azure.When it comes to monitoring, many tools and services work with Azure deployments. En este escenario, hemos elegido servicios disponibles precisamente porque son fáciles de consumir.In this scenario, we choose readily available services precisely because they are easy to consume. Más adelante en este artículo se tratan otras opciones de supervisión.Other monitoring options are discussed later in this article.

Casos de uso pertinentesRelevant use cases

Otros casos de uso pertinentes incluyen:Other relevant use cases include:

  • Instrumentación de una aplicación web para la supervisión de la telemetría.Instrumenting a web application for monitoring telemetry.
  • Recopilación de datos de telemetría de front-end y de back-end de una aplicación implementada en Azure.Collecting front-end and back-end telemetry for an application deployed on Azure.
  • Supervisión de las métricas y las cuotas asociadas con los servicios de Azure.Monitoring metrics and quotas associated with services on Azure.

ArquitecturaArchitecture

"Diagrama de arquitectura"

Este escenario usa un entorno administrado de Azure para hospedar una aplicación y la capa de datos.This scenario uses a managed Azure environment to host an application and data tier. Los datos fluyen por el escenario de la siguiente manera:The data flows through the scenario as follows:

  1. Un usuario interactúa con la aplicación.A user interacts with the application.
  2. El explorador y el servicio de aplicaciones emiten datos de telemetría.The browser and app service emit telemetry.
  3. Application Insights recopila y analiza datos de mantenimiento, rendimiento y uso de la aplicación.Application Insights collects and analyzes application health, performance, and usage data.
  4. Los desarrolladores y los administradores pueden revisar la información de mantenimiento, rendimiento y uso.Developers and administrators can review health, performance, and usage information.
  5. Azure SQL Database emite datos de telemetría.Azure SQL Database emits telemetry.
  6. Azure Monitor recopila y analiza las cuotas y métricas de la infraestructura.Azure Monitor collects and analyzes infrastructure metrics and quotas.
  7. Log Analytics recopila y analiza registros y métricas.Log Analytics collects and analyzes logs and metrics.
  8. Los desarrolladores y los administradores pueden revisar la información de mantenimiento, rendimiento y uso.Developers and administrators can review health, performance, and usage information.

ComponentesComponents

  • Azure App Service es un servicio de PaaS para crear y hospedar aplicaciones en máquinas virtuales administradas.Azure App Service is a PaaS service for building and hosting apps in managed virtual machines. La infraestructura de proceso subyacente en la que se ejecutan las aplicaciones se administra automáticamente.The underlying compute infrastructures on which your apps run is managed for you. App Service proporciona supervisión de las cuotas de uso de los recursos y las métricas de la aplicación, registro de la información de diagnóstico y alertas basadas en métricas.App Service provides monitoring of resource usage quotas and app metrics, logging of diagnostic information, and alerts based on metrics. Incluso mejor, puede usar Application Insights para crear pruebas de disponibilidad para probar la aplicación desde diferentes regiones.Even better, you can use Application Insights to create availability tests for testing your application from different regions.
  • Application Insights es un servicio de administración de rendimiento de aplicaciones (APM) extensible para desarrolladores y admite varias plataformas.Application Insights is an extensible Application Performance Management (APM) service for developers and supports multiple platforms. Supervisa la aplicación, detecta anomalías de la aplicación como un rendimiento deficiente o errores y envía datos de telemetría a Azure Portal.It monitors the application, detects application anomalies such as poor performance and failures, and sends telemetry to the Azure portal. Application Insights se puede utilizar también para el registro, el seguimiento distribuido y las métricas de aplicación personalizadas.Application Insights can also be used for logging, distributed tracing, and custom application metrics.
  • Azure monitor proporciona registros y métricas de infraestructura de nivel básico para la mayoría de los servicios de Azure.Azure Monitor provides base-level infrastructure metrics and logs for most services in Azure. Puede interactuar con las métricas de varias maneras, como la representación en gráficos en Azure Portal, el acceso a ellas mediante la API REST o consultarlas con PowerShell o la CLI.You can interact with the metrics in several ways, including charting them in Azure portal, accessing them through the REST API, or querying them using PowerShell or CLI. Azure Monitor también ofrece sus datos directamente en Log Analytics y otros servicios, donde los puede consultar y combinar con datos de otros orígenes del entorno local o la nube.Azure Monitor also offers its data directly into Log Analytics and other services, where you can query and combine it with data from other sources on premises or in the cloud.
  • Log Analytics ayuda a correlacionar los datos de uso y rendimiento recopilados por Application Insights con datos de rendimiento y configuración en los recursos de Azure que admiten la aplicación.Log Analytics helps correlate the usage and performance data collected by Application Insights with configuration and performance data across the Azure resources that support the app. En este escenario se usa el agente de log Analytics de Azure para enviar los registros de auditoría SQL Server a log Analytics.This scenario uses the Azure Log Analytics agent to push SQL Server audit logs into Log Analytics. Puede escribir consultas y visualizar los datos en la hoja Log Analytics de Azure Portal.You can write queries and view data in the Log Analytics blade of the Azure portal.

ConsideracionesConsiderations

Una práctica recomendada es agregar Application Insights al código durante el desarrollo con los SDK de Application Insightsy personalizar por aplicación.A recommended practice is adding Application Insights to your code during development using the Application Insights SDKs, and customizing per application. Estos SDK de código abierto están disponibles para la mayoría de los marcos de la aplicación.These open-source SDKs are available for most application frameworks. Para enriquecer y controlar los datos recopilados, incorpore el uso de los SDK para las implementaciones de pruebas y de producción en el proceso de desarrollo.To enrich and control the data you collect, incorporate the use of the SDKs both for testing and production deployments into your development process. El requisito principal es que la aplicación tenga una línea de visión directa o indirecta al punto de conexión de ingesta de Application Insights hospedado con una dirección con conexión a Internet.The main requirement is for the app to have a direct or indirect line of sight to the Applications Insights ingestion endpoint hosted with an Internet-facing address. A continuación, puede agregar datos de telemetría o enriquecer una colección de telemetría existente.You can then add telemetry or enrich an existing telemetry collection.

La supervisión en tiempo de ejecución es otra manera fácil de empezar a trabajar.Runtime monitoring is another easy way to get started. Los datos de telemetría recopilados se deben controlar mediante archivos de configuración.The telemetry that is collected must be controlled through configuration files. Por ejemplo, puede incluir métodos en tiempo de ejecución que habilitan herramientas como monitor de estado de Application Insights para implementar los SDK en la carpeta correcta y agregar las configuraciones adecuadas para comenzar la supervisión.For example, you can include runtime methods that enable tools such as Application Insights Status Monitor to deploy the SDKs into the correct folder and add the right configurations to begin monitoring.

Como Application Insights, Log Analytics proporciona herramientas para analizar datos entre orígenes, crear consultas complejas y enviar alertas proactivas en las condiciones especificadas.Like Application Insights, Log Analytics provides tools for analyzing data across sources, creating complex queries, and sending proactive alerts on specified conditions. También puede ver la telemetría en el Azure portal.You can also view telemetry in the Azure portal. Log Analytics agrega valores a los servicios de supervisión existentes como Azure monitor y también puede supervisar entornos locales.Log Analytics adds value to existing monitoring services such as Azure Monitor and can also monitor on-premises environments.

Tanto Application Insights como Log Analytics usan el lenguaje de consulta de log Analytics de Azure.Both Application Insights and Log Analytics use Azure Log Analytics Query Language. También puede usar consultas entre recursos para analizar los datos de telemetría recopilados por Application Insights y Log Analytics en una sola consulta.You can also use cross-resource queries to analyze the telemetry gathered by Application Insights and Log Analytics in a single query.

Azure Monitor, Application Insights y Log Analytics envían alertas.Azure Monitor, Application Insights, and Log Analytics all send alerts. Por ejemplo, Azure Monitor alerta sobre métricas de nivel de plataforma como el uso de CPU, mientras que Application Insights alerta sobre métricas de nivel de aplicación como el tiempo de respuesta del servidor.For example, Azure Monitor alerts on platform-level metrics such as CPU utilization, while Application Insights alerts on application-level metrics such as server response time. Azure Monitor alerta sobre nuevos eventos en el registro de actividad de Azure, mientras que Log Analytics puede emitir alertas sobre datos de métricas o eventos de los servicios configurados para usarlo.Azure Monitor alerts on new events in the Azure Activity Log, while Log Analytics can issue alerts about metrics or event data for the services configured to use it. Las alertas unificadas de Azure Monitor son una nueva experiencia unificada de alertas de Azure que usa una taxonomía diferente.Unified alerts in Azure Monitor is a new, unified alerting experience in Azure that uses a different taxonomy.

AlternativasAlternatives

En este artículo se describen las opciones de supervisión disponibles con características populares, pero dispone de muchas opciones, incluida la opción de crear sus propios mecanismos de registro.This article describes conveniently available monitoring options with popular features, but you have many choices, including the option to create your own logging mechanisms. Un procedimiento recomendado consiste en agregar servicios de supervisión a medida que crean las capas de una solución.A recommended practice is to add monitoring services as you build out tiers in a solution. Estas son algunas posibles extensiones y alternativas:Here are some possible extensions and alternatives:

Escalabilidad y disponibilidadScalability and availability

Este escenario se centra en soluciones de PaaS para la supervisión en gran parte porque administran adecuadamente la disponibilidad y la escalabilidad y están respaldadas por contratos de nivel de servicio (SLA).This scenario focuses on PaaS solutions for monitoring in large part because they conveniently handle availability and scalability for you and are backed by service-level agreements (SLAs). Por ejemplo, App Services proporciona un acuerdo de nivel de servicio garantizado para su disponibilidad.For example, App Services provides a guaranteed SLA for its availability.

Application Insights tiene límites en el número de solicitudes que se pueden procesar por segundo.Application Insights has limits on how many requests can be processed per second. Si se supera el límite de solicitudes, puede experimentar limitación de mensajes.If you exceed the request limit, you may experience message throttling. Para evitar la limitación, implemente el filtrado o el muestreo para reducir la velocidad de datosTo prevent throttling, implement filtering or sampling to reduce the data rate

Sin embargo, las consideraciones sobre alta disponibilidad para la aplicación que se va a ejecutar son responsabilidad del desarrollador.High availability considerations for the app you run, however, are the developer's responsibility. Para obtener información sobre la escala, por ejemplo, consulte la sección Consideraciones sobre escalabilidad de la arquitectura de referencia de una aplicación web básica.For information about scale, for example, see the Scalability considerations section in the basic web application reference architecture. Una vez implementada una aplicación, puede configurar pruebas para supervisar su disponibilidad mediante Application Insights.After an app is deployed, you can set up tests to monitor its availability using Application Insights.

SeguridadSecurity

La información confidencial y los requisitos de cumplimiento afectan a la recopilación, retención y almacenamiento de los datos.Sensitive information and compliance requirements affect data collection, retention, and storage. Obtenga más información sobre cómo Application Insights y log Analytics controlar la telemetría.Learn more about how Application Insights and Log Analytics handle telemetry.

También se pueden aplicar las siguientes consideraciones de seguridad:The following security considerations may also apply:

  • Desarrolle un plan para controlar la información personal si se permite a los desarrolladores recopilar sus propios datos o enriquecer los datos de telemetría existentes.Develop a plan to handle personal information if developers are allowed to collect their own data or enrich existing telemetry.
  • Tenga en cuenta la retención de datos.Consider data retention. Por ejemplo, Application Insights conserva los datos de telemetría durante 90 días.For example, Application Insights retains telemetry data for 90 days. Archive los datos a los que desea tener acceso durante períodos más largos con Microsoft Power BI, la exportación continua o la API REST.Archive data you want access to for longer periods using Microsoft Power BI, Continuous Export, or the REST API. Se aplican tarifas de almacenamiento.Storage rates apply.
  • Limite el acceso a los recursos de Azure para controlar el acceso a los datos y quién puede ver los datos de telemetría de una aplicación específica.Limit access to Azure resources to control access to data and who can view telemetry from a specific application. Para ayudar a bloquear el acceso a la telemetría de supervisión, consulte recursos, roles y control de acceso en Application Insights.To help lock down access to monitoring telemetry, see Resources, roles, and access control in Application Insights.
  • Considere la posibilidad de controlar el acceso de lectura y escritura al código de la aplicación para impedir que los usuarios puedan agregar marcadores de versión o de etiqueta que limiten la ingesta de datos de la aplicación.Consider whether to control read/write access in application code to prevent users from adding version or tag markers that limit data ingestion from the application. Con Application Insights, no hay control sobre los elementos individuales de datos una vez que se envían a un recurso, por lo que si un usuario tiene acceso a algún dato, tendrá acceso a todos los datos de un recurso individual.With Application Insights, there is no control over individual data items once they are sent to a resource, so if a user has access to any data, they have access to all data in an individual resource.
  • Si es necesario, agregue mecanismos de gobernanza para aplicar controles de directivas y costos a los recursos de Azure.Add governance mechanisms to enforce policy or cost controls over Azure resources if needed. Por ejemplo, puede utilizar Log Analytics para la supervisión relacionada con la seguridad como las directivas y el control de acceso basado en rol o usar Azure Policy para crear, asignar y administrar definiciones de directivas.For example, use Log Analytics for security-related monitoring such as policies and role-based access control, or use Azure Policy to create, assign and, manage policy definitions.
  • Para supervisar posibles problemas de seguridad y obtener una visión centralizada del estado de seguridad de los recursos de Azure, considere el uso de Azure Security Center.To monitor potential security issues and get a central view of the security state of your Azure resources, consider using Azure Security Center.

PreciosPricing

Los cargos de supervisión pueden incrementarse rápidamente, por lo que puede considerar la posibilidad de los pagos por adelantado, comprobar lo que se va a supervisar y comprobar las cuotas asociadas a cada servicio.Monitoring charges can add up quickly, so consider pricing up front, understand what you are monitoring, and check the associated fees for each service. Azure Monitor proporciona métricas básicas sin costo alguno, mientras que los costos de supervisión de Application Insights y log Analytics se basan en la cantidad de datos ingeridos y en el número de pruebas que se ejecutan.Azure Monitor provides basic metrics at no cost, while monitoring costs for Application Insights and Log Analytics are based on the amount of data ingested and the number of tests you run.

Para ayudarle a empezar, use la calculadora de precios para calcular los costos.To help you get started, use the pricing calculator to estimate costs. Para ver cómo cambiarían los precios en su caso particular, cambie las distintas opciones para hacerlas coincidir con la implementación esperada.To see how the pricing would change for your particular use case, change the various options to match your expected deployment.

Los datos de telemetría de Application Insights se envían a Azure Portal durante la depuración y después de que se haya publicado la aplicación.Telemetry from Application Insights is sent to the Azure portal during debugging and after you have published your app. Con fines de prueba y para evitar cargos, se instrumenta un volumen limitado de datos de telemetría.For testing purposes and to avoid charges, a limited volume of telemetry is instrumented. Para agregar más indicadores, puede aumentar el límite de datos de telemetría.To add more indicators, you can raise the telemetry limit. Para un control más granular, consulte muestreo en Application Insights.For more granular control, see Sampling in Application Insights.

Después de la implementación, puede ver una Live Metrics Stream de los indicadores de rendimiento.After deployment, you can watch a Live Metrics Stream of performance indicators. Estos datos no se almacenan datos (está viendo métricas en tiempo real), pero los datos de telemetría se pueden recopilar y analizar posteriormente.This data is not stored — you are viewing real-time metrics — but the telemetry can be collected and analyzed later. No se efectúa ningún cargo por los datos de Live Stream.There is no charge for Live Stream data.

Log Analytics se factura por gigabyte (GB) de datos ingeridos en el servicio.Log Analytics is billed per gigabyte (GB) of data ingested into the service. Los primeros 5 GB de datos ingeridos en el servicio Azure Log Analytics cada mes se ofrecen de forma gratuita y los datos se conservan sin ningún costo los primeros 31 días en el área de trabajo de Log Analytics.The first 5 GB of data ingested to the Azure Log Analytics service every month is offered free, and the data is retained at no charge for first 31 days in your Log Analytics workspace.

Pasos siguientesNext steps

Consulte estos recursos diseñados para ayudarle a empezar a trabajar con su propia solución de supervisión:Check out these resources designed to help you get started with your own monitoring solution:

Arquitectura de referencia de aplicación web básicaBasic web application reference architecture

Inicio de la supervisión de la aplicación Web de ASP.NETStart monitoring your ASP.NET Web Application

Recopilación de datos acerca de máquinas virtuales de AzureCollect data about Azure Virtual Machines

Supervisión de aplicaciones y recursos de AzureMonitoring Azure applications and resources

Búsqueda y diagnóstico de excepciones en tiempo de ejecución con Aplicación de Azure InsightsFind and diagnose run-time exceptions with Azure Application Insights