Azure Monitor를 사용하여 가상 머신 모니터링: 데이터 수집

이 문서는 Azure Monitor에서 가상 머신 및 해당 워크로드 모니터링 가이드의 일부입니다. Azure Monitor 에이전트를 Azure Monitor에 배포하고 Azure Monitor의 하이브리드 가상 머신에 배포한 후 데이터 수집을 구성하는 방법을 설명합니다.

이 문서에서는 가상 머신에서 가장 일반적인 유형의 원격 분석을 수집하는 방법에 대한 지침을 제공합니다. 선택하는 정확한 구성은 머신에서 실행하는 워크로드에 따라 달라집니다. 각 섹션에는 해당 데이터와 함께 사용할 수 있는 샘플 로그 검색 경고가 포함되어 있습니다.

  • 가상 머신에서 수집된 원격 분석을 분석하는 방법에 대한 자세한 내용은 Azure Monitor를 사용하여 가상 머신 모니터링: 모니터링 데이터 분석을 참조하세요.
  • 가상 머신에서 수집된 원격 분석을 사용하여 Azure Monitor에서 경고를 만드는 방법에 대한 자세한 내용은 Azure Monitor: 경고를 사용하여 가상 머신 모니터링을 참조 하세요.

참고 항목

이 시나리오에서는 Azure 및 하이브리드 가상 머신 환경의 전체 모니터링을 구현하는 방법을 설명합니다. 첫 번째 Azure 가상 머신 모니터링을 시작하려면 Azure 가상 머신 모니터링을 참조하세요.

데이터 수집 규칙

Azure Monitor 에이전트의 데이터 수집은 Azure 구독에 저장되고 가상 머신과 연결된 하나 이상의 DCR(데이터 수집 규칙) 에 의해 정의됩니다.

가상 머신의 경우 DCR은 이벤트 및 성능 카운터와 같은 데이터를 정의하여 데이터를 전송해야 하는 Log Analytics 작업 영역을 수집하고 지정합니다. DCR은 변환을 사용하여 원치 않는 데이터를 필터링하고 계산 열을 추가할 수도 있습니다. 단일 머신을 여러 DCR과 연결할 수 있으며 단일 DCR을 여러 컴퓨터에 연결할 수 있습니다. DCR은 Azure Monitor 에이전트가 처리하는 위치와 연결된 모든 머신에 전달됩니다.

데이터 수집 규칙 보기

Azure Portal의 모니터 메뉴에 있는 데이터 수집 규칙에서 Azure 구독의 DCR을 볼 수 있습니다. DCR은 Azure Monitor에서 다른 데이터 수집 시나리오를 지원하므로 모든 DCR이 가상 머신에 반드시 사용되는 것은 아닙니다.

Screenshot that shows DCRs in the Azure portal.

데이터 수집 규칙 만들기

데이터 수집 시나리오에 따라 DCR을 만드는 방법에는 여러 가지가 있습니다. 경우에 따라 Azure Portal에서 구성을 안내합니다. 다른 시나리오에서는 DCR을 직접 편집해야 합니다. VM 인사이트를 구성하면 자동으로 미리 구성된 DCR이 만들어집니다. 다음 섹션에서는 수집할 공통 데이터와 데이터 수집을 구성하는 방법을 식별합니다.

경우에 따라 기능을 추가하기 위해 기존 DCR 을 편집해야 할 수 있습니다. 예를 들어 Azure Portal을 사용하여 Windows 또는 Syslog 이벤트를 수집하는 DCR을 만들 수 있습니다. 그런 다음 수집하지 않으려는 이벤트의 열을 필터링하기 위해 해당 DCR에 변환을 추가하려고 합니다.

환경이 성숙하고 복잡성이 커짐에 따라 DCR을 구성하여 관리를 돕기 위한 전략을 구현해야 합니다. 다양한 전략에 대한 지침은 Azure Monitor에서 데이터 수집 규칙 만들기 및 관리에 대한 모범 사례를 참조하세요.

비용 제어

Azure Monitor 비용은 수집하는 데이터의 양에 따라 달라지므로 모니터링 요구 사항을 충족하는 데 필요한 것보다 더 많은 데이터를 수집하지 않는지 확인합니다. 구성은 예산과 가상 머신 운영에 필요한 인사이트 양 사이의 균형입니다.

