쿼리

개요

분석 > 쿼리 메뉴에서는 로그프레소 쿼리문을 직접 작성하고 실행해 데이터를 조회하거나 분석할 수 있습니다. 쿼리 문법과 명령어 자체에 대한 자세한 내용은 로그프레소 쿼리 설명서를 참고하세요.

현재 v5 쿼리 화면은 좌측 테이블 선택 영역과 우측 탭 기반 작업 영역으로 나뉩니다. 테이블을 먼저 선택해 쿼리 작성의 출발점을 잡을 수도 있고, 최근 실행한 쿼리를 다시 불러와 같은 분석을 반복할 수도 있습니다.

쿼리 메뉴는 보안관제 실무에서 다음과 같은 목적에 자주 사용됩니다.

  • 원본 로그나 정규화된 데이터를 직접 검색할 때
  • 탐지 규칙이나 피벗 분석 전에 쿼리를 먼저 검증할 때
  • 저장된 쿼리 결과나 데이터셋을 다시 불러와 후속 분석을 이어갈 때

화면 구성

쿼리 화면은 좌측 수집기 트리와 우측 탭 작업 영역으로 구성됩니다.

쿼리 화면 전체

테이블 트리

좌측 패널에는 전체 아래에 수집기 그룹과 수집기가 트리로 표시됩니다.

  • 트리 위의 검색창에 이름 일부를 입력하면 일치하는 수집기만 남습니다.
  • 체크박스로 수집기를 하나 이상 선택한 뒤 테이블 입력을 클릭하면, 선택한 수집기가 데이터를 기록하는 테이블의 이름이 쿼리 입력기에 들어갑니다.
  • 패널 오른쪽 위의 접기 버튼으로 패널을 접을 수 있고, 좌우 경계를 드래그해 너비를 조정할 수 있습니다.
쿼리 탭

우측 상단에는 탭 내비게이션이 표시됩니다.

  • 기본 탭 새 쿼리 1 외에 오른쪽의 추가 버튼으로 새 탭을 열어 여러 쿼리를 동시에 작업할 수 있습니다.
  • 각 탭은 실행 상태와 결과를 따로 유지합니다. 쿼리를 실행하면 탭 이름이 #쿼리 ID - 쿼리문 형태로 바뀝니다.
  • 탭 이름 오른쪽의 닫기 버튼으로 탭을 닫습니다.
  • 한 번 이상 실행한 탭은 서버에 등록되어, 같은 로그인 세션 안에서 페이지를 새로 고치거나 다른 메뉴로 이동했다가 돌아와도 실행 중이던 쿼리와 함께 복원됩니다. 오래 걸리는 쿼리를 실행해 둔 뒤 나중에 돌아와 이어서 확인할 수 있습니다. 실행하지 않은 탭과 입력만 해 둔 쿼리문은 화면을 벗어나면 남지 않습니다.
쿼리 입력기와 실행 영역

현재 탭에는 상단에 쿼리 입력기가, 그 아래에 실행 도구와 결과 영역이 표시됩니다.

  • 결과 건수 제한 드롭다운: 실행 왼쪽에서 결과 건수 제한을 선택합니다(기본값: 무제한, 범위: 최대 1만 건, 최대 10만 건, 최대 100만 건). 쿼리문에 limit 명령어를 쓰지 않아도 결과 건수를 제한할 수 있습니다. 계정에 쿼리 결과 건수 제한이 설정되어 있으면 그 이하 항목만 표시되고 기본값도 그 값으로 바뀝니다.
  • 실행: 현재 입력한 쿼리를 실행합니다.
  • 취소: 실행 중에만 표시되며, 실행 중인 쿼리를 중단합니다.
  • 초기화: 실행한 뒤 쿼리문을 바꿨을 때 표시되며, 입력기를 실행한 쿼리문으로 되돌립니다.
  • 쿼리 상태 보기: 실행한 뒤 표시되며, 옆의 소요 시간(초)과 함께 실행 정보 패널을 열거나 닫습니다.
  • 오른쪽 끝의 아이콘 메뉴는 실행 전에는 쿼리 결과 불러오기·데이터셋 불러오기를, 실행 후에는 쿼리 결과 다운로드·쿼리 결과 저장·데이터셋으로 저장을 제공합니다.

쿼리문 입력

쿼리 입력기는 여러 줄 편집과 실행 단축키를 지원합니다.

쿼리 입력창

  • 파이프(|)로 명령어를 이어 쿼리를 작성합니다.
  • 입력창은 내용 길이에 따라 여러 줄로 늘어납니다.
  • #으로 시작하는 줄은 주석으로 처리됩니다.
  • Shift + Enter 또는 Ctrl + Enter로 쿼리를 실행할 수 있습니다.
자동 완성

쿼리 입력창은 명령어와 옵션 자동 완성을 지원합니다.

