decodesflow
이더넷 프레임에서 sFlow v5 패킷을 디코딩하여 에이전트 정보, 샘플 유형, 샘플링 통계 등을 추출합니다.
명령어 속성
| 항목 | 설명 |
|---|---|
| 명령어 유형 | 가공 쿼리 |
| 필요 권한 | 없음 |
| 라이선스 사용량 | 해당 없음 |
| 병렬 실행 | 지원 |
| 분산 실행 | 수집 노드에서 실행 (mapper) |
문법
입력 필드
| 필드 | 타입 | 필수 여부 | 설명 |
|---|---|---|---|
payload | 바이너리 | 필수 | 이더넷 프레임 데이터. 바이너리 타입이 아닌 경우 해당 레코드를 무시합니다. |
출력 필드
| 필드 | 타입 | 설명 |
|---|---|---|
src_ip | IP 주소 | 출발지 IP 주소 |
src_port | 32비트 정수 | 출발지 포트 번호 |
dst_ip | IP 주소 | 목적지 IP 주소 |
dst_port | 32비트 정수 | 목적지 포트 번호 |
protocol | 문자열 | 전송 프로토콜. udp |
ver | 32비트 정수 | sFlow 프로토콜 버전. 5 |
agent_addr | IP 주소 | sFlow 에이전트 IP 주소 |
agent_id | 32비트 정수 | sFlow 서브 에이전트 ID |
flow_seq | 64비트 정수 | sFlow 패킷 시퀀스 번호 |
uptime | 64비트 정수 | 에이전트 시스템 가동 시간 (밀리초) |
sample_type | 문자열 | 샘플 유형. flow 또는 counters |
sample_seq | 64비트 정수 | 샘플 시퀀스 번호 |
src_id_type | 32비트 정수 | 소스 ID 유형 |
src_id | 32비트 정수 | 소스 인덱스 |
sampling_rate | 32비트 정수 | 샘플링 비율. flow 샘플에만 해당 |
sample_pool | 64비트 정수 | 총 샘플링 풀 카운트. flow 샘플에만 해당 |
drops | 64비트 정수 | 드롭된 패킷 수. flow 샘플에만 해당 |
input_if_format | 32비트 정수 | 입력 인터페이스 형식. flow expanded 샘플에만 해당 |
input_if_value | 32비트 정수 | 입력 인터페이스 값. flow expanded 샘플에만 해당 |
output_if_format | 32비트 정수 | 출력 인터페이스 형식. flow expanded 샘플에만 해당 |
output_if_value | 32비트 정수 | 출력 인터페이스 값. flow expanded 샘플에만 해당 |
input_if_index | 32비트 정수 | 입력 인터페이스 인덱스. flow 샘플에만 해당 |
output_if_index | 32비트 정수 | 출력 인터페이스 인덱스. flow 샘플에만 해당 |
flows | 배열 | 플로우 데이터 레코드 목록. flow 샘플에만 해당 |
counters | 배열 | 카운터 데이터 레코드 목록. counters 샘플에만 해당 |
오류 코드
파싱 오류
해당 사항 없음
런타임 오류
해당 사항 없음
설명
decodesflow 명령어는 입력 레코드의 payload 필드에서 이더넷 프레임을 읽어 sFlow v5 패킷을 디코딩합니다. payload 필드가 바이너리 타입이 아닌 경우 해당 레코드를 무시합니다.
이더넷 프레임에서 IPv4 헤더와 UDP 헤더를 순차적으로 파싱한 후, UDP 페이로드에서 sFlow v5 매직 넘버(0x00000005)를 확인합니다. sFlow v5 패킷이 아니거나 IPv4가 아니거나 UDP가 아닌 경우 해당 레코드를 무시합니다.
하나의 sFlow 패킷에 여러 개의 샘플이 포함될 수 있으므로, 하나의 입력 레코드에서 여러 개의 출력 레코드가 생성될 수 있습니다. 샘플 유형에 따라 flow 샘플은 sampling_rate, sample_pool, drops, 인터페이스 정보 등을 포함하고, counters 샘플은 counters 배열을 포함합니다.
디코딩에 실패하면 해당 레코드를 무시하고 다음 레코드를 처리합니다.
이 명령어는 병렬 실행을 지원하며, 분산 환경에서는 수집 노드에서 실행됩니다.
사용 예
-
PCAP 파일에서 sFlow 패킷 디코딩
pcapfile /opt/logpresso/sflow-capture.pcap | decodesflowPCAP 파일에서 읽은 이더넷 프레임의 sFlow v5 패킷을 디코딩합니다.
-
sFlow 에이전트별 샘플 수 집계
pcapfile /opt/logpresso/sflow-capture.pcap | decodesflow | stats count by agent_addrsFlow 에이전트 IP 주소별로 샘플 수를 집계합니다.
-
flow 샘플만 필터링하여 조회
pcapfile /opt/logpresso/sflow-capture.pcap | decodesflow | search sample_type == "flow" | fields agent_addr, sample_seq, sampling_rate, drops, src_ip, dst_ipsFlow 패킷 중 flow 유형의 샘플만 필터링하여 주요 필드를 조회합니다.
호환성
decodesflow 명령어는 소나 4.0 이전 버전부터 제공되었습니다.