Azure Monitor 비용을 줄이기 위한 전략은 비용 최적화 및 Azure Monitor를 참조하세요.

일반적인 가상 머신은 매월 1GB에서 3GB 사이의 데이터를 생성합니다. 이 데이터 크기는 컴퓨터의 구성, 컴퓨터에서 실행되는 워크로드 및 DCR의 구성에 따라 달라집니다. 전체 가상 머신 환경에서 데이터 수집을 구성하기 전에 일부 대표 컴퓨터에서 수집을 시작하여 환경 전체에 배포될 때 예상되는 비용을 더 잘 예측합니다. 컴퓨터별 데이터 볼륨의 Log Analytics 작업 영역 인사이트 또는 로그 쿼리를 사용하여 각 컴퓨터에 대해 수집된 청구 가능한 데이터의 양을 확인하고 그에 따라 조정합니다.

수집된 데이터를 평가하고 다음 조건을 충족하는 데이터를 필터링하여 비용을 절감합니다. 수집하는 각 데이터 원본에는 원치 않는 데이터를 필터링하는 다른 방법이 있을 수 있습니다. 각 공통 데이터 원본에 대한 자세한 내용은 아래 섹션을 참조하세요.

  • 경고에 사용되지 않습니다.
  • 알려진 포렌식 또는 진단 값이 없습니다.
  • 규제 기관에서는 필요하지 않습니다.
  • 대시보드 또는 통합 문서에서는 사용되지 않습니다.

변환을 사용하여 보다 세분화된 필터링을 구현하고 값이 거의 없는 열에서 데이터를 필터링할 수도 있습니다. 예를 들어 경고에 유용한 Windows 이벤트가 있을 수 있지만 중복되거나 과도한 데이터가 있는 열이 포함됩니다. 이벤트를 수집할 수 있지만 과도한 데이터를 제거하는 변환을 만들 수 있습니다.

변환을 사용하여 너무 많은 데이터를 필터링하는 데 드는 잠재적인 비용을 방지하기 위해 Azure Monitor로 전송되기 전에 데이터를 가능한 한 많이 필터링합니다. 복잡한 논리를 사용하는 레코드 필터링 및 필요하지 않은 데이터로 열을 필터링하는 데 변환을 사용합니다.

기본 데이터 수집

Azure Monitor는 다른 구성 없이 다음 데이터 수집을 자동으로 수행합니다.

플랫폼 메트릭

Azure 가상 머신에 대한 플랫폼 메트릭에는 CPU, 네트워크 및 디스크 사용률과 같은 중요한 호스트 메트릭이 포함됩니다. 예:

활동 로그

활동 로그는 자동으로 수집됩니다. 여기에는 구성 변경 및 중지 및 시작 시기와 같은 컴퓨터의 최근 활동이 포함됩니다. Azure Portal에서 각 가상 머신 호스트에 대해 수집된 플랫폼 메트릭 및 활동 로그를 볼 수 있습니다.

개별 컴퓨터 또는 구독의 모든 리소스에 대한 활동 로그를 볼 수 있습니다. 이 데이터를 Azure Monitor 에이전트에서 사용하는 동일한 Log Analytics 작업 영역으로 보내 가상 머신에 대해 수집된 다른 모니터링 데이터로 분석하는 진단 설정을 만듭니다. 활동 로그 데이터의 수집 또는 보존 비용은 없습니다.

Azure Resource Graph의 VM 가용성 정보

Azure Resource Graph를 사용하면 로그 쿼리에 사용된 것과 동일한 Kusto 쿼리 언어 사용하여 복잡한 필터링, 그룹화 및 리소스 속성별 정렬을 통해 대규모로 Azure 리소스를 쿼리할 수 있습니다. 자세한 오류 특성 및 가동 중지 시간 분석을 위해 Resource Graph에 VM 상태 주석을 사용할 수 있습니다.

수집되는 데이터와 데이터를 보는 방법에 대한 자세한 내용은 Azure Monitor를 사용하여 가상 머신 모니터링: 모니터링 데이터 분석을 참조하세요.

