• /
  • EnglishEspañolFrançais日本語한국어Português
  • 로그인지금 시작하기

사용자의 편의를 위해 제공되는 기계 번역입니다.

영문본과 번역본이 일치하지 않는 경우 영문본이 우선합니다. 보다 자세한 내용은 이 페이지를 방문하시기 바랍니다.

문제 신고

Azure VNet 흐름 로그 모니터링 설정

Azure 가상 네트워크(VNet) 흐름 로그를 사용하면 가상 네트워크를 통해 흐르는 IP 트래픽에 대한 정보를 로그할 수 있습니다. 뉴렐릭 VNet 흐름 로그 전달자를 사용하면 성능 분석 및 네트워크 연결 문제 진단, 해결을 위해 이러한 로그를 뉴렐릭으로 자동 전달할 수 있습니다.

작동 원리

VNet 흐름 로그 전달자는 이벤트 기반 Azure Function App입니다:

Azure VNet Flow Logs Architecture
  1. Event Grid → Event Hub: 플로우 로그 스토리지 계정의 Event Grid 구독은 PT1H.json blob에서 BlobCreated 이벤트를 수신 대기하고 이를 Event Hub로 직접 전달합니다. 구독은 파일별 시간순 정렬을 보장하기 위해 blob 경로(이벤트 주체)를 파티션 키로 사용합니다. 별도의 릴레이 함수는 없습니다.

  2. VNetFlowLogsConsumer: 다음을 통해 각 blob 이벤트를 처리하는 Event Hub 트리거 함수입니다:

    • Azure Table Storage에서 커서를 읽어 이미 처리된 항목을 확인합니다.
    • PT1H.json blob에서 새로 추가된 블록만 다운로드합니다(델타 읽기).
    • VNet 플로우 로그 레코드(플로우 튜플)를 구조화된 로그 항목으로 구문 분석합니다.
    • 로그 API를 통해 구문 분석된 레코드를 뉴렐릭으로 전송합니다.
    • 성공적으로 전달되면 업데이트된 커서를 커밋합니다.
  3. VNetFlowLogsCleanup: Azure Table Storage에서 오래된 커서 항목을 주기적으로 제거하는 타이머 트리거 함수입니다(기본적으로 매일 03:00 UTC).

이 아키텍처는 효율적이고 점진적인 처리를 보장합니다 ― 새로운 데이터만 읽고 전달하여 이미 확인된 레코드의 중복 처리를 방지합니다.

전제 조건

New Relic 전제 조건

뉴렐릭에서 다음이 필요합니다:

  • New Relic 계정. 하나가 없습니까? 무료 가입! 신용 카드가 필요하지 않습니다.
  • 뉴렐릭 .

Azure 전제 조건

Azure에는 다음이 필요합니다:

VNet 흐름 로그 전달자 배포

ARM/Bicep 템플릿을 사용하거나(권장) 수동으로 VNet Flow 로그 전달자를 배포할 수 있습니다.

뉴렐릭 VNet 흐름 로그 ARM 템플릿Bicep 템플릿 은 모든 필수 리소스의 자동화된 배포를 제공합니다.

