outputcsv

특정 필드의 값을 CSV 또는 TSV 파일로 내보냅니다.

문법

outputcsv [OPTIONS] FILE_PATH FIELD, ...
필수 매개변수
FILE_PATH
CSV/TSV 파일로 내보낼 경로
FIELD, ...
CSV 또는 TSV 파일에 출력할 필드 목록. 필드 구분자로 쉼표(,)를 사용합니다.
Caution
CSV와 TSV 형식은 모든 행의 필드 구성이 동일해야 하므로 로그프레소의 outputcsv 명령을 사용할 때는 반드시 출력필드를 정의해야 합니다. 출력필드의 순서와 무관하게 데이터를 내보내려면 outputjson 명령을 사용하십시오.
선택 매개변수
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}가 있습니다. 입력 예시는 사용 예 2번을 참조하십시오.

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

필드 구분자로 탭(tab) 문자 사용 여부(기본값: f)

  • t: 탭(tab) 문자를 구분자로 사용. TSV(Tab-separated Values) 파일을 처리할 때 유용합니다.
  • f: 구분자로 쉼표(,)를 사용
tmp=TMP_FILE_PATH

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

사용 예

  1. ippair.csv 파일로 src_ipdst_ip 필드의 값을 기록

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

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