VM 인사이트

VM 인사이트를 사용하도록 설정하면 다음 정보를 수집하는 MSVMI 접두사를 사용하여 DCR을 만듭니다. 각 VM에 대해 새 DCR을 만드는 대신 다른 컴퓨터에서 이 동일한 DCR을 사용할 수 있습니다.

  • 클라이언트 운영 체제에 대한 일반적인 성능 카운터는 Log Analytics 작업 영역의 InsightsMetrics 테이블로 전송됩니다. 카운터 이름은 운영 체제 유형에 관계없이 동일한 일반 이름을 사용하도록 정규화됩니다. 수집되는 성능 카운터 목록은 VM 인사이트에서 로그를 쿼리하는 방법을 참조 하세요.

  • 수집할 프로세스 및 종속성을 지정한 경우 다음 테이블이 채워집니다.

    • VMBoundPort: 컴퓨터에서 열린 서버 포트에 대한 트래픽
    • VMComputer: 컴퓨터의 인벤토리 데이터
    • VM커넥트ion: 컴퓨터와 컴퓨터의 인바운드 및 아웃바운드 연결에 대한 트래픽
    • VMProcess: 컴퓨터에서 실행되는 프로세스

기본적으로 VM 인사이트는 데이터 수집 비용을 절약하기 위해 프로세스 및 종속성을 수집할 수 없습니다. 이 데이터는 맵 기능에 필요하며 종속성 에이전트도 컴퓨터에 배포합니다. 이 기능을 사용하려면 이 컬렉션을 사용하도록 설정합니다.

Windows 및 Syslog 이벤트 수집

가상 머신의 운영 체제 및 애플리케이션은 종종 Windows 이벤트 로그 또는 Syslog에 씁니다. 단일 이벤트가 발견되는 즉시 경고를 만들거나 특정 기간 내에 일련의 일치하는 이벤트를 기다릴 수 있습니다. 시간이 지남에 따라 특정 추세를 식별하거나 문제가 발생한 후 문제 해결을 수행하는 등 나중에 분석할 수 있는 이벤트를 수집할 수도 있습니다.

Windows 및 Syslog 이벤트를 수집하는 DCR을 만드는 방법에 대한 지침은 Azure Monitor 에이전트를 사용하여 가상 머신에서 이벤트 및 성능 카운터 수집을 참조하세요. 이벤트 수준별로 필터링하는 가장 일반적인 Windows 이벤트 로그 및 Syslog 기능을 사용하여 DCR을 빠르게 만들 수 있습니다.

이벤트 ID와 같은 조건을 기준으로 보다 세부적인 필터링을 위해 XPath 쿼리를 사용하여 사용자 지정 필터를 만들 수 있습니다. DCR을 편집하여 수집된 데이터를 추가로 필터링하여 변환을 추가할 수 있습니다.

다음 지침을 이벤트 컬렉션에 권장되는 시작점으로 사용합니다. DCR 설정을 수정하여 불필요한 이벤트를 필터링하고 요구 사항에 따라 다른 이벤트를 추가합니다.

원본 전략
Windows 이벤트 경고를 지원하기 위해 시스템 및 애플리케이션 로그에 대한 위험, 오류경고 이벤트를 수집합니다. 추세를 분석하고 문제 해결을 지원하는 정보 이벤트를 추가합니다. 자세한 정보 표시 이벤트는 거의 유용하지 않으며 일반적으로 수집해서는 안 됩니다.
Syslog 이벤트 경고를 지원하기 위해 각 시설에 대해 LOG_WARNING 이상의 이벤트를 수집합니다. 추세를 분석하고 문제 해결을 지원하는 정보 이벤트를 추가합니다. LOG_DEBUG 이벤트는 거의 유용하지 않으며 일반적으로 수집해서는 안됩니다.

샘플 로그 쿼리: Windows 이벤트

쿼리 설명
Event 모든 Windows 이벤트
Event | where EventLevelName == "Error" 심각도가 오류인 모든 Windows 이벤트
Event | summarize count() by Source 원본별 Windows 이벤트 수
Event | where EventLevelName == "Error" | summarize count() by Source 원본별 Windows 오류 이벤트 수

