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이 가상 머신에 반드시 해당되는 것은 아닙니다.
데이터 수집 규칙 만들기
데이터 수집 시나리오에 따라 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 테이블로 전송됩니다. 카운터 이름은 운영 체제 유형에 관계없이 동일한 일반 이름을 사용하도록 정규화됩니다.
수집할 프로세스 및 종속성을 지정한 경우 다음 테이블이 채워집니다.
- VMBoundPort: 컴퓨터의 열린 서버 포트에 대한 트래픽
- VMComputer: 컴퓨터의 인벤토리 데이터
- VMConnection: 컴퓨터에 대한 인바운드 및 아웃바운드 연결에 대한 트래픽
- VMProcess: 컴퓨터에서 실행되는 프로세스
기본적으로 VM 인사이트는 데이터 수집 비용을 절약하기 위해 프로세스 및 종속성을 수집할 수 없습니다. 이 데이터는 맵 기능에 필요하며 컴퓨터에 Dependency Agent도 배포합니다. 이 기능을 사용하려면 이 컬렉션을 사용하도록 설정합니다.
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을 만들려고 하는 이유는 여러 가지가 있습니다.
- VM 인사이트를 사용하지 않으므로 클라이언트 성능 데이터가 아직 수집되지 않습니다.
- VM 인사이트가 수집하지 않는 다른 성능 카운터를 수집합니다.
- 클라이언트에서 실행되는 다른 워크로드에서 성능 카운터를 수집합니다.
- 메트릭 탐색기 및 메트릭 경고와 함께 사용할 수 있는 Azure Monitor 메트릭으로 성능 데이터를 보냅니다.
성능 카운터를 수집하는 DCR을 만드는 방법에 대한 지침은 Azure Monitor 에이전트를 사용하여 가상 머신에서 이벤트 및 성능 카운터 수집을 참조하세요. 가장 일반적인 카운터를 사용하여 DCR을 빠르게 만들 수 있습니다. 이벤트 ID와 같은 기준에 따라 보다 세분화된 필터링을 위해 XPath 쿼리를 사용하여 사용자 지정 필터를 만들 수 있습니다.
참고 항목
동일한 DCR에서 성능 및 이벤트 수집을 결합하도록 선택할 수 있습니다.
대상 | 설명 |
---|---|
메트릭 | 호스트 메트릭은 Azure Monitor 메트릭으로 자동 전송됩니다. 메트릭 탐색기를 통해 분석하거나 메트릭 경고와 함께 사용할 수 있도록 DCR을 사용하여 클라이언트 메트릭을 수집할 수 있습니다. 이 데이터는 93일 동안 저장됩니다. |
로그 | Azure Monitor 로그에 저장된 성능 데이터는 장기간 저장할 수 있습니다. Log Analytics 또는 로그 검색 경고와 함께 로그 쿼리를 사용하여 이벤트 데이터와 함께 해당 데이터를 분석할 수 있습니다. 여러 컴퓨터, 지역 및 구독에서 복잡한 논리를 사용하여 데이터의 상관 관계를 지정할 수도 있습니다. 성능 데이터는 다음 테이블로 전송됩니다. - VM 인사이트: InsightsMetrics - 기타 성능 데이터: Perf |
샘플 로그 쿼리
다음 샘플에서는 사용자 지정 성능 데이터와 함께 Perf
테이블을 사용합니다.
쿼리 | 설명 |
---|---|
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에서 마스터 데이터베이스에 대한 데이터베이스 성능 개체의 모든 성능 데이터. |
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 인사이트를 사용하는 경우 VMConnection 및 VMBoundPort를 사용하여 컴퓨터의 연결 및 포트를 분석할 수 있습니다. 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에서 수집하도록 해당 로그를 구성합니다. 해당 로그 항목에서 실행되는 로그 검색 경고 규칙을 만듭니다.