outputjson

특정 필드의 값을 JSON 형식으로 내보냅니다. 각 JSON 레코드는 개행으로 구분됩니다.

문법

outputjson [OPTIONS] FILE_PATH [FIELD, ...]
필수 매개변수
FILE_PATH
CSV/TSV 파일로 내보낼 경로
선택 매개변수
append=BOOL

FILE_PATH에 이미 파일이 있을 때 이어서 쓰기 제어 옵션(기본값: f)

  • t: FILE_PATH로 지정한 파일의 끝에 데이터를 이어서 작성하고, 파일이 없으면 새 파일을 생생합니다. overwrite=t일 때, 함께 사용할 수 없습니다.
  • f: 이어서 쓰기 비활성화. 이미 파일이 있으면 쿼리가 실패합니다.
bom=BOOL

파일 헤더에 BOM(Byte Order Mark)를 사용 여부

  • t: BOM을 파일 헤더에 추가
  • f: BOM을 파일 헤더에 추가하지 않음
encoding=CHARSET

문자열 인코딩 형식(기본값: utf-8). 다음 문서에 등록된 Preferred MIME Name이나 Aliases를 사용합니다: http://www.iana.org/assignments/character-sets/character-sets.xhtml.

flush=INT{y|mon|w|d|h|m|s}

출력 버퍼를 지우는 주기. 주기 단위는 y(연), mon(월), w(주), d(일), h(시), m(분), s(초) 중 하나를 사용할 수 있습니다. 예를 들어, 5초마다 버퍼를 비우려면 5s로 지정합니다.

overwrite=BOOL

FILE_PATH에 이미 파일이 있을 때 덮어쓰기 제어 옵션(기본값: f)

  • t: 파일 덮어쓰기 활성화. append=t일 때, 함께 사용할 수 없습니다.
  • f: 파일 덮어쓰기 비활성화. 이미 파일이 있으면 쿼리가 실패합니다.
partition=BOOL

FILE_PATH의 매크로 기능 제어 옵션(기본값: f). partition=t일 때, FILE_PATH에 매크로를 이용해 시간에 따라 디렉터리 및 파일 경로를 변경할 수 있습니다.

  • t: 매크로 활성화
  • f: 매크로 비활성화

사용할 수 있는 매크로는 {logtime:FMT}{now:FMT}가 있습니다. 입력 예시는 사용 예 3번을 참조하십시오.

  • {logtime:FMT}: 로그 발생 시각을 기준으로 디렉터리나 파일에 이름 부여
  • {now:FMT}: 현재 시각을 기준으로 디렉터리나 파일에 이름 부여
Caution
파티션 옵션을 지정하고 경로에 매크로를 사용하지 않으면 쿼리가 실패합니다.
tmp=TMP_FILE_PATH

임시 파일 경로. 이 옵션을 설정하면 임시 파일을 만들어 해당 경로에 출력한 다음, 쿼리문 정상적으로 종료되는 시점에 FILE_PATH로 지정한 파일 경로로 이동시킵니다.

FIELD, ...

JSON 파일에 출력할 필드 목록. 필드 구분자로 쉼표(,)를 사용합니다. 필드를 선택하지 않으면 모든 필드 값을 JSON 파일에 기록합니다.

사용 예

  1. output.json 파일로 모든 필드를 기록

    outputjson /opt/logpresso/files/output.json
    
  2. ippair.json 파일에 src_ip와 dst_ip를 기록

    outputjson /opt/logpresso/files/ippair.json src_ip, dst_ip
    
  3. 기록 매크로를 이용해 로그 발생 연월일로 디렉터리를 지정하고, 현재 시각 기준 파일 이름을 생성하는 방식으로 src_ip와 dst_ip 필드 값을 기록

    outputjson
      partition=t
      /opt/logpresso/files/{logtime:/yyyy/MM/dd/}/{now:HHmm}.json
      src_ip, dst_ip