샘플 로그 쿼리: Syslog 이벤트

쿼리 설명
Syslog 모든 Syslog
Syslog | where SeverityLevel == "error" 심각도가 오류인 모든 Syslog 레코드
Syslog | summarize AggregatedValue = count() by Computer 컴퓨터별 Syslog 레코드 수
Syslog | summarize AggregatedValue = count() by Facility 기능별 Syslog 레코드 수

성능 카운터를 수집 합니다.

클라이언트의 성능 데이터를 Azure Monitor 메트릭 또는 Azure Monitor 로그로 보낼 수 있으며 일반적으로 두 대상으로 보냅니다. VM 인사이트를 사용하도록 설정한 경우 성능 차트를 지원하기 위해 일반적인 성능 카운터 집합이 로그에 수집됩니다. 이 카운터 집합을 수정할 수는 없지만 다른 DCR을 만들어 더 많은 카운터를 수집하고 다른 대상으로 보낼 수 있습니다.

게스트 성능을 수집하기 위해 DCR을 만들려고 하는 여러 가지 이유가 있습니다.

성능 카운터를 수집하는 DCR을 만드는 방법에 대한 지침은 Azure Monitor 에이전트를 사용하여 가상 머신에서 이벤트 및 성능 카운터 수집을 참조하세요. 가장 일반적인 카운터를 사용하여 DCR을 빠르게 만들 수 있습니다. 이벤트 ID와 같은 조건을 기준으로 보다 세부적인 필터링을 위해 XPath 쿼리를 사용하여 사용자 지정 필터를 만들 수 있습니다.

참고 항목

동일한 DCR에서 성능 및 이벤트 컬렉션을 결합하도록 선택할 수 있습니다.

대상 설명
메트릭 호스트 메트릭은 Azure Monitor 메트릭으로 자동으로 전송됩니다. DCR을 사용하여 메트릭 탐색기와 함께 분석하거나 메트릭 경고와 함께 사용할 수 있도록 클라이언트 메트릭을 수집할 수 있습니다. 이 데이터는 93일 동안 저장됩니다.
로그 Azure Monitor 로그에 저장된 성능 데이터는 장기간 저장할 수 있습니다. Log Analytics 또는 로그 검색 경고와 함께 로그 쿼리를 사용하여 이벤트 데이터와 함께 데이터를 분석할 수 있습니다. 여러 컴퓨터, 지역 및 구독에서 복잡한 논리를 사용하여 데이터의 상관 관계를 지정할 수도 있습니다.

성능 데이터는 다음 표로 전송됩니다.
- VM 인사이트: InsightsMetrics
- 기타 성능 데이터: 성능

샘플 로그 쿼리

다음 샘플에서는 사용자 지정 성능 데이터와 함께 테이블을 사용합니다 Perf . VM 인사이트에서 수집된 성능 데이터에 대한 자세한 내용은 VM 인사이트에서 로그를 쿼리하는 방법을 참조 하세요.

