sentry-logger-create

원격 센트리에 수집기를 생성합니다.

명령어 속성

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

문법

sentry-logger-create [timeout=INT]

옵션

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

입력 필드

필드타입필수 여부설명
guid문자열필수센트리 고유 식별자
factory_name문자열필수수집기 팩토리 이름
name문자열필수생성할 수집기 이름
description문자열선택수집기 설명
configs필수수집기 설정. 모든 키와 값은 문자열이어야 합니다.
table_name문자열선택수집된 데이터를 저장할 테이블 이름. 지정하지 않으면 스트리밍 전용 수집기로 사용됩니다.
host_tag문자열선택호스트 태그(_host 필드 태깅 값). 지정하지 않으면 guid 값이 사용됩니다.

출력 필드

입력 레코드의 모든 필드를 유지합니다. 오류가 발생하면 아래 필드를 추가합니다.

필드타입설명
_error문자열오류 발생 시 원본 레코드에 추가되는 오류 메시지

_error 필드에 할당될 수 있는 값은 다음과 같습니다:

오류 메시지설명
guid is null입력 레코드의 guid 필드 값이 null인 경우
guid should be string입력 레코드의 guid 필드 값이 문자열이 아닌 경우
guid should be non empty string입력 레코드의 guid 필드 값이 빈 문자열인 경우
not connected지정된 센트리가 접속 상태가 아닌 경우
name should be not null입력 레코드의 name 필드 값이 null인 경우
name should be string입력 레코드의 name 필드 값이 문자열이 아닌 경우
name should be non empty string입력 레코드의 name 필드 값이 빈 문자열인 경우
factory_name should be not null입력 레코드의 factory_name 필드 값이 null인 경우
factory_name should be string입력 레코드의 factory_name 필드 값이 문자열이 아닌 경우
factory_name should be non empty string입력 레코드의 factory_name 필드 값이 빈 문자열인 경우
unsupported factory_name: {factory_name}지정한 factory_name에 해당하는 수집기 팩토리가 존재하지 않는 경우
configs should be not null입력 레코드의 configs 필드 값이 null인 경우
configs should be dict type입력 레코드의 configs 필드 값이 맵 타입이 아닌 경우
all values of configs should be string typeconfigs 맵의 값 중 문자열이 아닌 항목이 있는 경우
missing config key: {key}factory_name이 요구하는 필수 설정 키가 누락된 경우
table_name should be non empty string입력 레코드의 table_name 필드 값이 빈 문자열인 경우
host_tag should be non empty string입력 레코드의 host_tag 필드 값이 빈 문자열인 경우
timeoutRPC 응답이 타임아웃 시간 내에 도착하지 않은 경우
disconnectedRPC 호출 도중 또는 수집기 등록 대기 중 센트리 접속이 끊어진 경우

위에 정의된 값 이외에 센트리 측 처리 중 발생한 예외 메시지가 출력될 수 있습니다.

오류 코드

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

해당 사항 없음

설명

sentry-logger-create 명령어는 입력 레코드의 guid 필드로 센트리를 식별하고, factory_name, name, description, configs 필드를 인자로 원격 RPC 호출(createLogger)을 실행하여 센트리에 수집기를 생성합니다.

수집기 생성 RPC 호출이 성공하면, 명령어는 수집기 레지스트리에 해당 수집기가 등록될 때까지 대기합니다. 등록이 확인된 후 table_namehost_tag(지정하지 않은 경우 guid 값)를 포함한 관리 수집기 설정을 생성합니다.

입력 필드 값이 유효하지 않거나 센트리가 접속 상태가 아닌 경우, 원본 레코드에 _error 필드를 추가하여 출력합니다. RPC 응답이 타임아웃 시간 내에 도착하지 않거나 수집기 등록 대기 중 타임아웃이 발생하면 _error: timeout을 설정합니다.

최대 100개의 RPC 요청을 동시에 처리합니다. logpresso.core.sentry_rpc_parallel 시스템 속성으로 동시 처리 한도를 변경할 수 있습니다.

출력 레코드의 순서는 입력 레코드의 순서와 다를 수 있습니다. 레코드 순서에 의존하지 말고 출력 데이터 자체를 활용하세요.

사용 예

  1. 접속된 모든 리눅스 센트리에 wtmp 수집기 생성

    system-sentries
    | search os == "Linux" and is_connected
    | eval name = "wtmp_linux"
    | eval factory_name = "wtmp"
    | eval configs = dict("path", "/var/log/wtmp")
    | sentry-logger-create
    | search isnull(_error)
    | fields guid, name
    
  2. 테이블과 호스트 태그를 지정하여 수집기 생성

    system-sentries
    | search is_connected
    | eval name = "local\\\\syslog"
    | eval factory_name = "syslog"
    | eval configs = dict("port", "514")
    | eval table_name = "syslog"
    | eval host_tag = host
    | sentry-logger-create timeout=60
    | fields guid, name, table_name, _error
    

호환성

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