Мониторинг для DevOpsMonitoring for DevOps

Что вы не видите, вы не можете измерять.What you cannot see, you cannot measure. Вы не можете измерить их, но вы не сможете улучшить.What you cannot measure, you cannot improve. Этот класс Classic Management аксиома также имеет значение true в облаке.This classic management axiom is true in the cloud as well. Традиционное наблюдение за приложениями и инфраструктурой основано на том, работает приложение или нет, а также какое время отклика он предоставляет.Traditional application and infrastructure monitoring is based on whether the application is running or not, or what response time it is giving. Однако мониторинг на основе облака предоставляет множество дополнительных возможностей, которые следует использовать для предоставления пользователям лучших возможностей.However, cloud-based monitoring offer many more opportunities that you should be leveraging in order to give your users the best experience.

Мониторинг приложенийApplication Monitoring

Application Insights — это служба Azure, которая позволяет не только проверять, правильно ли работает приложение, но и упрощает устранение неполадок приложений, а также может использоваться для настраиваемой бизнес-телеметрии, которая сообщит о том, используется ли ваше приложение в качестве предполагаемого.Application Insights is the Azure Service that allows not only to verify that your application is running correctly, but it makes application troubleshooting easier, and can be used for custom business telemetry that will tell you whether your application is being used as intended.

Убедитесь, что вы используете все подробные сведения, которые Application Insights может предоставить ваше приложение.Make sure you leverage all the rich information that Application Insights can provide about your application. Этот список не является исчерпывающим, но здесь можно найти некоторую видимость, которую Application Insights может предоставить вам:This list is not exhaustive, but here you can find some of the visibility that Application Insights can give you:

  • Application Insights предлагает панель мониторинга по умолчанию с обученным предположением наиболее важных метрик, которые будут интересны.Application Insights offers you a default dashboard with an educated guess of the most important metrics you will be interested in. Затем его можно изменить и настроить в качестве собственных потребностей.You can then modify it and customize it to your own needs.
  • При правильном инструментировании приложения Application Insights предоставит статистику производительности как с клиента, так и с точки зрения сервера.By instrumenting your application correctly, Application Insights will give you performance statistics both from a client and a server perspective
  • Схема приложения показывает зависимости приложений в других службах, таких как внутренние API или базы данных, что позволяет определить визуальное отображение проблем с производительностью.The Application Map will show you application dependencies in other services such as backend APIs or databases, allowing to determine visually where performance problems lie
  • Интеллектуальное обнаружение выдаст предупреждение при возникновении аномалий в модели производительности или использования.Smart Detection will warn you when anomalies in performance or utilization patterns happen
  • Анализ использования позволяет получить данные телеметрии о наиболее часто используемых функциях приложения или о том, используются ли все функциональные возможности приложения.Usage Analysis can give you telemetry on which features of your application are most frequently used, or whether all your application functionality is being used. Эта функция особенно полезна после внесения изменений в функции приложения, чтобы проверить успешность этих изменений.This feature is especially useful after changes to the application functionality, to verify whether those changes were successful
  • Заметки к выпуску — это визуальные индикаторы в Application Insights диаграммах новых сборок и других событий, позволяющих визуально сопоставлять изменения в производительности приложения с выпусками кода, позволяя быстро выявлять проблемы с производительностью.Release annotations are visual indicators in your Application Insights charts of new builds and other events, so that you can visually correlate changes in application performance to code releases, being able to quickly pinpoint performance problems.
  • Диагностика транзакций между компонентами позволяет выполнять неудачные транзакции, чтобы найти точку в архитектуре, в которой была создана ошибка.Cross-component transaction diagnostics allow you to follow failed transactions to find the point in the architecture where the fault was originated.
  • Snapshot Debugger, чтобы автоматически собираются моментальный снимок действующего приложения в случае исключения, чтобы проанализировать его на более позднем этапе.Snapshot Debugger, to automatically collect a snapshot of a live application in case of an exception, to analyze it at a later stage.