명령어 자동 완성

옵션 자동 완성

  • 자동 완성 목록은 다음 단축키로 열 수 있습니다.
    • 공통: Ctrl + Space
    • Windows: Ctrl + Shift + Space (대안)
    • macOS: Cmd + Space (대안)
  • 입력한 접두어와 일치하는 명령어나 옵션이 하나뿐이면 바로 자동 입력될 수 있습니다.
Note
macOS의 Cmd + Space는 기본적으로 Spotlight 검색에 할당되어 있어 자동 완성 단축키와 충돌합니다. 로그프레소 소나의 단축키는 변경할 수 없으므로, 시스템 설정 → 키보드 → 키보드 단축키 → Spotlight에서 Spotlight 단축키를 다른 키로 바꾸세요. 또는 충돌을 피하려면 Ctrl + Space를 사용하세요.
자동 줄 바꿈

긴 쿼리문을 정리하려면 자동 줄 바꿈을 사용하세요.

줄 바꿈 전에는 긴 쿼리문이 한 줄로 이어져 읽기 어렵습니다.

자동 줄 바꿈 전

Ctrl + Shift + F를 누르면 파이프(|) 앞에서 줄이 나뉘어 명령 단위로 읽을 수 있습니다. macOS에서도 Ctrl + Shift + F를 사용합니다(Cmd 키가 아닙니다).

자동 줄 바꿈 후

테이블 입력

좌측 트리에서 수집기를 고르면 그 수집기가 데이터를 기록하는 테이블의 이름을 쿼리에 바로 넣을 수 있습니다.

  1. 쿼리 입력기에서 테이블 이름이 들어갈 자리에 커서를 두세요. 예를 들어 table duration=1d까지 입력합니다.

  2. 트리 검색창에 수집기 이름 일부를 입력하고, 체크박스로 수집기를 선택하세요.

  3. 테이블 입력을 클릭하세요. 커서 위치에 *:테이블 형식으로 테이블 이름이 들어가며, 수집기를 여러 개 선택했으면 쉼표로 구분됩니다.

    테이블 입력

쿼리 실행과 결과 확인

실행을 클릭하거나 단축키로 쿼리를 실행하면 결과 그리드가 입력기 아래에 표시됩니다.

쿼리 실행 예시

  • 실행 중에는 실행 버튼에 진행 표시가 돌고 옆에 취소 버튼이 나타납니다.
  • 실행이 끝나면 결과 그리드 위에 페이저가 표시되고, 도구 모음에 쿼리 상태 보기와 소요 시간이 표시됩니다.
  • 그리드 머리글의 아이콘은 필드 유형(IP, 문자열, 숫자 등)을 나타냅니다.
  • 셀의 긴 텍스트나 JSON/배열 값은 일부만 보이며, 더보기(⋯) 버튼이나 Shift+V 단축키로 전체 내용을 모달에서 확인할 수 있습니다. 자세한 규칙은 그리드 - 셀 세부 내용 보기를 참고하세요.
최근 쿼리 재실행

아직 쿼리를 실행하지 않은 탭에는 최근 실행한 쿼리 목록이 쿼리·실행 시각 표로 표시됩니다(한 페이지 10건).

최근 쿼리 목록

  • 항목을 클릭하면 그 쿼리문이 입력기에 채워지고 바로 실행됩니다.

저장된 데이터 불러오기

아직 쿼리를 실행하지 않은 탭에서는 오른쪽 끝의 불러오기 메뉴로 저장된 쿼리 결과나 데이터셋을 가져올 수 있습니다.

쿼리 결과 불러오기

불러오기 메뉴에서 쿼리 결과 불러오기를 클릭하면 저장된 쿼리 결과 목록이 열립니다.

쿼리 결과 불러오기

  • 표에는 이름, 건수, 크기, 생성일이 표시되고, 검색창으로 이름을 검색하거나 오른쪽 위의 새로 고침 아이콘으로 목록을 다시 불러올 수 있습니다.
  • 항목을 클릭하면 저장 당시의 결과가 현재 탭에 그대로 표시됩니다. 저장된 결과는 다시 실행되지 않는 정적 데이터입니다.
  • 체크박스로 항목을 선택하고 오른쪽 위의 삭제 아이콘을 클릭하면 저장된 결과를 삭제할 수 있습니다.
데이터셋 불러오기

불러오기 메뉴에서 데이터셋 불러오기를 클릭하면 데이터셋 목록이 열립니다.

데이터셋 불러오기

  • 표에는 이름과 수정일이 표시되고, 검색창으로 이름을 검색하거나 오른쪽 위의 새로 고침 아이콘으로 목록을 다시 불러올 수 있습니다.
  • 항목을 클릭하면 데이터셋에 저장된 쿼리가 현재 시점 기준으로 다시 실행됩니다. 같은 데이터셋이라도 시간 조건이나 원본 데이터 상태에 따라 결과가 달라질 수 있습니다.