쿼리 설명
Perf 모든 성능 데이터
Perf | where Computer == "MyComputer" 특정 컴퓨터의 모든 성능 데이터
Perf | where CounterName == "Current Disk Queue Length" 특정 카운터에 대한 모든 성능 데이터
Perf | where ObjectName == "Processor" and CounterName == "% Processor Time" and InstanceName == "_Total" | summarize AVGCPU = avg(CounterValue) by Computer 모든 컴퓨터의 평균 CPU 사용률
Perf | where CounterName == "% Processor Time" | summarize AggregatedValue = max(CounterValue) by Computer 모든 컴퓨터에서 최대 CPU 사용률
Perf | where ObjectName == "LogicalDisk" and CounterName == "Current Disk Queue Length" and Computer == "MyComputerName" | summarize AggregatedValue = avg(CounterValue) by InstanceName 지정된 컴퓨터의 모든 인스턴스의 평균 현재 디스크 큐 길이
Perf | where CounterName == "Disk Transfers/sec" | summarize AggregatedValue = percentile(CounterValue, 95) by Computer 모든 컴퓨터에서 95번째 디스크 전송 백분위수/초
Perf | where CounterName == "% Processor Time" and InstanceName == "_Total" | summarize AggregatedValue = avg(CounterValue) by bin(TimeGenerated, 1h), Computer 모든 컴퓨터에서 시간별 평균 CPU 사용량
Perf | where Computer == "MyComputer" and CounterName startswith_cs "%" and InstanceName == "_Total" | summarize AggregatedValue = percentile(CounterValue, 70) by bin(TimeGenerated, 1h), CounterName 특정 컴퓨터의 %% 카운터마다 매시간 70 백분위수
Perf | where CounterName == "% Processor Time" and InstanceName == "_Total" and Computer == "MyComputer" | summarize ["min(CounterValue)"] = min(CounterValue), ["avg(CounterValue)"] = avg(CounterValue), ["percentile75(CounterValue)"] = percentile(CounterValue, 75), ["max(CounterValue)"] = max(CounterValue) by bin(TimeGenerated, 1h), Computer 특정 컴퓨터의 시간별 평균, 최소, 최대, 75백분위수 CPU 사용량
Perf | where ObjectName == "MSSQL$INST2:Databases" and InstanceName == "master" 명명된 SQL Server 인스턴스 INST2의 master 데이터베이스에 대한 데이터베이스 성능 개체의 모든 성능 데이터입니다.
Perf | where TimeGenerated >ago(5m) | where ObjectName == "Process" and InstanceName != "_Total" and InstanceName != "Idle" | where CounterName == "% Processor Time" | summarize cpuVal=avg(CounterValue) by Computer,InstanceName | join (Perf| where TimeGenerated >ago(5m)| where ObjectName == "Process" and CounterName == "ID Process" | summarize arg_max(TimeGenerated,*) by ProcID=CounterValue ) on Computer,InstanceName | sort by TimeGenerated desc | summarize AvgCPU = avg(cpuVal) by InstanceName,ProcID 각 프로세스 ID에 대한 마지막 5분 동안의 CPU 평균입니다.

텍스트 로그 수집

일부 애플리케이션은 가상 머신에 저장된 텍스트 로그에 기록된 이벤트를 작성합니다. 사용자 지정 테이블 및 DCR을 만들어 이 데이터를 수집합니다. 텍스트 로그의 위치, 자세한 구성 및 사용자 지정 테이블의 스키마를 정의합니다. 작업 영역에서 이 데이터를 수집하고 보존하는 데 비용이 듭니다.

샘플 로그 쿼리

여기서 사용되는 열 이름은 예제일 뿐입니다. 로그의 열 이름은 대부분 다를 수 있습니다.

쿼리 설명
MyApp_CL | summarize count() by code 코드별 이벤트 수를 계산합니다.
MyApp_CL | where status == "Error" | summarize AggregatedValue = count() by Computer, bin(TimeGenerated, 15m) 오류 이벤트에 대한 경고 규칙을 만듭니다.

IIS 로그 수집

Windows 컴퓨터에서 실행되는 IIS는 로그를 텍스트 파일에 기록합니다. Azure Monitor 에이전트에서 IIS 로그 수집을 사용하여 IIS 로그 수집을 구성합니다. 작업 영역에서 이 데이터를 수집하고 보존하는 데 비용이 듭니다.

IIS 로그의 레코드는 Log Analytics 작업 영역의 W3CIISLog 테이블에 저장됩니다. 작업 영역에서 이 데이터를 수집하고 보존하는 데 비용이 듭니다.

샘플 로그 쿼리

쿼리 설명
W3CIISLog | where csHost=="www.contoso.com" | summarize count() by csUriStem 호스트 www.contoso.com 대한 URL별로 IIS 로그 항목을 계산합니다.
W3CIISLog | summarize sum(csBytes) by Computer 각 IIS 컴퓨터에서 받은 총 바이트를 검토합니다.

서비스 또는 디먼 모니터링

Windows 서비스 또는 Linux 디먼의 상태 모니터링하려면 Azure Automation에서 변경 내용 추적 및 인벤토리 솔루션을 사용하도록 설정합니다.