Для использования Application Insights есть два варианта: вы можете использовать мониторинг без написания кода, где подключение приложения к Application Insights не требует какого-либо изменения кода или мониторинга на основе кода, где вы выполняете инструментирование кода для отправки данных телеметрии Application Insights используя пакет средств разработки программного обеспечения для выбранного языка программирования.To use Application Insights you have two options: you can use codeless monitoring, where onboarding your app to Application Insights does not require any code change, or code-based monitoring, where you instrument your code to send telemetry to Application Insights using the Software Development Kit for your programming language of choice.

Вы наверняка можете использовать другие средства управления производительностью приложений для мониторинга приложения в Azure, например NewRelic или AppDynamics, но Application Insights предоставит наиболее простой и интегрированный интерфейс.You can certainly use other Application Performance Management tools to monitor your application on Azure, such as NewRelic or AppDynamics, but Application Insights will give you the most seamless and integrated experience.

Мониторинг платформыPlatform Monitoring

Application Insights на самом деле является одним из компонентов Azure Monitor, который предоставляет обширные метрики и журналы для проверки состояния полной ориентации Azure.Application Insights is actually one of the components of Azure Monitor, which gives you rich metrics and logs to verify the state of your complete Azure landscape. Независимо от того, выполняется ли ваше приложение на виртуальных машинах, в службах приложений или Kubernetes, Azure Monitor поможет вам отслеживать состояние инфраструктуры и реагировать на вопросы немедленно при возникновении каких-либо проблем.No matter whether your application is running on Virtual Machines, App Services, or Kubernetes, Azure Monitor will help you to follow the state of your infrastructure, and to react promptly if there are any issues.

Убедитесь, что не только Следите за элементами вычислений, поддерживающими код приложения, но ваша платформа данных также должна быть тщательно отслеживаться, так как низкая производительность уровня данных приложения может иметь серьезные последствия.Make sure not only to monitor your compute elements supporting your application code, but your data platform as well: databases, storage accounts, or data lakes should be closely monitored, since a low performance of the data tier of an application could have serious consequences.

Аналитика контейнераContainer Insights

Если ваше приложение работает в службе Azure Kubernetes, Azure Monitor позволяет легко отслеживать состояние кластера, узлов и модулей Pod.Should your application run on Azure Kubernetes Service, Azure Monitor allows you to easily monitor the state of your cluster, nodes, and pods. Простая настройка для кластеров AKS, контейнерная аналитика предоставляет быстрые, визуальные и полезные сведения: от нагрузки на ЦП и памяти узлов до журналов отдельных модулей Kubernetes.Easy to configure for AKS clusters, Container Insights delivers quick, visual, and actionable information: from the CPU and memory pressure of your nodes to the logs of individual Kubernetes pods.

Кроме того, для операторов, предпочитающих использовать средство мониторинга Kubernetes с открытым исходным кодом Prometheus, но по-прежнему похоже на простоту использования Azure Monitor контейнерной аналитики, оба решения могут интегрироваться друг с другом.Additionally, for operators that prefer using the open-source Kubernetes monitoring tool Prometheus but still like the ease of use of Azure Monitor Container Insights, both solutions can integrate with each other.

GitHub . шаблон расширения добавляет отдельный контейнер с обязанностями, необходимыми для основного контейнера.GitHub The Sidecar Pattern adds a separate container with responsibilities that are required by the main container. Типичный вариант использования — запуск служебных программ и агентов мониторинга.A common use case is for running logging utilities and monitoring agents.

Мониторинг сетейNetwork monitoring

