가상 네트워크 흐름 로깅은 Azure 가상 네트워크를 통과하는 IP 트래픽에 대한 정보를 로그할 수 있는 Azure Network Watcher의 기능입니다. 가상 네트워크 흐름 로깅에 대한 자세한 내용은 가상 네트워크 흐름 로그를 참조하세요.
이 자습서는 VNet 흐름 로그를 사용하여 가상 네트워크를 통과하는 가상 머신의 네트워크 트래픽을 기록하는 데 도움이 됩니다.
이 튜토리얼에서는 다음을 배우게 됩니다:
- 가상 네트워크 만들기
- 가상 머신 만들기
- Microsoft.insights 공급자 등록
- Network Watcher 흐름 로그를 사용하여 가상 네트워크에 대한 흐름 로깅 사용
- 기록된 데이터 다운로드
- 기록된 데이터 보기
필수 조건
- 활성 구독이 있는 Azure 계정. 계정이 없으면 시작하기 전에 무료 계정을 만드세요.
가상 네트워크 만들기
이 섹션에서는 가상 머신에 대해 하나의 서브넷을 사용하여 myVNet 가상 네트워크를 만듭니다.
Azure Portal에 로그인합니다.
포털 맨 위에 있는 검색 상자에 가상 네트워크를 입력합니다. 검색 결과에서 가상 네트워크를 선택합니다.
+ 만들기를 선택합니다. 가상 네트워크 만들기의 기본 탭에서 다음 값을 입력하거나 선택합니다.
설정 가치 프로젝트 세부 정보 구독 Azure 구독을 선택합니다. 리소스 그룹 새로 만들기를 선택합니다.
이름에 myResourceGroup을 입력합니다.
확인을 선택합니다.인스턴스 세부 정보 이름 myVNet을 입력합니다. 지역 (미국) 미국 동부를 선택합니다. Review + create를 선택합니다.
설정을 검토한 다음, 만들기를 선택합니다.
가상 머신 만들기
이 섹션에서는 myVM 가상 머신을 만듭니다.
포털 상단의 검색 상자에 가상 머신을 입력합니다. 검색 결과에서 가상 머신을 선택합니다.
+ 만들기를 선택한 다음 가상 머신을 선택합니다.
가상 머신 만들기의 기본 탭에서 다음 값을 입력하거나 선택합니다.
설정 가치 프로젝트 세부 정보 구독 Azure 구독을 선택합니다. 리소스 그룹 myResourceGroup을 선택합니다. 인스턴스 세부 정보 가상 머신 이름 myVM을 입력합니다. 지역 (미국) 미국 동부를 선택합니다. 가용성 옵션 인프라 중복이 필요하지 않습니다.를 선택합니다. 보안 유형 표준을 선택합니다. 이미지 원하는 이미지를 선택합니다. 이 자습서에서는 Windows Server 2022 Datacenter: Azure 버전 - x64 Gen2를 사용합니다. 크기 VM 크기를 선택하거나 기본 설정을 그대로 둡니다. 관리자 계정 사용자 이름 사용자 이름을 입력합니다. 암호 암호를 입력합니다. 암호 확인 암호를 다시 입력합니다. 네트워킹 탭을 선택하거나 다음: 디스크, 다음: 네트워킹을 차례로 선택합니다.
[네트워킹] 탭에서 다음 값을 선택합니다.
설정 가치 네트워크 인터페이스 가상 네트워크 myVNet을 선택합니다. 서브넷 mySubnet을 선택합니다. 공용 IP (신규) myVM-ip를 선택합니다. NIC 네트워크 보안 그룹 기본을 선택합니다. 공용 인바운드 포트 선택한 포트 허용을 선택합니다. 인바운드 포트 선택 RDP(3389)를 선택합니다. 주의
RDP 포트를 인터넷에 개방하는 설정을 유지하는 방식은 테스트용으로만 권장됩니다. 프로덕션 환경에서는 RDP 포트에 대한 액세스를 특정 IP 주소 또는 IP 주소 범위로 제한하는 것이 좋습니다. RDP 포트에 대한 인터넷 액세스를 차단하고 Azure Bastion을 사용하여 Azure Portal에서 가상 머신에 안전하게 연결할 수도 있습니다.
Review + create를 선택합니다.
설정을 검토한 다음, 만들기를 선택합니다.
배포가 완료되면 리소스로 이동을 선택하여 myVM의 개요 페이지로 이동합니다.
연결, RDP를 차례로 선택합니다.
RDP 파일 다운로드를 선택하고 다운로드된 파일을 엽니다.
연결을 선택한 다음, 이전 단계에서 만든 사용자 이름과 암호를 입력합니다. 메시지가 표시되면 인증서를 수락합니다.
Register Insights 공급자
흐름 로깅에는 Microsoft.Insights 공급자가 필요합니다. 상태를 확인하려면 다음 단계를 수행합니다.
포털 맨 위에 있는 검색 상자에 구독을 입력합니다. 검색 결과에서 구독을 선택합니다.
구독에서 공급자를 사용하도록 설정하려는 Azure 구독을 선택합니다.
설정에서 리소스 공급자를 선택합니다.
필터 상자에서 인사이트를 입력합니다.
표시된 공급자의 상태가 등록됨인지 확인합니다. 상태가 NotRegistered인 경우 Microsoft.Insights 공급자를 선택한 다음, 등록을 선택합니다.
스토리지 계정 만들기
이 섹션에서는 흐름 로그를 저장하는 데 사용할 스토리지 계정을 만듭니다.
포털 위쪽의 검색 상자에서 스토리지 계정을 입력합니다. 검색 결과에서 스토리지 계정을 선택합니다.
+ 만들기를 선택합니다. 스토리지 계정 만들기의 기본 탭에서 다음 값을 입력하거나 선택합니다.
설정 가치 프로젝트 세부 정보 구독 Azure 구독을 선택합니다. 리소스 그룹 myResourceGroup을 선택합니다. 인스턴스 세부 정보 스토리지 계정 이름 고유한 이름을 입력합니다. 이 자습서에서는 nwteststorageaccount를 사용합니다. 지역 (미국) 미국 동부를 선택합니다. 스토리지 계정은 가상 머신 및 해당 네트워크 보안 그룹과 동일한 지역에 있어야 합니다. 기본 서비스 Azure Blob Storage 또는 Azure Data Lake Storage Gen 2를 선택합니다. 성능 표준을 선택합니다. 흐름 로그는 표준 계층 스토리지 계정만 지원합니다. 중복성 원하는 중복도를 선택합니다. 이 자습서에서는 LRS(로컬 중복 스토리지)를 사용합니다. 검토 탭을 선택하거나 아래쪽에서 검토 단추를 선택합니다.
설정을 검토한 다음, 만들기를 선택합니다.
흐름 로그 만들기
이 섹션에서는 자습서에서 이전에 만든 스토리지 계정에 저장되는 가상 네트워크 흐름 로그를 만듭니다.
포털 맨 위에 있는 검색 상자에 Network Watcher를 입력합니다. 검색 결과에서 Network Watcher를 선택합니다.
로그에서 흐름 로그를 선택합니다.
Network Watcher | 흐름 로그에서 + 만들기 또는 흐름 로그 만들기 파란색 단추를 선택합니다.
흐름 로그 만들기에서 다음 값을 입력하거나 선택합니다.
설정 가치 프로젝트 세부 정보 구독 로그하려는 네트워크 보안 그룹의 Azure 구독을 선택합니다. 흐름 로그 유형 가상 네트워크를 선택합니다. 가상 네트워크 + 대상 리소스 선택을 선택합니다.
가상 네트워크 선택에서 myVNet을 선택합니다. 다음으로 선택 확인을 선택합니다.흐름 로그 이름 기본값인 myVNet-myresourcegroup-flowlog를 그대로 둡니다. 인스턴스 세부 정보 구독 스토리지 계정의 Azure 구독을 선택합니다. 스토리지 계정 이전 단계에서 만든 스토리지 계정을 선택합니다. 보존(일) 스토리지 계정에 흐름 로그 데이터를 10일 동안 보존하려면 10을 입력합니다. 스토리지 계정에 흐름 로그 데이터를 영구적으로 보관하려면(삭제할 때까지) 0을 입력합니다. 스토리지 가격 책정에 대한 자세한 내용은 Azure Storage 가격 책정을 참조하세요. 비고
Azure Portal은 NetworkWatcherRG 리소스 그룹에 가상 네트워크 흐름 로그를 만듭니다.
Review + create를 선택합니다.
설정을 검토한 다음, 만들기를 선택합니다.
배포가 완료되면 리소스로 이동을 선택하여 생성되어 흐름 로그 페이지에 나열된 흐름 로그를 확인합니다.
myVM 가상 머신의 RDP 세션으로 돌아갑니다.
Microsoft Edge를 열고
www.bing.com(으)로 이동합니다.
흐름 로그 다운로드
이 섹션에서는 이전에 선택한 스토리지 계정으로 이동하고, 이전 섹션에서 만든 흐름 로그를 다운로드합니다.
포털 위쪽의 검색 상자에서 스토리지 계정을 입력합니다. 검색 결과에서 스토리지 계정을 선택합니다.
nwteststorageaccount 또는 이전에 만들어 로그를 저장하기 위해 선택한 스토리지 계정을 선택합니다.
데이터 스토리지에서 컨테이너를 선택합니다.
insights-logs-flowlogflowevent 컨테이너를 선택합니다.
컨테이너에서 다운로드하려는
PT1H.json파일에 도달할 때까지 폴더 계층을 탐색합니다. 가상 네트워크 흐름 로그 파일은 다음 경로를 따릅니다.https://{storageAccountName}.blob.core.windows.net/insights-logs-flowlogflowevent/flowLogResourceID=/{subscriptionID}_NETWORKWATCHERRG/NETWORKWATCHER_{Region}_{ResourceName}-{ResourceGroupName}-FLOWLOGS/y={year}/m={month}/d={day}/h={hour}/m=00/macAddress={macAddress}/PT1H.jsonPT1H.json 파일의 오른쪽에 있는 줄임표(...)를 선택한 다음, 다운로드를 선택합니다.
비고
Azure Storage Explorer를 사용하여 스토리지 계정에서 흐름 로그에 액세스하고 다운로드할 수 있습니다. 자세한 내용은 Storage Explorer 시작을 참조하세요.
흐름 로그 보기
선택한 텍스트 편집기를 사용하여 다운로드한 PT1H.json 파일을 엽니다. 다음 예제는 다운로드한 PT1H.json 파일에서 가져온 섹션이며, DefaultRule_AllowInternetOutBound 규칙에 따라 처리된 흐름을 보여줍니다.
{
"time": "2025-08-06T20:39:33.3186341Z",
"flowLogGUID": "00000000-0000-0000-0000-000000000000",
"macAddress": "6045BDD6DD48",
"category": "FlowLogFlowEvent",
"resourceId": "/SUBSCRIPTIONS/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e//RESOURCEGROUPS/NETWORKWATCHERRG/PROVIDERS/MICROSOFT.NETWORK/NETWORKWATCHERS/NETWORKWATCHER_EASTUS/FLOWLOGS/MYVNET-MYRESOURCEGROUP-FLOWLOG",
"flowLogVersion": 4,
"operationName": "FlowLogFlowEvent",
"flowRecords": {
"flows": [
{
"aclID": "00000000-0000-0000-0000-000000000000",
"flowGroups": [
{
"rule": "DefaultRule_AllowInternetOutBound",
"flowTuples": [
"1754512773,10.0.0.4,13.107.21.200,49982,443,6,O,C,NX,7,1158,12,8143"
]
}
]
}
]
}
}
flowTuples의 쉼표로 구분된 정보는 다음과 같습니다.
| 예제 데이터 | 데이터가 나타내는 정보 | 설명 |
|---|---|---|
| 1754512773 | 타임스탬프 | 흐름이 UNIX EPOCH 형식으로 발생한 타임스탬프입니다. 이전 예에서 날짜는 2025년 8월 6일 오후 8시 39분 33초 UTC/GMT로 변환됩니다. |
| 10.0.0.4 | 원본 IP 주소 | 흐름이 시작된 원본 IP 주소입니다. 10.0.0.4는 이전에 만든 VM의 개인 IP 주소입니다. |
| 13.107.21.200 | 대상 IP 주소 | 흐름이 향하는 대상 IP 주소입니다. 13.107.21.200은 www.bing.com의 IP 주소입니다. 트래픽이 Azure 외부로 향하므로 DefaultRule_AllowInternetOutBound 보안 규칙에서 흐름을 처리했습니다. |
| 49982 | 원본 포트 | 흐름이 시작된 원본 포트입니다. |
| 443 | 목적지 포트 | 흐름을 보낸 대상 포트입니다. |
| 6 | 프로토콜 | IANA에서 흐름의 계층 4 프로토콜에는 6: TCP 값이 할당되었습니다. |
| O | 방향 | 흐름의 방향입니다. O: 아웃바운드입니다. |
| C | 흐름 상태 | 흐름의 상태입니다. C: 진행 중인 흐름에 대해 계속됩니다. |
| NX | 흐름 암호화 | 연결이 암호화되지 않았습니다. |
| 7 | 보낸 패킷 | 마지막 업데이트 이후 원본에서 대상으로 보낸 TCP 패킷의 총 수입니다. |
| 1158 | 보낸 바이트 수 | 마지막 업데이트 이후 원본에서 대상으로 보낸 TCP 패킷 바이트의 총 수입니다. 패킷 바이트에는 패킷 헤더 및 페이로드가 포함됩니다. |
| 12 | 수신된 패킷 | 마지막 업데이트 이후 대상에서 받은 TCP 패킷의 총 수입니다. |
| 8143 | 받은 바이트 수 | 마지막 업데이트 이후 대상에서 받은 TCP 패킷 바이트의 총 수입니다. 패킷 바이트에는 패킷 헤더 및 페이로드가 포함됩니다. |
자원을 정리하세요
더 이상 필요하지 않은 경우 myResourceGroup 리소스 그룹 및 이 그룹에 포함된 모든 리소스를 삭제합니다.
포털 맨 위에 있는 검색 상자에 myResourceGroup을 입력합니다. 검색 결과에서 myResourceGroup을 선택합니다.
리소스 그룹 삭제를 선택합니다.
리소스 그룹 삭제에 myResourceGroup을 입력한 다음, 삭제를 선택합니다.
삭제를 선택하여 리소스 그룹 및 리소스 그룹의 모든 리소스의 삭제를 확인합니다.
비고
NetworkWatcher_eastus/myVNet-myresourcegroup-flowlog 리소스는 NetworkWatcherRG 리소스 그룹에 있지만 myVNet 가상 네트워크를 삭제하면(myResourceGroup 리소스 그룹을 삭제하면) 삭제됩니다.