템플릿은 자동으로 다음을 수행합니다:

  • 이벤트 허브 네임스페이스, 이벤트 허브 및 소비자 그룹을 생성합니다

  • VNet 흐름 로그 기능이 있는 함수 앱(Flex 소비 계획, Node.js 22)을 배포합니다.

  • 함수 앱 런타임 및 커서 추적을 위한 스토리지 계정을 생성합니다

  • PT1H.json blob 생성 이벤트를 이벤트 허브로 직접 라우팅하는 이벤트 그리드 시스템 주제 및 구독을 생성합니다.

  • 필요한 역할 할당이 있는 관리형 ID를 할당합니다.

  • 필요한 모든 애플리케이션 설정 구성

  • VNet 통합 및 프라이빗 엔드포인트를 사용하여 프라이빗 네트워킹을 선택적으로 활성화합니다.

    이 단계를 따르세요:

  1. one.newrelic.com > Integrations & Agents 으)로 이동합니다.

  2. Collections 아래에서 Logging을(를) 선택한 다음 Microsoft Azure VNet Flow Logs 타일을 클릭합니다.

  3. Select an account 드롭다운 메뉴에서 로그를 보낼 계정을 선택하고 Continue을(를) 클릭합니다.

  4. Enter your license key 단계에서 Create a new key을(를) 클릭하고, Copy key 을(를) 클릭하여 안전한 곳에 저장한 다음 Continue을(를) 클릭합니다.

  5. Deploy to Azure을 클릭합니다. ARM 템플릿이 로드된 새 탭이 Azure에서 열립니다.

  6. 배포를 위해 Resource groupRegion 을(를) 선택합니다. 생성된 구성 요소를 실수로 삭제하지 않도록 새 리소스 그룹을 사용하는 것이 좋습니다.

  7. New Relic license key 필드에 이전에 복사한 라이선스 키를 붙여넣습니다.

  8. 뉴렐릭 엔드포인트 가 계정(US, EU 또는 JP)에 해당하는 것으로 설정되어 있는지 확인합니다.

  9. (선택 사항) VNet Flow 로그가 저장된 Source Storage Account Name 을(를) 입력하세요. 이 배포와 동일한 리소스 그룹에 있어야 합니다. 새 소스 스토리지 계정을 자동으로 생성하려면 비워 두세요.

  10. (선택 사항) VNet 통합 및 프라이빗 엔드포인트를 사용하여 프라이빗 네트워킹 모드를 활성화하려면 Disable Public Access To Storage Account 을(를) 선택합니다.

  11. (선택 사항) 고급 설정 구성:

    • New Relic Tags: 세미콜론으로 구분된 태그(포맷: key1:value1;key2:value2)
    • Max Retries: 최대 전송 재시도 횟수(기본값: 3)
    • Retry Interval: 재시도 간격(밀리초)(기본값: 2000)
    • Function Log Level: Function App 로그의 세부 정보 표시 수준 ― Trace, Debug, Information, Warning 또는 Error (기본값: Information)
    • Max Event Batch Size: 일괄 처리당 처리되는 최대 Event Hub 이벤트 수(기본값: 10)
    • Min Event Batch Size: 일괄 처리당 최소 Event Hub 이벤트 수(기본값: 5)
    • Max Wait Time: 처리하기 전에 트리거가 배치를 채우기 위해 대기하는 최대 시간, hh:mm:ss (기본값: 00:00:30)
    • Event Hub Scaling Mode: Basic (처리량 단위 1개, 파티션 4개, 자동 확장 없음 ― 중저 트래픽) 또는 Enterprise (최대 40개의 처리량 단위로 자동 확장, 파티션 32개 ― 대용량 처리량 볼륨)(기본값: Basic)
  12. Review + create을(를) 클릭하고 설정을 검토한 후 Create을(를) 클릭합니다.

  13. 뉴렐릭으로 돌아가서 Create log partition 단계에서 Create partition을(를) 클릭합니다. 이렇게 하면 Log_VNET_Flows_Azure 데이터 파티션(규칙: instrumentation.name = 'vnet-app', STANDARD 보존)이 생성되어 VNet Flow 로그가 다른 로그와 별도로 저장되고 쿼리됩니다. 계정에 Log_VNET_Flows_Azure 파티션이 이미 있는 경우 Continue 을(를) 클릭하여 이 단계를 건너뜁니다.

  14. Test your logs 단계에서 SELECT * FROM Log_VNET_Flows_Azure을(를) 실행하여 데이터가 도착하는지 확인한 다음 See your data을(를) 클릭합니다.

    배포 아키텍처

    ARM/Bicep 템플릿은 두 가지 배포 모드를 지원합니다:

    표준 배포 (기본값):

  • Event Grid를 사용하여 소스 스토리지 계정의 blob 생성을 모니터합니다.

  • 제목을 파티션 키로 사용하여 순서대로 처리하기 위해 이벤트를 Event Hub로 직접 라우팅합니다.

  • Function App에서 VNet flow 로그를 처리하고 뉴렐릭으로 전달합니다.

  • Function App, 해당 스토리지 계정 및 이벤트 허브에서 공용 네트워크 액세스를 활성화합니다.

    프라이빗 네트워킹 배포 (선택 사항, disablePublicAccessToStorageAccount=true):

  • 표준 배포의 모든 기능 포함

  • 공용 네트워크 액세스가 비활성화된 상태에서 프라이빗 가상 네트워크 내에 함수 앱, 스토리지 계정 및 이벤트 허브를 격리합니다

  • 스토리지 서비스(blob, file, queue 및 table)를 위한 프라이빗 엔드포인트와의 VNet 통합을 추가합니다

  • 이름 확인을 위한 프라이빗 DNS 영역을 생성합니다.

  • 공용 네트워크 액세스를 활성화된 상태로 유지해야 하는 소스 스토리지 계정(VNet Flow 로그 포함)을 수정하지 않습니다.

수동 배포를 선호하거나 사용자 지정 설정이 필요한 경우:

  1. Azure 구독에 azure-vnet-flow-logs 함수 앱을 배포합니다.
  2. VNetFlowForwarder 함수(VNetFlowLogsConsumerVNetFlowLogsCleanup)가 배포에 포함되어 있는지 확인하세요.
  3. 아래에 나열된 필수 환경 변수(애플리케이션 설정)를 구성합니다.
  4. 이벤트 제목을 파티션 키로 사용하여 BlobCreated 이벤트를 Event Hub로 직접 라우팅하도록 플로우 로그 스토리지 계정에 Event Grid 구독을 설정합니다.

구성

Azure Function App에서 다음 애플리케이션 설정을 구성하세요:

