sentry-logger-create
원격 센트리에 수집기를 생성합니다.
명령어 속성
| 항목 | 설명 |
|---|---|
| 명령어 유형 | 가공 쿼리 |
| 필요 권한 | 관리자 |
| 라이선스 사용량 | 해당 없음 |
| 병렬 실행 | 지원 |
| 분산 실행 | 미지원 |
문법
옵션
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 type | configs 맵의 값 중 문자열이 아닌 항목이 있는 경우 |
missing config key: {key} | factory_name이 요구하는 필수 설정 키가 누락된 경우 |
table_name should be non empty string | 입력 레코드의 table_name 필드 값이 빈 문자열인 경우 |
host_tag should be non empty string | 입력 레코드의 host_tag 필드 값이 빈 문자열인 경우 |
timeout | RPC 응답이 타임아웃 시간 내에 도착하지 않은 경우 |
disconnected | RPC 호출 도중 또는 수집기 등록 대기 중 센트리 접속이 끊어진 경우 |
위에 정의된 값 이외에 센트리 측 처리 중 발생한 예외 메시지가 출력될 수 있습니다.
오류 코드
파싱 오류
| 오류 코드 | 메시지 | 설명 |
|---|---|---|
| 23100 | 센트리 RPC 호출 권한이 없습니다. | 관리자 권한이 없는 경우 |
| 23101 | 유효하지 않은 센트리 RPC 타임아웃 옵션 값입니다. 1부터 600 사이의 값을 사용하세요. | timeout 값이 정수가 아니거나 1~600 범위를 벗어난 경우 |
런타임 오류
해당 사항 없음
설명
sentry-logger-create 명령어는 입력 레코드의 guid 필드로 센트리를 식별하고, factory_name, name, description, configs 필드를 인자로 원격 RPC 호출(createLogger)을 실행하여 센트리에 수집기를 생성합니다.
수집기 생성 RPC 호출이 성공하면, 명령어는 수집기 레지스트리에 해당 수집기가 등록될 때까지 대기합니다. 등록이 확인된 후 table_name과 host_tag(지정하지 않은 경우 guid 값)를 포함한 관리 수집기 설정을 생성합니다.
입력 필드 값이 유효하지 않거나 센트리가 접속 상태가 아닌 경우, 원본 레코드에 _error 필드를 추가하여 출력합니다. RPC 응답이 타임아웃 시간 내에 도착하지 않거나 수집기 등록 대기 중 타임아웃이 발생하면 _error: timeout을 설정합니다.
최대 100개의 RPC 요청을 동시에 처리합니다. logpresso.core.sentry_rpc_parallel 시스템 속성으로 동시 처리 한도를 변경할 수 있습니다.
출력 레코드의 순서는 입력 레코드의 순서와 다를 수 있습니다. 레코드 순서에 의존하지 말고 출력 데이터 자체를 활용하세요.
사용 예
-
접속된 모든 리눅스 센트리에 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 -
테이블과 호스트 태그를 지정하여 수집기 생성
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 이전 버전부터 제공되었습니다.