sentry-logger-set-schedule
센트리에 있는 특정한 로거의 크론 형식 수집 일정을 재설정합니다.
문법
선택 매개변수
timeout=INT
- 초 단위 RPC 타임아웃(기본값: 30초)
설명
이 명령어는 센트리 식별자(guid
)와 로거 이름(name
), 수집 일정(cron_schedule
)을 입력 레코드로 받아서 센트리에 있는 특정한 로거의 크론 형식 수집 일정을 재설정하도록 센트리에게 비동기 RPC 메시지를 전송합니다.
로그프레소 환경 변수 logpresso.core.sentry_rpc_parallel
은 비동기 RPC 요청 메시지 대기열의 길이를 지정하는데 사용됩니다. 이 환경변수의 기본값은 100
이고, 이 환경 변수 값을 변경함으로써 비동기 RPC 요청 대기열의 길이를 조정할 수 있습니다.
RPC 요청 메시지 대기열은 선입선출 방식(first in, first out, 줄여서 FIFO) 방식으로 동작합니다. 예를 들어 로그프레소 서버가 메시지를 보낼 센트리의 개수가 150대라면, 서버는 먼저 100대의 센트리에게 RPC 메시지를 전송하고 RPC 응답을 기다립니다. 이 때 대기 시간이 timeout
으로 지정된 시간(기본값은 30초)을 초과하면 해당 센트리로부터 오류가 발생한 것으로 간주합니다. 100대의 센트리 중에서 32대가 응답하거나 타임아웃되면 추가적으로 32대의 센트리에게 RPC 메시지를 전송합니다.
이 명령어는 센트리의 RPC 응답 메시지를 수신하는 순서대로 결과를 출력하기 때문에 출력 레코드의 순서는 입력 레코드의 순서와 다를 수 있습니다. 레코드의 순서에 의존하지 말고 출력 데이터 자체를 이용하십시오.
입력 필드
이 명령어는 입력 레코드에 guid
, name
, cron_schedule
필드 값이 필요합니다.
필드 | 타입 | 필수 | 설명 |
---|---|---|---|
guid | 문자열 | O | 센트리 고유 식별자(자바 GUID 형식과 무관) |
name | 문자열 | O | 센트리 이름 공간 내 유일한 로거 식별자 |
cron_schedule | 문자열 | X | 수집 주기(크론 형식의 수집 일정. null인 경우 기존 수집 일정 삭제) |
cron_schedule
: 입력 방식은 유닉스 계열 운영체제의 크론 설정과 동일합니다. 리눅스 시스템에서 "man 5 crontab
" 명령으로 일정 설정에 필요한 항목을 확인해보십시오.
출력 필드
이 명령어는 오류가 발생하면 원본 레코드의 필드에 _error
필드를 추가하여 출력합니다. 발생할 수 있는 오류는 아래와 같습니다:
오류 메시지 | 의미 |
---|---|
guid is null | 입력 레코드의 guid 필드 값이 null |
guid should be string | 입력 레코드의 guid 필드 값이 문자열이 아님 |
guid should be non empty string | 입력 레코드의 guid 필드 값이 빈 문자열임 |
name should be not null | 입력 레코드의 name 필드 값이 null |
name should be string | 입력 레코드의 name 필드 값이 문자열이 아님 |
name should be non empty string | 입력 레코드의 name 필드 값이 빈 문자열임 |
cron_schedule should be string | 입력 레코드의 cron_schedule 필드 값이 문자열이 아님 |
wrong cron expression format: expr | 입력 레코드의 cron_schedule 필드 값이 유효하지 않은 크론 일정 형식임 |
logger not found: name | 지정된 이름(name)의 로거를 찾을 수 없음 |
logger is running: name | 실행 중인 로거(name)의 수집 일정을 변경할 수 없음 |
timeout | RPC 요청 타임아웃 시간을 초과함 |
disconnected | RPC 요청 처리 중에 연결이 단절됨 |
not connected | 센트리가 접속된 상태가 아님 |
sentry method not found: setLoggerSchedule | 센트리가 3.10.2106.0 이전 버전이어서 이 기능을 지원하지 않음 |
위에 정의된 _error
문자열 이외에 센트리가 설치된 시스템 상태에 따라 다른 RPC 예외 메시지가 출력될 수 있습니다.
사용 예
접속되어 있는 모든 센트리에서 지정된 이름의 로거를 매시 0분마다 실행하도록 설정
sentry
| sentry-loggers
| search name == "wtmp_linux"
| eval cron_schedule="0 * * * *"
| sentry-logger-set-schedule