쿼리 결과 저장과 다운로드

쿼리를 실행하면 오른쪽 끝의 아이콘 메뉴가 다운로드 메뉴로 바뀝니다.

데이터셋으로 저장

다운로드 메뉴에서 데이터셋으로 저장을 클릭하면 데이터셋 추가 대화상자가 열립니다.

데이터셋으로 저장

  • 이름: 데이터셋 이름입니다(필수, 최대 50자).
  • 설명: 데이터셋 설명입니다(최대 2,000자).
  • 쿼리: 현재 실행한 쿼리문이 채워져 있습니다.

추가를 클릭하면 쿼리문이 데이터셋으로 저장되어 피벗, 위젯 같은 다른 기능에서 재사용할 수 있습니다.

데이터셋으로 저장할 쿼리는 table, fulltext 같은 시작 명령에 duration 옵션이나 _from, _to 시간 변수로 기간을 함께 두는 편이 재사용하기 좋습니다. 예를 들어 위 화면의 쿼리를 _from, _to 시간 변수로 기간을 받도록 바꾸면 다음과 같습니다. 대시보드 입력 컨트롤이 두 변수를 넘기면 그 기간을, 넘기지 않으면 nvl 함수의 기본값인 최근 1일을 조회합니다.

set _from=string(nvl($("_from"), datetrunc(ago("1d"), "1d")), "yyyyMMddHHmmss")
| set _to=string(nvl($("_to"), now()), "yyyyMMddHHmmss")
| table from=$("_from") to=$("_to") sonar_login | search action == "fail" | stats count as fail_count by src_ip, user | sort -fail_count
쿼리 결과 저장

다운로드 메뉴에서 쿼리 결과 저장을 클릭하면 쿼리 결과 저장 대화상자가 열립니다.

쿼리 결과 저장

  • 이름: 저장할 결과 이름입니다(필수, 최대 100자).

확인을 클릭하면 현재 시점의 실행 결과가 정적 결과로 저장되며, 쿼리 결과 불러오기로 다시 열 수 있습니다.

쿼리 결과 다운로드

다운로드 메뉴에서 쿼리 결과 다운로드를 클릭하면 쿼리 결과 다운로드 대화상자가 열립니다.

쿼리 결과 다운로드

  • 파일 이름: 저장할 파일 이름입니다(필수, 최대 200자, 기본값: 쿼리_쿼리 ID).
  • 컬럼: 파일에 포함할 필드를 선택합니다. 결과의 모든 필드가 기본으로 선택되어 있고, 검색창으로 이름을 걸러 보거나 오른쪽 핸들을 드래그해 순서를 바꿀 수 있습니다.
  • 파일 형식: CSV, XML, Microsoft Word, HTML, JSON, PDF 중 하나를 선택합니다(기본값: CSV).
  • 인코딩: 파일의 문자 인코딩을 선택합니다. 파일 형식이 CSV 또는 JSON일 때만 표시됩니다.
  • 범위: 내려받을 결과의 시작 번호와 끝 번호를 지정합니다(기본값: 전체 결과).
  • 파일 분할 압축 (건): 파일 형식이 CSV일 때만 표시됩니다. 선택하면 지정한 건수마다 파일을 나눠 ZIP으로 묶어 내려받습니다.

설정을 마친 뒤 다운로드를 클릭하세요.

AI로 파서 생성

쿼리 결과가 원본 텍스트 로그이면 도구 모음 오른쪽, 다운로드 메뉴 왼쪽에 AI로 파서 생성 버튼이 표시됩니다. 이 버튼을 클릭하면 현재 쿼리 결과를 바탕으로 파서를 자동 생성할 수 있습니다. 버튼은 다음 조건을 모두 만족할 때만 표시됩니다.

  • 계정에 파서 편집 권한이 있을 것
  • 쿼리 결과에 원본 텍스트 한 줄을 담는 line 필드가 있을 것
  • 쿼리 결과에 _schema 필드가 없을 것(이미 스키마가 적용된 결과는 대상이 아님)

쿼리 수행 정보 조회

실행한 뒤 쿼리 상태 보기를 클릭하면 결과 그리드 아래에 실행 정보 패널이 열립니다.

쿼리 수행 정보

  • 실행 시각과 소요 시간(ms)
  • 쿼리 ID와 실행된 명령 단계 목록
  • 명령 단계별 처리 건수
  • 서브쿼리가 있으면 서브쿼리별 명령 단계

결과 표시 개수 변경

결과 그리드 위 페이저의 건씩 보기 드롭다운에서 한 페이지에 표시할 건수를 바꿀 수 있습니다(기본값: 50, 범위: 10, 15, 20, 50, 100, 150, 200).

표시 개수 변경