DevOps 모니터링Monitoring for DevOps

확인할 수 없는 항목은 측정할 수 없습니다.What you cannot see, you cannot measure. 측정할 수 없는 항목은 개선할 수 없습니다.What you cannot measure, you cannot improve. 이 클래식 관리 axiom 클라우드에서도 마찬가지입니다.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, 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 가로의 상태를 확인 하기 위한 풍부한 메트릭과 로그를 제공 하는 Azure Monitor의 구성 요소 중 하나입니다.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. 응용 프로그램이 Virtual Machines, App Services 또는 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 Service에서 실행 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 클러스터에 대해 쉽게 구성할 수 있습니다. 컨테이너 Insights는 노드의 CPU 및 메모리 압력에서 개별 Kubernetes pod의 로그에 이르기까지 신속 하 고 시각적 이며 조치 가능한 정보를 제공 합니다.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 모니터링 도구를 사용 하는 것을 선호 하지만 Azure Monitor Container Insights를 사용 하는 것과 같은 연산자의 경우 두 솔루션을 서로 통합할 수 있습니다.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.

사이드카 패턴 은 주 컨테이너에 필요한 책임이 있는 별도의 컨테이너를 추가 합니다. 일반적인 사용 사례는 로깅 유틸리티 및 모니터링 에이전트를 실행 하는 것입니다.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 구성 요소를 네트워크 모니터링 및 문제 해결 도구의 컬렉션인 Network Watcher 이라고 합니다.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:

  • 트래픽 분석는 Microsoft 위협 인텔리전스 데이터베이스를 활용 하 여 악의적인 IP 주소에서 들어오는 백분율 뿐만 아니라 가상 네트워크의 트래픽에 대 한 개요를 제공 합니다.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.
  • 네트워크 성능 관리자는 여러 링크를 통해 네트워크 연결의 성능을 측정 하는 가상 트래픽을 생성 하 여 시간에 따른 WAN 및 인터넷 연결의 진화와 Microsoft Express 경로 회로에 대 한 중요 한 모니터링 정보를 제공 하는 관점을 제공 합니다.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:

  • 활동 로그: Azure api를 통해 발생 한 모든 변경 내용을 볼 수 있는 트레일 감사입니다.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 Service Health: 경우에 따라 초래한는 구성 변경으로 인 한 것이 아니라 Azure 플랫폼 자체의 결함에 의해 중단 됩니다.Azure Service Health: sometimes outages are provoked not by configuration changes, but by glitches in the Azure platform itself. Azure Service Health 로그의 응용 프로그램에 영향을 주는 Azure 관련 문제에 대 한 정보를 찾을 수 있습니다.You can find information about any Azure-related problem impacting your application in the Azure Service Health logs.
  • Azure Advisor: 비용을 줄이거나, 보안 상태를 개선 하거나, 환경의 가용성을 높이기 위해 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 Security Center:이 기둥의 초점은 아니지만 완전성을 위해 포함 됩니다. Azure Security Center 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와 같은 IT 서비스 관리 도구에서 티켓을 자동으로 열 수 있습니다.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의 보고서는 IT 팀의 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 지원 Faq를 참조 하세요.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. Microsoft의 자사 제품은 경고 및 자동화 된 작업과 데이터 시각화를 트리거하는 기능을 포함 하 여 인프라에서 응용 프로그램 코드로의 메트릭 및 로그를 위한 종합적인 솔루션인 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.