Azure Monitor는 자체적으로 서비스 또는 디먼의 상태 모니터링할 수 없습니다. Windows 이벤트 로그에서 이벤트를 찾는 것과 같이 사용할 수 있는 몇 가지 방법이 있지만 이 메서드는 신뢰할 수 없습니다. VM 인사이트를 통해 채워진 VMProcess 테이블에서 컴퓨터에서 실행되는 서비스와 연결된 프로세스를 찾을 수도 있습니다. 이 테이블은 1시간마다만 업데이트되며, 경고에 이 데이터를 사용하려는 경우 일반적으로 충분하지 않습니다.

참고 항목

변경 내용 추적 및 분석 솔루션은 VM 인사이트의 변경 분석 기능과 다릅니다. 이 기능은 공개 미리 보기에 있지만 아직 이 시나리오에 포함되지 않았습니다.

가상 머신에서 변경 내용 추적 솔루션을 사용하도록 설정하는 다양한 옵션은 변경 내용 추적 및 인벤토리 사용을 참조하세요. 이 솔루션에는 대규모 가상 머신을 구성하는 메서드가 포함되어 있습니다. 솔루션을 지원하려면 Azure Automation 계정을 만들어야 합니다.

변경 내용 추적 및 인벤토리를 사용하도록 설정하면 Log Analytics 작업 영역에 두 개의 새 테이블이 만들어집니다. 로그 쿼리 및 로그 검색 경고 규칙에 이러한 테이블을 사용합니다.

테이블 설명
ConfigurationChange 게스트 내 구성 데이터의 변경 내용
ConfigurationData 게스트 내 구성 데이터에 대해 마지막으로 보고된 상태

샘플 로그 쿼리

  • 최근에 시작된 모든 서비스와 디먼을 나열합니다.

    ConfigurationChange
    | where ConfigChangeType == "Daemons" or ConfigChangeType == "WindowsServices"
    | where SvcState == "Running"
    | sort by Computer, SvcName
    
  • 특정 서비스가 중지되면 경고합니다. 로그 검색 경고 규칙에서 이 쿼리를 사용합니다.

    ConfigurationData
    | where SvcName == "W3SVC" 
    | where SvcState == "Stopped"
    | where ConfigDataType == "WindowsServices"
    | where SvcStartupType == "Auto"
    | summarize AggregatedValue = count() by Computer, SvcName, SvcDisplayName, SvcState, bin(TimeGenerated, 15m)
    
  • 서비스 세트 중 하나가 중지되면 경고합니다. 로그 검색 경고 규칙에서 이 쿼리를 사용합니다.

    let services = dynamic(["omskd","cshost","schedule","wuauserv","heathservice","efs","wsusservice","SrmSvc","CertSvc","wmsvc","vpxd","winmgmt","netman","smsexec","w3svc","sms_site_vss_writer","ccmexe","spooler","eventsystem","netlogon","kdc","ntds","lsmserv","gpsvc","dns","dfsr","dfs","dhcp","DNSCache","dmserver","messenger","w32time","plugplay","rpcss","lanmanserver","lmhosts","eventlog","lanmanworkstation","wnirm","mpssvc","dhcpserver","VSS","ClusSvc","MSExchangeTransport","MSExchangeIS"]);
    ConfigurationData
    | where ConfigDataType == "WindowsServices"
    | where SvcStartupType == "Auto"
    | where SvcName in (services)
    | where SvcState == "Stopped"
    | project TimeGenerated, Computer, SvcName, SvcDisplayName, SvcState
    | summarize AggregatedValue = count() by Computer, SvcName, SvcDisplayName, SvcState, bin(TimeGenerated, 15m)
    

포트 모니터링

포트 모니터링은 컴퓨터가 특정 포트에서 수신 대기하고 있는지 확인합니다. 포트 모니터링에 대한 두 가지 잠재적인 전략은 여기에 설명되어 있습니다.

종속성 에이전트 테이블

