sentry-netstat

원격 센트리에서 네트워크 연결 목록을 조회합니다.

명령어 속성

항목설명
명령어 유형가공 쿼리
필요 권한관리자
라이선스 사용량해당 없음
병렬 실행지원
분산 실행미지원

문법

sentry-netstat [timeout=INT]

옵션

timeout=INT
초 단위 RPC 타임아웃. 1 이상 600 이하의 값을 지정할 수 있습니다. (기본값: 30)

입력 필드

필드타입필수 여부설명
guid문자열필수센트리 고유 식별자

출력 필드

필드타입설명
guid문자열센트리 고유 식별자
pid32비트 정수프로세스 ID. 운영체제별 값은 아래 표 참고
protocol문자열프로토콜(tcp, tcp6, udp, udp6)
local_ipIP 주소로컬 IP 주소
local_port32비트 정수로컬 포트 번호
remote_ipIP 주소원격 IP 주소. UDP 항목에는 없음
remote_port32비트 정수원격 포트 번호. UDP 항목에는 없음
state문자열연결 상태. 운영체제별 값은 아래 표 참고
_error문자열오류 발생 시 원본 레코드에 추가되는 오류 메시지

state와 pid 필드의 값은 센트리가 설치된 운영체제에 따라 다음과 같이 다릅니다.

운영체제statepid
리눅스TCP 항목은 ESTABLISHED, SYNSENT, SYNRECV, FINWAIT1, FINWAIT2, TIMEWAIT, CLOSE, CLOSEWAIT, LASTACK, LISTEN, CLOSING, UNKNOWN 중 하나이고, UDP 항목은 항상 LISTENlsof 명령 결과에서 찾은 프로세스 ID. 찾지 못하면 0
윈도우TCP 항목은 CLOSED, LISTEN, SYNSENT, SYNRECEIVED, ESTABLISHED, FINWAIT1, FINWAIT2, CLOSEWAIT, CLOSING, LASTACK, TIMEWAIT, DELETETCB, UNKNOWN 중 하나이고, UDP 항목은 항상 LISTEN소켓을 소유한 프로세스 ID
AIX, HP-UXTCP 항목은 netstat -na 명령 출력의 상태 값(예: LISTEN, ESTABLISHED)을 그대로 할당하며, 상태가 CLOSED인 연결은 출력하지 않음. UDP 항목은 null출력하지 않음
Solarisnetstat -na 명령 출력의 State 열 값(예: TCP 항목은 LISTEN, IDLE, ESTABLISHED, UDP 항목은 Idle, Unbound)을 그대로 할당출력하지 않음

AIX·HP-UX·Solaris 센트리는 netstat -na 명령 출력의 주소가 *이면 0.0.0.0(IPv6 항목은 ::)을, 포트가 *이면 null을 할당합니다.

리눅스 센트리는 lsof 명령으로 소켓을 가진 프로세스를 찾습니다. 센트리 호스트에 lsof 패키지가 없으면 pid가 모두 0이고, lsof 패키지가 있어도 센트리 실행 계정이 접근할 수 없는 다른 계정의 프로세스가 가진 소켓은 pid가 0입니다. 리눅스 센트리 호스트에 필요한 패키지는 필수 패키지 설치를 참고하세요.

오류 코드

파싱 오류
오류 코드메시지설명
23100센트리 RPC 호출 권한이 없습니다.관리자 권한이 없는 사용자가 명령어를 실행한 경우
23101유효하지 않은 센트리 RPC 타임아웃 옵션 값입니다. 1부터 600 사이의 값을 사용하세요.timeout 옵션 값이 정수가 아니거나 1~600 범위를 벗어난 경우
런타임 오류

_error 필드를 통해 오류 내용을 반환합니다.

오류 메시지설명
guid is null입력 레코드의 guid 필드 값이 null인 경우
guid should be string입력 레코드의 guid 필드 값이 문자열이 아닌 경우
guid should be non empty string입력 레코드의 guid 필드 값이 빈 문자열인 경우
not connected센트리가 접속된 상태가 아닌 경우
timeoutRPC 요청 타임아웃 시간을 초과한 경우
disconnectedRPC 요청을 보낼 때 센트리 연결이 이미 끊어져 있는 경우

위에 정의된 오류 메시지 이외에 센트리가 설치된 시스템 상태에 따라 다른 RPC 예외 메시지가 반환될 수 있습니다.

설명

sentry-netstat 명령어는 입력 레코드의 guid 필드를 읽어 해당 센트리에 비동기 RPC 메시지를 전송하고, 네트워크 연결 목록을 조회합니다. TCP, TCP6, UDP, UDP6 프로토콜의 연결 정보를 모두 반환하며, 각 연결 정보에 protocol 필드를 추가하여 프로토콜 유형을 구분합니다.

이 명령어는 센트리의 RPC 응답 메시지를 수신하는 순서대로 결과를 반환하기 때문에 출력 레코드의 순서는 입력 레코드의 순서와 다를 수 있습니다.

비동기 RPC 요청 대기열의 최대 길이는 기본값 100이며, 로그프레소 환경 변수 logpresso.core.sentry_rpc_parallel로 조정할 수 있습니다.

클러스터 환경에서 모든 수집 노드의 결과를 한 번에 조회하려면 sonar-sentry-netstat 명령어를 사용하세요.

사용 예

  1. 모든 센트리의 네트워크 연결 목록 조회

    sentry | fields guid | sentry-netstat
    
  2. 연결 대기(LISTEN) 상태인 TCP 소켓 조회

    sentry | fields guid | sentry-netstat | search protocol == "tcp*" and state == "LISTEN"
    

    UDP 항목의 state 값은 센트리 운영체제마다 다르므로 protocol 조건으로 TCP 항목만 고릅니다.

  3. 타임아웃을 60초로 설정하여 조회

    sentry | fields guid | sentry-netstat timeout=60
    

변경 이력

sentry-netstat 명령어는 소나 4.0 이전 버전부터 제공되었습니다.