수집 모델 생성
새 수집 모델을 생성합니다. 기존 모델의 설정은 수집 모델 수정 API로 변경할 수 있습니다.
필요 권한
관리자 이상의 계정으로 이용할 수 있습니다.
HTTP 요청
POST /api/sonar/logger-models
cURL 예시
curl -H "Authorization: Bearer <API_KEY>" \
-d name=NGINX \
-d logger_factory_name=dirwatch \
-d 'rules=[{"name": "Web log", "log_schema_code": "web", "stream_query": "parse kv", "stream_interval": 60}]' \
-X POST \
https://HOSTNAME/api/sonar/logger-models
요청 매개변수
| 키 | 필수 | 타입 | 설명 | 비고 |
|---|---|---|---|---|
| guid | X | 문자열 | 수집 모델 GUID | 36자. 미지정 시 무작위 생성 |
| name | O | 문자열 | 수집 모델 이름 | 최대 50자 |
| description | X | 문자열 | 수집 모델 설명 | 최대 2,000자 |
| logger_factory_name | O | 문자열 | 수집 유형 식별자 | |
| parser_code | X | 문자열 | 파서 식별자 | |
| common_stream_query | X | 문자열 | 공통 스트림 쿼리 | 최대 10,000자. 각 정규화 규칙의 스트림 쿼리 뒤에 공통 적용 |
| rules | X | 객체 배열 | 정규화 규칙 목록 | 하단 참조 |
rules의 각 객체는 아래의 속성을 포함합니다:
- guid (문자열): 정규화 규칙 GUID. 미지정 시 무작위 생성
- name (문자열): 정규화 규칙 이름
- log_schema_code (문자열): 로그 스키마 식별자
- parser_code (문자열): 파서 식별자
- filter (문자열): 필터 조건
- stream_query (문자열): 기본 스트림 쿼리
- extended_stream_query (문자열): 확장 스트림 쿼리
- stream_interval (32비트 정수): 스트림 쿼리 새로 고침 주기(초)
정상 응답
{
"guid": "cd09ae6f-fbc3-11ed-9320-02d178f999a6"
}
- guid (문자열): 생성된 수집 모델 GUID
오류 응답
name 또는 logger_factory_name이 누락된 경우
HTTP 상태 코드 400 응답
{
"error_code": "null-argument",
"error_msg": "name should be not null"
}
name 값의 길이가 잘못된 경우
HTTP 상태 코드 400 응답
{
"error_code": "invalid-argument",
"error_msg": "'name' must be shorter than or equal to 50 characters."
}
description 값의 길이가 잘못된 경우
HTTP 상태 코드 400 응답
{
"error_code": "invalid-argument",
"error_msg": "'description' must be shorter than or equal to 2000 characters."
}
common_stream_query 값의 길이가 잘못된 경우
HTTP 상태 코드 400 응답
{
"error_code": "invalid-argument",
"error_msg": "'common_stream_query' must be shorter than or equal to 10000 characters."
}
guid가 GUID 형식이 아닌 경우
HTTP 상태 코드 400 응답
{
"error_code": "invalid-param-type",
"error_msg": "guid should be guid type."
}
파서가 존재하지 않는 경우
HTTP 상태 코드 500 응답
{
"error_code": "illegal-state",
"error_msg": "parser not found: nginx"
}
수집 유형이 존재하지 않는 경우
HTTP 상태 코드 500 응답
{
"error_code": "illegal-state",
"error_msg": "logger factory not found: unknown"
}
guid가 중복된 경우
HTTP 상태 코드 500 응답
{
"error_code": "illegal-state",
"error_msg": "duplicated logger model guid: cd09ae6f-fbc3-11ed-9320-02d178f999a6"
}
name이 중복된 경우
HTTP 상태 코드 500 응답
{
"error_code": "illegal-state",
"error_msg": "duplicated logger model name: NGINX"
}
권한이 없는 경우
HTTP 상태 코드 500 응답
{
"error_code": "illegal-state",
"error_msg": "no-permission"
}