Независимо от форм-фактора или языка программирования, на котором основано приложение, сеть, соединяющая ваш код с пользователями, может сделать или прервать работу, которую предоставляет ваше приложение.Regardless the form factor or programming language your application is based on, the network connecting your code to your users can make or break the experience that your application provides. Как следствие, мониторинг и устранение неполадок сети может быть деЦисиве для группы эксплуатации.As a consequence monitoring and troubleshooting the network can be decisive for an operations team. Компонент Azure Monitor, который управляет сетевыми компонентами, называется наблюдатель за сетями, набором средств мониторинга сети и устранения неполадок.The component of Azure Monitor that manages the network components is called Network Watcher, a collection of network monitoring and troubleshooting tools. Эти средства включают следующее.Some of these tools are:

  • Аналитика трафика предоставит обзор трафика в виртуальных сетях, а также процент, поступающий от вредоносных IP-адресов, используя базы данных Microsoft Threat Intelligence.Traffic Analytics will give you an overview of the traffic in your Virtual Networks, as well as the percentage coming from malicious IP addresses, leveraging Microsoft Threat Intelligence databases. Это средство покажет вам также системы в виртуальных сетях, которые создают большую часть трафика, чтобы вы могли визуально выявлять узкие места, прежде чем они будут выдавать проблемы.This tool will show you as well the systems in your virtual networks that generate most traffic, so that you can visually identify bottlenecks before they degenerate into problems.
  • Диспетчер производительности сети может создавать искусственный трафик для измерения производительности сетевых подключений по нескольким каналам, что дает вам возможность постепенного развития подключений к глобальной сети и подключения к Интернету, а также предоставляет ценные сведения для мониторинга каналов Microsoft ExpressRoute.Network Performance Manager can generate synthetic traffic to measure the performance of network connections over multiple links, giving you a perspective on the evolution of WAN and Internet connections over time, as well as offering valuable monitoring information about Microsoft ExpressRoute circuits.
  • Диагностика VPN может помочь в устранении неполадок VPN-подключений типа "сеть — сеть", соединяющих приложения с локальными пользователями.VPN diagnostics can help troubleshooting site-to-site VPN connections connecting your applications to users on-premises.
  • Монитор подключений позволяет измерять доступность сети между наборами конечных точек.Connection Monitor allows you to measure the network availability between sets of endpoints.

Другие источники данныхOther information sources

Не только компоненты приложения создают данные, но для эффективной работы облачной среды необходимо отвести много других сигналов:Not only your application components are producing data, but there are many other signals that you need to track to effectively operate a cloud environment:

  • Журнал действий. это аудит аудита, позволяющий увидеть каждое изменение, которое прошло через API-интерфейсы Azure.Activity Log: this is a trail audit that lets you see every change that has gone through Azure APIs. Это может быть важно для понимания внезапных изменений производительности или проблем, которые могли быть вызваны неисправной конфигурацией платформы Azure.It can be critical to understand sudden performance changes or problems, that might have been due to a misconfiguration of the Azure platform.
  • Работоспособность службы Azure. Иногда сбои провокедся не изменениями в конфигурации, но возникают в самой платформе Azure.Azure Service Health: sometimes outages are provoked not by configuration changes, but by glitches in the Azure platform itself. Вы можете найти сведения о любой проблеме, связанной с Azure, которая влияет на приложение в журналах работоспособности служб Azure.You can find information about any Azure-related problem impacting your application in the Azure Service Health logs.
  • Помощник по Azure. здесь вы найдете рекомендации по оптимизации платформы Azure, чтобы снизить затраты, повысить уровень безопасности или повысить доступность среды.Azure Advisor: find here recommendations about how to optimize your Azure platform to reduce costs, improve your security posture, or increase the availability of your environment.
  • Центр безопасности Azure: не Сосредоточьтесь на этой статье, но для полноты работы. Центр безопасности Azure поможет понять, настроены ли ресурсы Azure в соответствии с рекомендациями по обеспечению безопасности.Azure Security Center: not a focus of this pillar, but to be included for completeness: Azure Security Center can help you to understand whether your Azure resources are configured according to security best practices

Рекомендации по мониторингуMonitoring best practices

Корреляция событийEvent correlation

Одним из важнейших преимуществ Azure Monitor является то, что это средство мониторинга для всей платформы Azure.One critical advantage of Azure Monitor is that it is the monitoring tool for the whole Azure platform. Как показано в предыдущих разделах, Azure Monitor содержит метрики и журналы, относящиеся к коду приложения, платформе, в которой он выполняется, компонентам данных, а также к сети, соединяющей приложение с пользователями.As the previous sections have shown, Azure Monitor holds metrics and logs relevant to your application code, the platform where it is running, the data components, as well as the network connecting the application to its users. Это позволяет операторам сравнивать метрики различных компонентов приложения друг с другом и находить зависимости, которые могли быть скрыты в противном случае.This enables operators to compare metrics of different application components to each other, and find out dependencies that might have been hidden otherwise.