필수 설정

환경 변수

설명

NR_LICENSE_KEY

귀하의 뉴렐릭 라이선스 키입니다.

SOURCE_STORAGE_CONNECTION

VNet Flow Logs가 저장된 Azure Storage 계정의 연결 문자열입니다.

CURSOR_STORAGE_CONNECTION

커서 상태를 유지하는 데 사용되는 Azure Storage 계정의 연결 문자열입니다(소스와 동일할 수 있음).

EVENTHUB_CONSUMER_CONNECTION

blob 생성 이벤트를 소비자 함수에 전달하는 Event Hub의 연결 문자열입니다.

EVENTHUB_NAME

Event Hub 인스턴스의 이름입니다.

선택 설정

환경 변수

설명

기본값

NR_ENDPOINT

뉴렐릭 Logs API 엔드포인트. EU 계정의 경우

https://log-api.eu.newrelic.com/log/v1

을(를) 사용하세요.

https://log-api.newrelic.com/log/v1

NR_TAGS

전달되는 모든 로그에 추가할 세미콜론으로 구분된 태그입니다. 포맷:

key1:value1;key2:value2

없음

NR_MAX_RETRIES

뉴렐릭으로의 최대 전송 재시도 횟수입니다.

3

NR_RETRY_INTERVAL

재시도 간격(밀리초)입니다.

2000

EVENTHUB_CONSUMER_GROUP

이벤트 허브 소비자 그룹.

$Default

CURSOR_RETENTION_HOURS

정리 작업에서 제거하기 전에 blob-cursor 레코드를 유지할 시간 수입니다.

48

CURSOR_CLEANUP_SCHEDULE

커서 정리 타이머 트리거에 대한 NCRONTAB 일정입니다.

0 0 3 * * *

(매일 03:00 UTC)

MAX_CONSECUTIVE_FAILURES

전달자가 포이즌 이벤트로 건너뛰기 전의 blob당 연속 실패 횟수입니다.

5

흐름 로그 데이터 보기

구성이 완료되면 VNet Flow Log 데이터가 뉴렐릭에 표시됩니다. NRQL을 사용하여 쿼리할 수 있습니다:

SELECT * FROM Log_VNET_Flows_Azure
Azure cloud flow logs

소스, 방향, 프로토콜 및 목적지별로 상위 흐름을 그룹화하는 Conversations 보기에서 이 데이터를 시각화할 수도 있습니다:

Conversations view showing top flows grouped by source endpoint, direction, protocol, and destination address

각 흐름 로그 레코드에는 다음 속성이 포함됩니다:

기인하다

설명

srcAddr

소스 IP 주소

destAddr

대상 IP 주소

srcPort

소스 포트

destPort

대상 포트

protocol

프로토콜(TCP, UDP 및 ICMP)

direction

Traffic 방향(인바운드, 아웃바운드)

flowState

흐름 상태:

Begin

,

Continuing

,

End

또는

Deny

. 거부된 흐름은 여기에서

Deny

(으)로 표현됩니다 — 별도의 작업 속성이 없습니다.

encryption

암호화 상태:

Encrypted

,

Not Encrypted

또는

NX_*

이유 코드(예:

NX_HW_NOT_SUPPORTED

)

bytesSrcToDest

소스에서 대상까지의 바이트 수

bytesDestToSrc

목적지에서 소스까지의 바이트

packetsSrcToDest

소스에서 대상으로의 패킷

packetsDestToSrc

대상에서 소스로의 패킷

aclID

흐름과 연결된 액세스 제어 목록 ID

rule

흐름과 일치하는 NSG/ACL 규칙 이름

targetResourceID

모니터된 타겟 리소스의 전체 Azure 리소스 ID

virtualNetworkName

가상 네트워크 이름(타겟이 VNet 또는 서브넷인 경우)

subnetName

서브넷 이름(해당하는 경우)

macAddress

흐름 로그 레코드와 연결된 MAC 주소

category

로그 카테고리(예:

FlowLogFlowEvent

)

operationName

흐름 로그 레코드의 작업 이름

flowLogVersion

VNet Flow 로그 스키마 버전

flowLogGUID

흐름 로그 리소스의 고유 식별자

flowLogResourceID

흐름 로그의 Azure 리소스 ID

전달된 각 로그는 공통 속성 instrumentation.provider (azure), instrumentation.name (vnet-app) 및 instrumentation.version (전달자 버전)와 NR_TAGS에 설정한 사용자 지정 핵심 가치 쌍을 전달합니다. 원시 흐름 튜플 CSV는 로그 message 필드에 보존됩니다.

문제점 해결

누락된 흐름 로그 데이터, 중복 레코드 또는 건너뛴(포이즌) 이벤트에 대한 도움이 필요하면 Azure VNet 흐름 로그 모니터링 문제 해결을 참조하세요.

Copyright © 2026 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.