콘텐츠로 이동

NetFlow


NetFlow 수집기는 NetFlow가 활성화된 장치를 시각화 및 모니터링하고 Guance에 대한 로그를 수집하여 다양한 NetFlow 이상 현상을 모니터링하고 분석하는 데 사용할 수 있습니다.

NetFlow 소개

NetFlow는 인터페이스에 들어오고 나가는 모든 트래픽을 모니터링하고 기록하기 위해 Cisco에서 개발한 가장 널리 사용되는 트래픽 통계 표준입니다. NetFlow는 수집한 트래픽 데이터를 분석하여 흐름과 흐름 속도에 대한 가시성을 제공하고, 트래픽이 어디서 오고 어디로 가는지, 특정 시간에 어떤 트래픽이 생성되는지 추적합니다. 기록된 정보는 사용량 모니터링, 이상 탐지, 기타 다양한 네트워크 관리 작업에 사용될 수 있습니다.

현재 DataKit은 다음 프로토콜을 지원합니다:

  • netflow5
  • netflow9
  • sflow5
  • ipfix

설정

사전 조건

  • NetFlow를 지원하고 NetFlow가 활성화된 장치입니다. 기기마다 여는 방법이 다릅니다. 공식 문서를 참고하는 것이 좋습니다. 예: Cisco ASA에서 NetFlow 켜기

DataKit 설치 디렉토리 아래에 conf.d/samples 디렉토리를 입력하고 netflow.conf.sample를 복사한 후 이름을 netflow.conf로 지정합니다. 예는 다음과 같습니다:

[[inputs.netflow]]
    source    = "netflow"
    namespace = "namespace"

    #[[inputs.netflow.listeners]]
    #    flow_type = "netflow9"
    #    port      = 2055

    [[inputs.netflow.listeners]]
        flow_type = "netflow5"
        port      = 2056

    #[[inputs.netflow.listeners]]
    #    flow_type = "ipfix"
    #    port      = 4739

    #[[inputs.netflow.listeners]]
    #    flow_type = "sflow5"
    #    port      = 6343

    [inputs.netflow.tags]
    # some_tag = "some_value"
    # more_tag = "some_other_value"

구성 후 DataKit 다시 시작만 사용하면 됩니다.

현재 수집기 구성을 삽입하는 ConfigMap 메서드를 통해 컬렉터를 켤 수 있습니다.

로그

다음은 예시 로그입니다.

{
    "flush_timestamp":1692077978547,
    "type":"netflow5",
    "sampling_rate":0,
    "direction":"ingress",
    "start":1692077976,
    "end":1692077976,
    "bytes":668,
    "packets":1588,
    "ether_type":"IPv4",
    "ip_protocol":"TCP",
    "device":{
        "namespace":"namespace"
    },
    "exporter":{
        "ip":"10.200.14.142"
    },
    "source":{
        "ip":"130.240.103.204",
        "port":"4627",
        "mac":"00:00:00:00:00:00",
        "mask":"130.240.96.0/20"
    },
    "destination":{
        "ip":"152.222.36.168",
        "port":"424",
        "mac":"00:00:00:00:00:00",
        "mask":"152.0.0.0/8"
    },
    "ingress":{
        "interface":{
            "index":0
        }
    },
    "egress":{
        "interface":{
            "index":0
        }
    },
    "host":"MacBook-Air-2.local",
    "next_hop":{
        "ip":"20.104.52.139"
    }
}

설명은 다음과 같습니다.

  • 루트/NetFlow 노드
필드 설명
flush_timestamp 보고시간
type 합의
sampling_rate 샘플링 주파수
direction 방향
start 시작 시간
end 종료 시간
bytes 전송된 바이트 수
packets 전송 패킷 수
ether_type 이더넷 유형(IPv4/IPv6)
ip_protocol IP 프로토콜(TCP/UDP)
device 장치 정보 노드
exporter 수출업자 정보 노드
source 플로우 source 정보 노드
destination 흐름 목적지 정보 노드
ingress 인그레스 게이트웨이 정보 노드
egress 게이트웨이 정보 노드 종료
host 수집가의 호스트 이름
tcp_flags TCP 마크
next_hop Next_Hop 속성 정보 노드
  • device 노드
필드 설명
namespace 네임스페이스
  • exporter 노드
필드 설명
ip 수출자의 IP
  • source 노드
필드 설명
ip 소스 IP 주소
port 소스 포트
mac 소스 MAC 주소
mask 소스 네트워크 마스크
  • destination 노드
필드 설명
ip 목적지의 IP 주소
port 목적지 포트
mac 대상 MAC 주소
mask 대상 IP 넷마스크
  • ingress 노드
필드 설명
interface 네트워크 포트 번호
  • egress 노드
필드 설명
interface 네트워크 포트 번호
  • next_hop 노드
필드 설명
ip Next_Hop 속성의 대상에 대한 다음 홉 IP 주소

메트릭 집합

다음의 모든 데이터 수집은 기본적으로 host라는 전역 태그를 추가합니다(태그 값은 DataKit의 호스트 이름입니다). 구성에서 [inputs.netflow.tags]를 통해 다른 태그를 지정할 수도 있습니다.

 [inputs.netflow.tags]
  # some_tag = "some_value"
  # more_tag = "some_other_value"
  # ...
Info

Netflow에서 수집한 데이터는 로그 클래스(L) 데이터에 저장됩니다.

netflow

NetFlow log records built from decoded flow payloads.

Tags & Fields Description
host
(tag)
Hostname.
ip
(tag)
Collector IP address.
bytes Number of bytes observed for this flow.
Type: int | (gauge)
Unit: digital,B
dest_ip Flow destination IP address.
Type: string | (string)
Unit: N/A
dest_port Flow destination port.
Type: string | (string)
Unit: N/A
device_ip NetFlow exporter IP address.
Type: string | (string)
Unit: N/A
ip_protocol Flow network protocol.
Type: string | (string)
Unit: N/A
message Rendered NetFlow log message.
Type: string | (string)
Unit: N/A
source_ip Flow source IP address.
Type: string | (string)
Unit: N/A
source_port Flow source port.
Type: string | (string)
Unit: N/A
status Normalized NetFlow log status.
Type: string | (string)
Unit: N/A
type NetFlow record type.
Type: string | (string)
Unit: N/A

문서 평가

이 페이지가 도움이 되었나요?