프로세스 및 종속성 수집을 사용하도록 설정된 VM 인사이트를 사용하는 경우 VM커넥트ionVMBoundPort를 사용하여 컴퓨터의 연결 및 포트를 분석할 수 있습니다. 테이블은 VMBoundPort 컴퓨터에서 실행되는 각 프로세스와 수신 대기 중인 포트로 1분마다 업데이트됩니다. 누락된 하트비트 경고와 유사한 로그 검색 경고를 만들어 중지된 프로세스를 찾거나 컴퓨터가 특정 포트에서 수신 대기하지 않을 때 경고할 수 있습니다.

  • VM에서 열린 포트 수를 검토하여 구성 및 보안 취약성이 있는 VM을 평가합니다.

    VMBoundPort
    | where Ip != "127.0.0.1"
    | summarize by Computer, Machine, Port, Protocol
    | summarize OpenPorts=count() by Computer, Machine
    | order by OpenPorts desc
    
  • VM에 바인딩된 포트를 나열하여 구성 및 보안 취약성이 있는 VM을 평가합니다.

    VMBoundPort
    | distinct Computer, Port, ProcessName
    
  • 포트별 네트워크 작업을 분석하여 애플리케이션 또는 서비스를 구성하는 방법을 결정합니다.

    VMBoundPort
    | where Ip != "127.0.0.1"
    | summarize BytesSent=sum(BytesSent), BytesReceived=sum(BytesReceived), LinksEstablished=sum(LinksEstablished), LinksTerminated=sum(LinksTerminated), arg_max(TimeGenerated, LinksLive) by Machine, Computer, ProcessName, Ip, Port, IsWildcardBind
    | project-away TimeGenerated
    | order by Machine, Computer, Port, Ip, ProcessName
    
  • VM의 전송 및 수신 추세를 검토합니다.

    VMConnection
    | summarize sum(BytesSent), sum(BytesReceived) by bin(TimeGenerated,1hr), Computer
    | order by Computer desc
    | render timechart
    
  • 시간이 지남에 따라 연결 오류를 사용하여 실패율이 안정적인지 또는 변경 중인지 확인합니다.

    VMConnection
    | where Computer == <replace this with a computer name, e.g. 'acme-demo'>
    | extend bythehour = datetime_part("hour", TimeGenerated)
    | project bythehour, LinksFailed
    | summarize failCount = count() by bythehour
    | sort by bythehour asc
    | render timechart
    
  • 상태 추세를 연결하여 컴퓨터의 동작 및 연결 상태 분석합니다.

    VMConnection
    | where Computer == <replace this with a computer name, e.g. 'acme-demo'>
    | summarize  dcount(LinksEstablished), dcount(LinksLive), dcount(LinksFailed), dcount(LinksTerminated) by bin(TimeGenerated, 1h)
    | render timechart
    

연결 관리자

Network Watcher연결 모니터 기능은 가상 머신의 포트에 대한 연결을 테스트하는 데 사용됩니다. 테스트는 컴퓨터가 포트에서 수신 대기 중이며 네트워크에서 액세스할 수 있는지 확인합니다.

연결 관리자 테스트를 시작하는 클라이언트 컴퓨터의 Network Watcher 확장이 필요합니다. 테스트되는 컴퓨터에는 설치할 필요가 없습니다. 자세한 내용은 자습서: Azure Portal을 사용하여 네트워크 통신 모니터링을 참조하세요.

연결 관리자에 대한 추가 비용이 있습니다. 자세한 내용은 Network Watcher 가격 책정을 참조하세요.

로컬 컴퓨터에서 프로세스 실행

일부 워크로드를 모니터링하려면 로컬 프로세스가 필요합니다. 예를 들어 로컬 컴퓨터에서 실행되어 애플리케이션에 연결하고 데이터를 수집하거나 처리하는 PowerShell 스크립트가 있습니다. Azure Automation일부인 Hybrid Runbook Worker를 사용하여 로컬 PowerShell 스크립트를 실행할 수 있습니다. Hybrid Runbook Worker에 대한 직접 요금은 없지만 사용하는 각 Runbook에 대한 비용이 있습니다.

Runbook은 필요한 데이터를 수집하기 위해 로컬 컴퓨터의 모든 리소스에 액세스할 수 있습니다. 이는 데이터를 Azure Monitor에 직접 보내거나 경고를 만들 수 없습니다. 경고를 만들려면 Runbook이 사용자 지정 로그에 항목을 쓰도록 합니다. 그런 다음 Azure Monitor에서 수집하도록 해당 로그를 구성합니다. 해당 로그 항목에서 발생하는 로그 검색 경고 규칙을 만듭니다.

다음 단계