Панели мониторинга в Azure предлагают отличный способ предоставления обширной информации, содержащейся в Azure Monitor другим пользователям.Dashboards in Azure offer a great way of exposing the rich information contained in Azure Monitor to other users. Обязательно создайте общие панели мониторинга, чтобы предоставить релевантную информацию различным группам, участвующим в работе приложения, включая разработчиков и операторов.Make sure to create shared dashboards in order to expose relevant information to the different groups involved in operating your application, including Developers and Operators. Если требуются более сложные визуализации, Azure Monitor данные можно экспортировать в Power BI для расширенного анализа данных.If more complex visualizations are required, Azure Monitor data can be exported to Power BI for advanced data analysis.

УведомленияNotifications

Независимо от того, предназначена ли для мониторинга приложений, сети или платформы, не следует ждать, чтобы операторы постоянно проглядели на панелях мониторинга.Whether it is for application, network or platform monitoring, you should not expect operators to constantly look at dashboards. Вместо этого следует использовать оповещения для отправки упреждающих уведомлений соответствующим пользователям, которые будут реагировать на них.Instead, alerts should be used to send proactive notifications to the relevant individuals that will react on them. Группы действий в Azure Monitor могут использоваться для уведомления нескольких получателей, запуска автоматизированных действий или для автоматического открытия билетов в средствах управления ИТ, таких как ServiceNow.Action groups in Azure Monitor can be used to notify multiple recipients, to trigger automated actions, or even to automatically open tickets in IT Service Management Tools such as ServiceNow.

Автоматизация вокруг оповещений очень важна из-за высокой совместной работы DevOps и внутренней скорости, необходимой для эффективного управления инцидентами.Automation around alerts is critical due to the highly collaborative nature of DevOps and the inherent speed needed for effective incident management. Ранее в этом году отчет от DevOps.com сообщает о том, что 80% ИТ-отделов уведомляются о критических инцидентах по электронной почте.Earlier this year, a report from DevOps.com came out stating that 80% of IT teams are alerted to critical incidents via email. Электронная почта — это эффективная форма взаимодействия, но она не должна быть самым распространенным методом уведомления о критических проблемах.Email is an effective form of communication, but it shouldn’t be the most common notification method for a critical issue. Вместо этого, если можно определить действия, выполняемые при получении определенных предупреждений (например, увеличение или уменьшение), система будет самостоятельно восстановлена.Instead, if you can define actions to be executed upon receiving certain alerts (such as scaling up or down) your system will be self-healing.

Другие задачи мониторингаOther monitoring tasks

Помимо Azure Monitor необходимо следить за определенными событиями, чтобы обеспечить бесперебойную работу приложения:Beyond Azure Monitor, you will want to keep an eye on certain events to make sure that your application is running smoothly:

  • Ознакомьтесь с ограничениями подписки Azure на ресурсы и убедитесь, что вы не слишком близки.Review Azure subscription limits for your resources, and make sure you are not coming too close.
  • Общие сведения о планах поддержки Azure.Understand Azure support plans. См. вопросы и ответы о поддержке Azure.Refer to Azure support FAQs. Ознакомьтесь с командой службы поддержки Azure.Familiarize your team with Azure support.
  • Убедитесь, что вы отслеживаете даты истечения срока действия цифровых сертификатов или еще лучше настраиваете автоматическое продление цифровых сертификатов с Azure Key Vault.Make sure that you monitor expiration dates of digital certificates, or even better, configure automatic digital certificate renewal with Azure Key Vault.

ИтогиSummary

Для управления ресурсами Azure можно использовать любую платформу мониторинга.You can use any monitoring platform to manage your Azure resources. Первое предложение корпорации Майкрософт — Azure Monitor, комплексное решение для метрик и журналов из инфраструктуры в код приложения, включая возможность запуска предупреждений и автоматизированных действий, а также визуализации данных.Microsoft's first party offering is Azure Monitor, a comprehensive solution for metrics and logs from the infrastructure to the application code, including the ability to trigger alerts and automated actions as well as data visualization.