수집기

개요

수집기는 데이터 원천에서 로그를 가져오는 역할을 합니다. 수집 방식은 수집 모델에 따라 달라지며, 수집기는 해당 모델에 정의된 방식에 따라 데이터를 수집합니다.

수집기가 하는 작업

데이터 원천

데이터 원천은 대부분 로그프레소 소나 외부의 네트워크 호스트입니다. 예를 들어, 웹 서비스를 제공하는 애플리케이션 서버, 파일 서버, 데이터베이스, IPS, 방화벽과 같은 네트워크 보안 장비, 엔드포인트 보안 장비, 액티브 디렉터리 서버 등이 해당됩니다. REST API를 통해 접근 가능한 서비스나, PCAP 장치 역시 데이터 원천이 될 수 있습니다.

로그프레소 소나 자체도 데이터 원천이 될 수 있습니다. 예를 들어, 이벤트 연관 분석을 위해 메모리에 저장된 이벤트 컨텍스트, 로그프레소 소나 또는 센트리의 로그, 외부 원천으로부터 수집된 데이터를 기반으로 생성된 파생 데이터 등을 수집해야 하는 경우가 여기에 해당합니다.

수집기 실행 위치

수집기의 실행 위치는 로그프레소 소나의 클러스터의 구성 방식에 따라 달라집니다. 아래 표와 같이 수집기는 데이터를 수집하는 최전방 노드에서 실행됩니다.

클러스터구성 노드 (각 노드는 이중화 지원)수집기 실행 위치
1 티어 구조분석 노드 (수집 노드 기능 병행)분석 노드, 센트리
2 티어 구조전달 노드 → 분석 노드전달 노드, 센트리
레거시 2 티어 구조수집 노드 → 분석 노드수집 노드, 센트리
3 티어 구조전달 노드 → 수집 노드 → 분석 노드전달 노드, 센트리

전달 노드는 4.0.2404.0 버전에서 도입된 기능입니다(관련 이슈 노트). 이 기능 도입 이후, 수칩기를 추가할 때 공통 설정에서 수집 위치적재 위치를 명확히 구분해 지정할 수 있도록 기능이 개선되었습니다.

수집 방식에 따른 구분

수집기는 데이터 수집 방식에 따라 패시브 방식과 액티브 방식으로 나뉩니다.

패시브 수집기

  • 패시브 수집기는 데이터 수신 포트를 열고, 데이터 원천에서 전송되는 데이터를 수신합니다.
  • 서버-클라이언트 구조에서 서버 역할을 하며, Syslog, SNMP Trap, NetFlow, sFlow 포트를 통해 데이터를 수신하는 방식이 대표적입니다.
  • 클러스터 환경에서는 데이터 수신 노드에서 Active-Active 방식으로 동작하여 한 노드에 장애가 발생하더라도 다른 노드가 계속해서 데이터를 수신합니다.

액티브 수집기

  • 액티브 수집기는 주기적으로 데이터 원천에 직접 접근해 데이터를 수집합니다.
  • 서버-클라이언트 구조에서는 클라이언트 역할을 하며, (S)FTP, SSH, HTTP(S), JDBC, REST API 등을 통해 외부 시스템에 접속해 데이터를 가져옵니다.
  • 클러스터 환경에서는 데이터 수신 노드 페어에서 Active-Standby 방식으로 동작합니다. 동일한 수집기가 동시에 실행되면 데이터가 중복 수집될 수 있으므로, 수집기는 하나의 노드 페어 중 하나의 노드에서만 실행됩니다. 장애가 발생하면 대기 중이던 다른 노드가 자동으로 수집을 이어받습니다.

수집기 조회

수집 > 수집기 메뉴에서 수집기를 조회하거나 검색할 수 있습니다. 로그프레소 소나는 초기 상태에서 수집기를 기본으로 제공하지 않으므로, 처음에는 빈 목록이 표시됩니다. 다음 그림은 기본 그룹인 전체 그룹의 수집기 목록 예시입니다. 전체 그룹은 모든 수집기 그룹에 속한 수집기와, 어느 그룹에도 속하지 않은 수집기를 모두 포함합니다.

수집기 목록 - 전체 수집기 목록

  • 활성화: 수집기의 활성화 상태
  • 상태: 수집기의 실행 상태
    • 녹색: 정상
    • 회색: 비활성화됨
    • 주황: 수집 실패. 수집기가 실행 중인 노드 또는 센트리에 수집기 설정이 아직 동기화되지 않았거나, 데이터 원천 접근 실패, 인증 실패, 디스크 공간 부족 등의 이유로 실패할 수 있습니다.
  • 사이트: 데이터 원천에 대한 사이트 정보
  • 이름: 수집기를 식별하는 이름
  • 테이블: 수집된 데이터를 저장하는 테이블 이름
  • 수집 건수: 수집된 레코드의 개수
  • 수집 용량: 수집된 레코드의 총 용량(기본 단위: 바이트). 이 값은 테이블에서 표시되는 디스크 사용량과 다를 수 있습니다.
  • 수집 주기: 액티브 수집기의 경우, 데이터 수집 주기 또는 일정. 패시브 수집기는 수집 주기가 없습니다.

특정 수집기를 찾으려면 도구 모음의 검색창을 사용하세요. 입력한 문자열이 이름에 포함된 수집기가 검색되며, 대소문자는 구분하지 않습니다.

수집기 그룹

수집기를 그룹 단위로 관리할 수 있습니다.

수집기 그룹 추가

수집기 그룹을 추가하려면,

  1. 수집 > 수집기에서 수집기 그룹 목록 위에 있는 추가 버튼을 클릭하세요.

  2. 수집기 그룹 추가 대화상자에서 수집기 그룹의 속성을 입력하세요.

    수집기 그룹 추가

    • 이름: 수집기 그룹 식별에 사용할 이름
    • 설명: 수집기 그룹에 대한 설명
    • 상위 그룹: 추가할 수집기 그룹의 상위 그룹(기본값: 선택 안 함)
수집기 그룹 수정

수집기 그룹을 수정하려면,

  1. 수집기 그룹 목록에서 수정할 수집기 그룹을 선택한 다음, 톱니바퀴 버튼을 클릭하세요.

  2. 수집기 그룹 수정 대화상자에서 수집기 그룹의 속성을 수정한 다음 확인 버튼을 클릭하세요.

    수집기 그룹 수정

수집기 그룹 삭제

수집기 그룹을 삭제하려면,

  1. 수집기 그룹 목록에서 삭제할 수집기 그룹을 선택한 다음, 휴지통 버튼을 클릭하세요.

  2. 수집기 그룹 아래에 있는 모든 그룹을 삭제하려면 수집기 그룹 삭제 대화상자에서 하위 그룹 모두 제거를 선택하세요.

    수집기 그룹 삭제

Note
삭제 대상 그룹에 수집기가 포함되어 있는 경우, 해당 수집기는 그룹 속성만 제거되고 삭제되지 않습니다.

수집기 추가

수집기는 파서, 로그 스키마, 수집 모델과 달리 관리자가 직접 생성해야 합니다.

  1. 수집 > 수집기 화면에서 먼저 수집기 그룹을 선택하세요. 그룹을 선택하지 않으면 수집기는 소속 그룹 없이 생성됩니다.

  2. 수집기 목록 우측 상단에서 추가 버튼을 클릭하세요.

    수집기 추가 - 도구 모음에서 추가 버튼을 클릭

  3. 수집기 추가 화면에서 공통 설정, 수집 설정, 필터 설정에 필요한 값을 입력하거나 선택한 다음, 확인 버튼을 클릭하세요. 배경색이 하늘색인 것은 필수 입력 항목입니다.

    • 공통 설정: 수집기 이름, 테이블 등 기본 설정 항목
    • 수집 설정: 선택한 수집 모델에 따라 지정하는 수집 방식 관련 설정
    • 필터 설정: 수집 대상 또는 제외 대상을 정규표현식으로 필터링할 때 사용하는 패턴
  4. 수집기는 기본적으로 비활성화 상태로 추가됩니다. 활성화하려면 해당 수집기의 활성화 버튼을 클릭하세요.

공통 설정

공통 설정은 수집기의 기본 속성을 구성하는 항목입니다. 수집 주기나 일정, 실행 노드, 적재 노드 및 테이블, 수집 모델을 설정하고, 사이트 및 자산 IP 정보도 함께 연결할 수 있습니다.

수집기 추가 - 공통 설정

  • 이름: 수집기를 식별하는 이름을 입력하세요.

  • 자산 IP: 데이터 원천의 사이트 및 자산 IP 주소 정보를 입력하세요. 이 항목은 검색을 지원합니다.

  • 실행 방식: 액티브 수집기의 실행 주기 또는 일정을 지정하세요(기본값: 주기).

    Note
    실행 방식은 액티브 수집기에만 적용됩니다. 패시브 수집기에는 영향을 미치지 않습니다.
    • 주기: 초 단위로 실행 주기를 입력하세요(기본값: 5초).

      수집기 공통 설정 - 실행 주기

    • 일정: CRON 문법 형식으로 실행 일정을 지정하세요(기본값: 1분 마다).

      수집기 공통 설정 - 실행 일정

  • 적재 위치: 수집 데이터를 적재할 노드와 전송 방식을 설정하세요. 클러스터 아키텍처에 따라 노드 페어, 부하 균등 분배 중에서 선택하세요.

    • 노드 페어: 지정한 노드 페어 하나에 데이터를 전송(레거시 2티어 구조에 사용)

      수집기 공통 설정 - 특정한 노드 페어에 데이터 적재

    • 부하 균등 분배: 여러 노드 페어에 데이터를 분산 전송(2티어, 3티어 구조 권장 방식)

      수집기 공통 설정 - 모든 노드 페어에 데이터 균등 분배

  • 수집 위치: 수집기를 실행할 노드 또는 센트리를 선택하세요(기본값: 선택 안 함).

    • 1티어 구조에서는 센트리만 목록에 표시되며, 선택하지 않으면 분석 노드에서 실행됩니다.

    • 적재 위치노드 페어인 경우, 해당 노드와 데이터를 전달할 수 있는 노드 또는 노드 페어가 목록에 표시됩니다.

      수집기 공통 설정 - 수집 위치 1

    • 적재 위치부하 균등 분배를 선택한 경우, 전달 노드 페어만 선택할 수 있습니다.

      수집기 공통 설정 - 수집 위치 2

  • 수집 모델: 수집된 데이터 처리에 적용할 수집 모델

    • 수집 위치에서 선택한 전달 노드 또는 센트리에서 사용할 수 있는 수집 모델만 목록에 나타납니다.
    • 여기서 지정한 수집 모델에 따라 수집 설정 항목이 결정됩니다.
    • 이 항목은 검색을 지원합니다.
  • 테이블: 정규화된 데이터를 저장할 테이블을 지정하세요(기본값: 없음). 기존 테이블이 있다면 선택하고, 없으면 해당 이름으로 자동 생성됩니다.

  • 암호화: 테이블의 암호화 여부를 선택하세요(기본값: 사용).

  • 설명: 수집기에 대한 설명을 입력하세요.

Note
4.0.2409.0까지는 '시스템 > 암호화 프로파일' 기능이 제공되었으나, 4.0.2502.0부터 수집기 설정에 내재화되었습니다.
수집 설정

수집 설정은 공통 설정에서 지정한 수집 모델유형에 따라 정의됩니다.

Note
본 문서에서는 로그프레소 소나의 기본 수집 모델을 기준으로 수집 설정 항목을 설명합니다. 앱을 통해 설치된 수집기는 앱에서 제공하는 수집 모델을 기반으로 동작하므로, 해당 앱의 설치 설명서를 참고하세요.
CEP 이벤트

CEP(Complex Event Processing) 컨텍스트에서 발생하는 이벤트를 수집합니다.

동작 방식:

  1. 이벤트 구독: 지정된 이벤트 주제에 대해 CEP 엔진의 이벤트 구독자로 등록합니다.
  2. 수동적 수집: 능동적으로 데이터를 조회하지 않고, CEP 컨텍스트에서 이벤트가 발생할 때까지 대기합니다.
  3. 이벤트 수신: CEP 엔진에서 컨텍스트 이벤트(만료, 제거, 타임아웃 등)가 발생하면 자동으로 수신합니다.
  4. 로그 변환: 수신된 이벤트를 로그 형태로 변환하여 다음 정보를 포함합니다:
    • topic: 이벤트 주제
    • key: 이벤트 키
    • host: 호스트 정보
    • counter: 이벤트 카운터
    • vars: 컨텍스트 변수들
    • created: 생성 시간
    • cause: 이벤트 발생 원인 (expire, remove, timeout 등)
    • rows: 관련 데이터 행들

적용 시나리오:

  • 실시간 이벤트 상관 분석: 여러 데이터 스트림에서 발생하는 이벤트들 간의 패턴과 상관관계를 분석하여 복합적인 보안 인사이트를 도출합니다.
  • 이상 패턴 탐지: 정상적인 이벤트 흐름에서 벗어나는 비정상적인 패턴이나 예외 상황을 실시간으로 감지하고 기록합니다.
  • 사용자 세션 관리: 웹 애플리케이션이나 시스템에서 사용자 세션의 생성, 활동, 만료 등의 생명주기 이벤트를 모니터링합니다.
  • 규칙 기반 알람 시스템: CEP 규칙 엔진에서 특정 조건을 만족하는 이벤트가 발생했을 때의 알람 생성 및 처리 과정을 추적합니다.

수집 설정 속성:

수집 설정 - CEP 이벤트

  • 이벤트 주제 목록: 쉼표(,)로 구분된 CEP 이벤트 주제(topic) 목록을 입력하세요. 주제는 인메모리 데이터베이스의 테이블 이름처럼 동작합니다.

수집되는 정보:

필드유형설명예시
topic문자열이벤트 주제user_session
key문자열이벤트 키user_12345
host문자열호스트 정보web-server-01
counter32비트 정수이벤트 카운터5
vars객체컨텍스트 변수들{"login_time": 1640995200}
created타임스탬프이벤트 생성 시간2024-12-01T10:30:15Z
cause문자열이벤트 발생 원인expire, remove, timeout
rows배열관련 데이터 행들 (배열)[{...}, {...}]
DNS 스니퍼

PCAP 장치를 통해 미러링된 네트워크 트래픽에서 DNS 패킷을 실시간으로 수집합니다.

동작 방식:

  1. PCAP 장치 열기: 지정된 PCAP 장치를 Promiscuous 모드로 열어 모든 네트워크 패킷을 수신합니다.
  2. 패킷 필터링: 패킷 필터 규칙을 적용하여 DNS 관련 패킷만 선별합니다 (미지정 시 모든 패킷 수신).
  3. DNS 디코딩: 수신된 패킷에서 DNS 메시지를 추출하고 파싱합니다.
  4. 실시간 수집: DNS 쿼리 및 응답을 실시간으로 감지하여 다음 정보를 포함한 로그로 변환합니다:
    • 트랜잭션 ID, 소스/목적지 IP 및 포트
    • DNS 쿼리 도메인, 응답 상태, 레코드 타입
    • DNS 플래그, 쿼리/응답/권한/추가 레코드
  5. 수동적 수집: 네트워크 트래픽 발생 시에만 수집하는 이벤트 기반 방식입니다.

적용 시나리오:

  • 네트워크 보안 모니터링: 의심스러운 도메인 쿼리, DGA(Domain Generation Algorithm) 패턴, DNS 터널링 등 비정상적인 DNS 활동을 실시간으로 탐지합니다.
  • DNS 서버 성능 분석: DNS 응답 시간, 쿼리 실패율, 서버별 부하 분산 상태를 모니터링하여 DNS 인프라 성능을 최적화합니다.
  • 네트워크 트래픽 분석: 조직 내 도메인별 접속 패턴, 사용자별 인터넷 사용 현황, 대역폭 사용량 분석에 활용합니다.
  • 악성코드/봇넷 탐지: C&C 서버 통신, 악성 도메인 접속, 비정상적인 DNS 쿼리 패턴을 통해 감염된 시스템을 식별합니다.
  • 컴플라이언스 및 감사: 법적 요구사항이나 내부 정책에 따른 DNS 접속 로그를 기록하고 보관합니다.
  • 네트워크 문제 진단: DNS 질의 실패, 응답 지연, 네트워크 연결 문제의 근본 원인을 분석합니다.

수집 설정 속성:

수집 설정 - DNS 스니퍼

  • PCAP 장치 이름: 패킷 데이터를 수집할 PCAP 장치를 지정하세요(예: eth0, ens33). 사용 가능한 장치 목록은 system-pcap-devices 명령으로 name 필드에서 확인할 수 있습니다.
  • 패킷 필터: DNS 패킷만 수집하도록 필터 규칙을 입력하세요(예: udp port 53). 필터는 버클리 패킷 필터 문법(tcpdump와 동일)을 따릅니다. 미지정 시 모든 패킷을 수신합니다.
  • 타임아웃: PCAP 장치에서 패킷 수신 대기 시간을 밀리초 단위로 설정하세요(기본값: 100). 값이 작을수록 실시간성이 향상되지만 CPU 사용률이 증가할 수 있습니다.

수집되는 정보:

필드유형설명예시
txid문자열DNS 트랜잭션 ID (16진수)a1b2
src_ipIP 주소소스 IP 주소198.51.100.10
src_port포트 번호소스 포트54321
dst_ipIP 주소목적지 IP 주소203.0.113.8
dst_port포트 번호목적지 포트53
direction문자열트랜잭션 방향c->s (클라이언트→서버), s->c (서버→클라이언트)
bytes32비트 정수DNS 응답 페이로드 크기85
type문자열DNS 레코드 타입A, AAAA, CNAME, MX
domain문자열질의 대상 도메인 주소www.example.com
status문자열쿼리 실행 결과NO_ERROR, NAME_ERROR
ipIP 주소도메인과 연결된 IP 주소192.0.2.34
flags문자열DNS 헤더 플래그qr rd ra
queries배열질의 레코드 목록 (배열)["A www.example.com"]
answers배열응답 레코드 목록 (배열)["A www.example.com 192.0.2.34"]
additionals배열추가 레코드 목록 (배열)[]
authorities배열권한 레코드 목록 (배열)[]
FTP 디렉터리 와처

FTP를 통해 네트워크 호스트에 접속하여, 지정된 디렉터리에서 여러 개의 로그 파일을 수집합니다.

동작 방식:

  1. FTP 연결: 지정된 FTP 프로파일을 사용하여 원격 호스트에 접속합니다.
  2. 파일 목록 조회: 디렉터리 경로에서 파일이름 패턴과 일치하는 모든 파일을 조회합니다.
  3. 날짜 필터링: 경로 날짜 추출 포맷모니터링 대상 일수가 설정된 경우, 지정된 기간 내의 파일만 선별합니다.
  4. 증분 수집: 각 파일의 마지막 읽은 위치를 기억하여, 새로 추가된 내용만 수집합니다.
  5. 다중 파일 처리: 여러 파일을 동시에 모니터링하며, 각 파일의 수집 상태를 독립적으로 관리합니다.

적용 시나리오:

파일 로테이션이 없고 여러 개의 파일을 수집해야 하는 환경에서 사용하세요(예: secure, secure-20250706, secure-20250713과 같이 한 번 기록되면 내용이 바뀌지 않는 로그).

수집 설정 속성:

수집 설정 - FTP 디렉터리 와처

  • FTP 프로파일: FTP 접속에 사용할 접속 프로파일의 이름을 입력하세요.

  • 디렉터리 경로: 로그 파일을 수집할 대상 디렉터리의 절대 경로를 지정하세요(예: /var/log).

  • 파일이름 패턴: 수집 대상 로그 파일 이름을 나타내는 정규표현식을 입력하세요(예: secure(-\d{8})?$). 날짜 기반 필터링이 필요한 경우 정규표현식의 그룹 ()으로 날짜 부분을 캡처할 수 있습니다(예: secure-(\d{4})(\d{2})(\d{2})$).

  • 날짜 정규표현식: 로그에서 날짜 및 시간 문자열을 추출할 정규표현식을 입력하세요.

    • RHEL 계열 배포본의 secure 로그에서 날짜를 추출하는 정규표현식 예시

      \b([A-Z][a-z]{2})\s+(\d{1,2})\s+(\d{2}:\d{2}:\d{2})\b
      
    • 괄호 (())로 감싸진 각 그룹을 순서대로 공백 없이 이어 붙여 하나의 날짜 문자열을 생성합니다. 이 문자열이 날짜 포맷날짜 로케일로 파싱됩니다.

      예시: "Aug" + " " + "1" + " " + "14:19:23" → "Aug 1 14:19:23"
      
  • 날짜 포맷: 날짜 정규표현식으로 추출된 문자열을 파싱할 Java SimpleDateFormat 패턴을 지정하세요(예: MMM d HH:mm:ss). 날짜 로케일에 따라 월 이름(MMM) 등의 파싱이 달라집니다.

  • 날짜 로케일: 날짜 문자열에 적용할 언어를 en, ja, zh, ko 중에서 선택하세요(기본값: en).

  • 시간대: 시간대를 선택하세요. API를 사용해 수집기를 구성하는 경우 KST 또는 Asia/Seoul와 같은 형식으로 시간대를 지정할 수 있습니다.

  • 로그 시작 구분 정규표현식: 여러 행으로 구성된 로그의 시작을 식별하는 정규표현식을 입력하세요. 미지정 시 개행 문자가 로그 구분자로 사용됩니다.

  • 로그 끝 구분 정규표현식: 여러 행으로 구성된 로그의 끝을 식별하는 정규표현식을 입력하세요. 미지정 시 개행 문자가 로그 구분자로 사용됩니다.

  • 문자 집합: 텍스트 파일의 문자 인코딩을 지정하세요(기본값: utf-8).

    • 문자 집합은 IANA Charset Sets Registry에 등록된 Preferred MIME Name 또는 Aliases를 사용합니다.
    • 입력란은 대소문자를 구분하지 않습니다.
  • 속도 제한 프로파일: FTP 전송 속도 제한에 사용할 프로파일 이름을 입력하세요. 속도 제한 프로파일은 로그프레소 셸에서 logpresso.createFTPRateLimit 명령으로 생성할 수 있습니다.

  • 파일이름 태그: 수집한 원본 파일 이름(예: access.log)을 기록할 필드 이름을 입력하세요. 미지정 시 원본 파일 이름을 기록하지 않습니다.

  • 경로 태그: 원본 파일의 전체 경로(예: /var/log/apache/access.log)를 기록할 필드 이름을 입력하세요. 미지정 시 원본 파일 경로를 기록하지 않습니다.

  • 경로 날짜 추출 포맷: 파일이름 패턴에서 추출된 날짜 문자열을 파싱할 Java SimpleDateFormat 패턴을 지정하세요. 파일이름 패턴에서 괄호 ()로 감싼 부분들이 날짜를 나타내는 경우, 이 부분들을 순서대로 연결하여 해당 포맷으로 변환합니다(예: 파일이름 패턴 log-(\d{4})(\d{2})(\d{2}).txt와 경로 날짜 추출포맷 yyyyMMdd를 설정하면, log-20241215.txt 파일에서 20241215를 추출).

  • 모니터링 대상 일수: 경로 날짜 추출 포맷을 통해 파일명에서 추출한 날짜를 기준으로 지정한 일수 이내의 파일만 수집하도록 설정할 수 있습니다(기본값: 제한 없음).

  • 파일 끝 수집 활성화: 여러 행으로 구성된 로그에서 로그 끝 정규표현식과 매칭되지 않더라도 파일의 물리적 끝(EOF)에 도달했을 때 미완성 로그를 수집할지 설정합니다(기본값: false).

    • true: EOF에 도달하면 로그 끝 패턴이 없어도 미완성 로그를 수집합니다.
    • false: 로그 끝 패턴과 매칭되는 완전한 로그만 수집하고, 미완성 로그는 버립니다.
  • 개행 문자: 개행 문자로 사용할 문자를 유니코드 이스케이프 형식으로 입력하세요(기본값: \u000A). SYMBL에서 유니코드 값을 참고하세요.

수집되는 정보:

필드유형설명예시
_time타임스탬프로그 이벤트 발생 시점의 타임스탬프2024-12-01 10:30:15
line문자열원본 로그 메시지Aug 1 14:19:23 hostname sshd[12345]: Accepted publickey for user
파일이름 태그문자열원본 파일명 (설정 시)secure, secure-20241201
경로 태그문자열원본 파일의 전체 경로 (설정 시)/var/log/secure, /var/log/secure-20241201
  • 파일이름 태그, 경로 태그 두 필드는 사용자가 설정한 실제 태그 이름으로 대체됩니다. 예를 들어 파일이름 태그filename으로 설정하면 filename 필드가 생성됩니다.
FTP 로테이션 로그 파일

FTP를 통해 네트워크 호스트에 접속하여, 주기적으로 이름이 바뀌는 로테이션 로그 파일을 수집합니다.

동작 방식:

  1. FTP 연결: 지정된 FTP 프로파일을 사용하여 원격 호스트에 접속합니다.
  2. 활성 파일 모니터링: 파일 경로로 지정된 현재 활성 로그 파일(예: access.log)을 지속적으로 모니터링합니다.
  3. 증분 수집: 파일의 마지막 읽은 위치를 기억하여, 새로 추가된 내용만 수집합니다.
  4. 로테이션 감지: 파일이 로테이션되어 크기가 줄어들거나 새 파일로 교체되면 자동으로 감지합니다.
  5. 연속 수집: 로테이션 후에도 새로운 활성 로그 파일에서 계속해서 로그를 수집합니다.

적용 시나리오:

주기적으로 로테이션되는 단일 로그 파일을 지속적으로 모니터링해야 하는 환경에서 사용하세요(예: access.logaccess.log.1access.log.2와 같이 현재 활성 파일의 이름은 항상 동일하지만 내용이 계속 변경되는 로그).

Note
FTP 로테이션 로그 파일 수집 설정은 GZIP으로 압축된 파일(예: access.log.6.gz)을 수집하지 않습니다.

수집 설정 속성:

수집 설정 - FTP 로테이션 로그 파일

  • FTP 프로파일: FTP 접속에 사용할 접속 프로파일의 이름을 입력하세요.

  • 파일 경로: 현재 활성 로그 파일의 절대 경로를 지정하세요(예: /var/log/nginx/access.log). 로테이션된 파일(access.log.1, access.log.2)이 아닌 현재 쓰여지고 있는 파일 경로를 입력합니다.

  • 문자 집합: 텍스트 파일의 문자 인코딩을 지정하세요(기본값: utf-8).

    • 문자 집합은 IANA Charset Sets Registry에 등록된 Preferred MIME Name 또는 Aliases를 사용합니다.
    • 입력란은 대소문자를 구분하지 않습니다.
  • 날짜 정규표현식: 로그에서 날짜 및 시간 문자열을 추출할 정규표현식을 입력하세요.

    • access.log에서 날짜를 추출하는 정규표현식 예시

      \[(\d{2})/([A-Za-z]{3})/(\d{4}):(\d{2}:\d{2}:\d{2}) (\+\d{4})\]
      
    • 괄호 (())로 감싸진 각 그룹을 순서대로 공백 없이 이어 붙여 하나의 날짜 문자열을 생성합니다. 이 문자열이 날짜 포맷날짜 로케일로 파싱됩니다.

      예시: "06" + "Apr" + "2023" + "11:54:03" + "+0900" → "06Apr202311:54:03+0900"
      
  • 날짜 포맷: 날짜 정규표현식으로 추출된 문자열을 파싱할 Java SimpleDateFormat 패턴을 지정하세요(예: ddMMMyyyyHHmmssZ). 날짜 로케일에 따라 월 이름(MMM) 등의 파싱이 달라집니다.

  • 날짜 로케일: 날짜 문자열에 적용할 언어를 en, ja, zh, ko 중에서 선택하세요(기본값: en).

  • 시간대: 시간대를 선택하세요. API를 사용해 수집기를 구성하는 경우 KST 또는 Asia/Seoul와 같은 형식으로 시간대를 지정할 수 있습니다.

  • 로그 시작 구분 정규표현식: 여러 행으로 구성된 로그의 시작을 식별하는 정규표현식을 입력하세요. 미지정 시 개행 문자가 로그 구분자로 사용됩니다.

  • 로그 끝 구분 정규표현식: 여러 행으로 구성된 로그의 끝을 식별하는 정규표현식을 입력하세요. 미지정 시 개행 문자가 로그 구분자로 사용됩니다.

  • 속도 제한 프로파일: FTP 전송 속도 제한에 사용할 프로파일 이름을 입력하세요. 속도 제한 프로파일은 로그프레소 셸에서 logpresso.createFTPRateLimit 명령으로 생성할 수 있습니다.

  • 파일 끝 수집 활성화: 여러 행으로 구성된 로그에서 로그 끝 정규표현식과 매칭되지 않더라도 파일의 물리적 끝(EOF)에 도달했을 때 미완성 로그를 수집할지 설정합니다(기본값: false).

    • true: EOF에 도달하면 로그 끝 패턴이 없어도 미완성 로그를 수집합니다.
    • false: 로그 끝 패턴과 매칭되는 완전한 로그만 수집하고, 미완성 로그는 버립니다.
  • 개행 문자: 개행 문자로 사용할 문자를 유니코드 이스케이프 형식으로 입력하세요(기본값: \u000A). SYMBL에서 유니코드 값을 참고하세요.

수집되는 정보:

필드유형설명예시
line문자열원본 로그 한 줄의 전체 내용198.51.100.10 - - [06/Apr/2023:11:54:03 +0900]
_time타임스탬프로그에서 추출된 시간 정보2023-04-06 11:54:03
FTP 일자별 디렉터리

FTP를 통해 네트워크 호스트에 접속한 뒤, 날짜별로 생성된 디렉터리를 순회하며 파일 이름 패턴과 일치하는 로그 파일을 수집합니다.

동작 방식:

  1. 디렉터리 날짜 파싱: 지정된 디렉터리 경로에서 디렉터리 목록을 가져와, 각 디렉터리 이름에서 디렉터리 날짜 정규표현식으로 날짜 정보를 추출하고 디렉터리 날짜 포맷에 따라 파싱합니다.
  2. 시간 범위 필터링: 모니터링 기간 설정에 따라 최근 N일간의 디렉터리만 실시간 모니터링하며, 과거 로그 수집 시작/끝 일자로 지정된 기간의 과거 디렉터리도 처리합니다.
  3. 파일 패턴 매칭: 각 디렉터리 내에서 파일이름 패턴과 일치하는 파일들만 선별하여 수집합니다.
  4. 증분 수집: 이전에 수집한 위치를 기억하여, 파일의 변경된 부분만 추가로 수집합니다.

수집 대상 예시:

/var/log/nginx/       ← "디렉터리 경로" 설정값
├── 20241201/         ← 날짜별 디렉터리
│   ├── access-01.log ← 파일 이름에 시간 정보 포함
│   ├── ⁝
│   └── access-23.log
├── 20241202/         ← 날짜별 디렉터리
│   ├── access-01.log ← 파일 이름에 시간 정보 포함
│   ├── ⁝
│   └── access-23.log
└── 20241203/         ← 날짜별 디렉터리
    ├── access-01.log ← 파일 이름에 시간 정보 포함
    ├── ⁝
    └── access-23.log

수집 설정 속성:

수집 설정 - FTP 일자별 디렉터리

  • FTP 프로파일: FTP 접속에 사용할 접속 프로파일의 이름을 입력하세요.

  • 모니터링 기간: 실시간으로 파일 변화를 감지할 기간을 일 단위로 설정하세요(기본값: 0).

    • 1 이상: 최근 N일간의 디렉터리를 지속적으로 모니터링합니다.
    • 0: 실시간 수집이 비활성화되며, 과거 로그 수집만 실행됩니다.
  • 디렉터리 경로: 날짜별 디렉터리들이 생성되는 디렉터리의 절대 경로를 지정하세요(예: /var/log/nginx). 이 경로 아래에 20241201, 20241202와 같이 날짜별로 명명된 하위 디렉터리들이 있어야 합니다.

  • 파일이름 패턴: 수집 대상 로그 파일 이름을 나타내는 정규표현식을 입력하세요(예: access-(\d{2})\.log).

  • 디렉터리 날짜 정규표현식: 디렉터리 이름에서 날짜 문자열을 추출할 정규표현식을 입력하세요(예: (\d{8})).

  • 디렉터리 날짜 포맷: 디렉터리 날짜 정규표현식으로 추출한 날짜 문자열을 파싱할 Java SimpleDateFormat 패턴을 입력하세요(기본값: yyyyMMdd).

  • 디렉터리 날짜 사용 유무: 파일 이름에서 날짜를 추출할 때 디렉터리 이름의 날짜 정보를 접두사로 포함할지 설정하세요(기본값: false).

    예시: 디렉터리 20241201/, 파일 access-10.log인 경우

    • true: "20241201" + "10""2024120110" (디렉터리 날짜 + 파일 시간)
    • false: "10" (파일 이름에서만 시간 추출)

    참고: 이 설정은 파일 이름에서 날짜를 추출하는 경우에만 적용되며, 로그 내용에서 추출하는 날짜 정규표현식과는 별개로 동작합니다.

  • 과거 로그 수집 시작 일자: 수집기 첫 실행 시에만 과거 데이터를 일괄 수집할 시작일을 yyyyMMdd 형식으로 입력하세요.

  • 과거 로그 수집 끝 일자: 과거 데이터를 일괄 수집할 종료일을 yyyyMMdd 형식으로 입력하세요.

    동작 방식:

    • 과거 로그 수집: 수집기 첫 실행 시 지정된 날짜 범위(시작 일자 ~ 끝 일자)의 과거 디렉터리를 일회성으로 처리합니다.
    • 실시간 수집: 이후 모니터링 기간 설정에 따라 최근 N일간의 디렉터리를 지속적으로 모니터링합니다.
      • 모니터링 기간 = 0: 실시간 수집이 비활성화됩니다. 과거 로그 수집만 실행됩니다.

    예시 1: 시작일: 20241201, 끝일: 20241210, 모니터링 기간: 3일로 설정하고 12월 15일에 수집기를 처음 시작하는 경우

    • 과거 로그 수집: 20241201/ ~ 20241210/ (10일간 과거 데이터 일괄 처리)
    • 실시간 수집: 20241213/, 20241214/, 20241215/ (최근 3일간 지속 모니터링)

    예시 2: 시작일: 20241201, 끝일: 20241210, 모니터링 기간: 0으로 설정하는 경우

    • 과거 로그 수집: 20241201/ ~ 20241210/ (10일간 과거 데이터 일괄 처리)
    • 실시간 수집: 비활성화됨 (과거 데이터만 수집하고 종료)
    Note
    두 일자를 모두 입력해야 과거 로그 수집이 활성화됩니다. 수집기 재시작 시에는 과거 로그 수집이 다시 실행되지 않습니다.
  • 날짜 정규표현식: 로그에서 날짜 및 시간 문자열을 추출할 정규표현식을 입력하세요.

    • 로그에서 날짜를 추출하는 정규표현식 예시

      \[(\d{2}/\S{3,10}/\d{4}:\d{2}:\d{2}:\d{2} \+\d{4})\]
      
    • 괄호 (())로 감싼 문자열 그룹을 이어 붙여 날짜 문자열을 생성하며, 이 문자열은 날짜 포맷날짜 로케일에 따라 파싱됩니다.

  • 날짜 포맷: 날짜 정규표현식으로 추출된 문자열을 파싱할 Java SimpleDateFormat 패턴을 지정하세요(예: yyyy-MM-dd HH:mm:ss). 날짜 로케일에 따라 파싱하는 형식이 다를 수 있습니다.

  • 날짜 로케일: 날짜 문자열에 적용할 언어를 en, ja, zh, ko 중에서 선택하세요(기본값: en).

  • 시간대: 시간대를 선택하세요. API를 사용해 수집기를 구성하는 경우 KST 또는 Asia/Seoul와 같은 형식으로 시간대를 지정할 수 있습니다.

  • 로그 시작 정규표현식: 여러 행으로 구성된 로그의 시작을 식별하는 정규표현식을 입력하세요. 미지정 시 개행 문자가 로그 구분자로 사용됩니다.

  • 로그 끝 정규표현식: 여러 행으로 구성된 로그의 끝을 식별하는 정규표현식을 입력하세요. 미지정 시 개행 문자가 로그 구분자로 사용됩니다.

  • 문자 집합: 텍스트 파일의 문자 인코딩을 지정하세요(기본값: utf-8).

    • 문자 집합은 IANA Charset Sets Registry에 등록된 Preferred MIME Name 또는 Aliases를 사용합니다.
    • 입력란은 대소문자를 구분하지 않습니다.
  • 파일이름 태그: 수집한 원본 파일 이름(예: access-01.log)을 기록할 필드 이름을 입력하세요. 미지정 시 원본 파일 이름을 기록하지 않습니다.

  • 속도 제한 프로파일: FTP 전송 속도 제한에 사용할 프로파일 이름을 입력하세요. 속도 제한 프로파일은 로그프레소 셸에서 logpresso.createFTPRateLimit 명령으로 생성할 수 있습니다.

  • 파일 끝 수집 활성화: 여러 행으로 구성된 로그에서 로그 끝 정규표현식과 매칭되지 않더라도 파일의 물리적 끝(EOF)에 도달했을 때 미완성 로그를 수집할지 설정합니다(기본값: false).

    • true: EOF에 도달하면 로그 끝 패턴이 없어도 미완성 로그를 수집합니다.
    • false: 로그 끝 패턴과 매칭되는 완전한 로그만 수집하고, 미완성 로그는 버립니다.
  • 개행 문자: 개행 문자로 사용할 문자를 유니코드 이스케이프 형식으로 입력하세요(기본값: \u000A). SYMBL에서 유니코드 값을 참고하세요.

수집되는 정보:

필드유형설명예시
line문자열원본 로그 한 줄의 전체 내용nginx: access log line
_time타임스탬프로그에서 추출된 시간 정보2024-12-01 10:30:15
파일이름 태그문자열수집한 파일의 이름 (설정 시)access-01.log
GZIP 디렉터리 와처

수집 위치로 지정된 노드/센트리의 로컬에 마운트된 파일시스템에서 GZIP 형식으로 압축된 텍스트 로그 파일을 압축 해제하여 수집합니다.

동작 방식:

  1. 파일 탐색: 지정된 디렉터리 경로에서 파일이름 패턴과 일치하는 GZIP 파일들을 탐색합니다.
  2. GZIP 압축 해제: 각 GZIP 파일을 실시간으로 압축 해제하여 내용을 읽습니다.
  3. 완전 수집: 각 GZIP 파일을 한 번에 완전히 수집합니다. 같은 파일은 중복 처리하지 않지만, 같은 이름이어도 새로 생성된 파일은 다른 파일로 인식하여 수집합니다 (로그 로테이션 대응).
  4. 파일 삭제 옵션: 수집 완료 후 원본 GZIP 파일을 삭제할 수 있습니다.

적용 시나리오:

로컬 파일시스템의 압축된 로그 파일만 처리할 때 사용하세요(예: secure-20241210.gz, secure-20241211.gz와 같이 로테이션되어 압축된 파일들을 수집한 후 저장 공간 절약을 위해 삭제하는 경우). 다만, 압축되지 않은 secure 같은 활성 로그 파일은 수집하지 않습니다.

수집 설정 속성:

수집 설정 - GZIP 디렉터리 와처

  • 디렉터리 경로: GZIP 파일을 수집할 대상 디렉터리의 절대 경로를 지정하세요(예: /var/log).

  • 파일이름 패턴: 수집 대상 로그 파일 이름을 나타내는 정규표현식을 입력하세요(예: secure-(\d{4})(\d{2})(\d{2})\.gz$).

  • 날짜 정규표현식: 로그에서 날짜 및 시간 문자열을 추출할 정규표현식을 입력하세요.

    • secure 로그에서 날짜를 추출하는 정규표현식 예시

      ^(\S{3} \d{2} \d{2}:\d{2}:\d{2})
      
    • 괄호 (())로 감싸진 각 그룹을 순서대로 공백 없이 이어 붙여 하나의 날짜 문자열을 생성합니다. 이 문자열이 날짜 포맷날짜 로케일로 파싱됩니다.

  • 날짜 포맷: 날짜 정규표현식으로 추출된 문자열을 파싱할 Java SimpleDateFormat 패턴을 지정하세요(예: MMM dd HH:mm:ss). 날짜 로케일에 따라 파싱하는 형식이 다를 수 있습니다.

  • 날짜 로케일: 날짜 문자열에 적용할 언어를 en, ja, zh, ko 중에서 선택하세요(기본값: en).

  • 시간대: 시간대를 선택하세요. API를 사용해 수집기를 구성하는 경우 KST 또는 Asia/Seoul와 같은 형식으로 시간대를 지정할 수 있습니다.

  • 로그 시작 정규표현식: 여러 행으로 구성된 로그의 시작을 식별하는 정규표현식을 입력하세요. 미지정 시 개행 문자가 로그 구분자로 사용됩니다.

  • 로그 끝 정규표현식: 여러 행으로 구성된 로그의 끝을 식별하는 정규표현식을 입력하세요. 미지정 시 개행 문자가 로그 구분자로 사용됩니다.

  • 문자 집합: GZIP 압축을 해제한 후 텍스트 파일의 문자 인코딩을 지정하세요(기본값: utf-8).

    • 문자 집합은 IANA Charset Sets Registry에 등록된 Preferred MIME Name 또는 Aliases를 사용합니다.
    • 입력란은 대소문자를 구분하지 않습니다.
  • GZIP 파일 삭제: 수집 완료 후 GZIP 파일을 삭제할지 여부를 설정하세요(기본값: false). true로 설정하면 수집 후 원본 GZIP 파일이 디렉터리에서 삭제됩니다.

    Note
    GZIP 파일 삭제 기능을 사용하려면 로그프레소 노드/센트리를 실행하는 프로세스 사용자 계정이 해당 .gz 파일에 대한 삭제 권한을 가지고 있어야 합니다.
  • 파일이름 태그: 수집한 원본 파일 이름(예: secure-20241210.gz)을 기록할 필드 이름을 입력하세요. 미지정 시 원본 파일 이름을 기록하지 않습니다.

  • 경로 태그: 원본 파일의 전체 경로(예: /var/log/secure-20241210.gz)를 기록할 필드 이름을 입력하세요. 미지정 시 원본 파일 경로를 기록하지 않습니다.

  • 경로 날짜 추출 포맷: 파일이름 패턴에서 추출된 날짜 문자열을 파싱할 Java SimpleDateFormat 패턴을 지정하세요. 파일이름 패턴에서 괄호 ()로 감싼 부분들이 날짜를 나타내는 경우, 이 부분들을 순서대로 연결하여 해당 포맷으로 변환합니다(예: 파일이름 패턴 secure-(\d{4})(\d{2})(\d{2}).gz$와 경로 날짜 추출포맷 yyyyMMdd를 설정하면, secure-20241215.gz 파일에서 20241215를 추출).

  • 모니터링 대상 일수: 경로 날짜 추출 포맷이 설정된 경우에만 동작합니다. 파일이름 패턴에서 추출한 날짜를 기준으로 현재 시점에서 지정한 일수 이내의 파일만 수집하도록 필터링합니다(기본값: 0 = 제한 없음).

    동작 예시: 현재 날짜가 2024-12-15이고 모니터링 대상 일수7로 설정된 경우

    파일이름 패턴: secure-(\d{4})(\d{2})(\d{2})\.gz$
    경로 날짜 추출 포맷: yyyyMMdd

    • 수집됨: secure-20241210.gz → 파일명에서 추출된 날짜: 2024-12-10 (5일 전)
    • 수집됨: secure-20241215.gz → 파일명에서 추출된 날짜: 2024-12-15 (오늘)
    • 제외됨: secure-20241201.gz → 파일명에서 추출된 날짜: 2024-12-01 (14일 전)
    Note
    이 설정은 "경로 날짜 추출 포맷"이 함께 설정되어야만 작동합니다. 경로에서 날짜를 추출할 수 없으면 모든 파일이 수집됩니다.

    ⚠️주의:

    시스템의 logrotate 설정과 반드시 연동하여 설정하세요. 로그 누락을 방지하려면 다음 logrotate 설정들을 종합적으로 고려해야 합니다:

    보관 기간 계산:

    • daily + rotate 7 = 7일 보관 → 모니터링 대상 일수 6일 이하
    • weekly + rotate 4 = 28일 보관 → 모니터링 대상 일수 25일 이하
    • monthly + rotate 12 = 365일 보관 → 모니터링 대상 일수 360일 이하

    압축 설정 고려사항:

    • delaycompress 옵션이 있으면 최신 로테이션 파일(예: secure.20241215)은 압축되지 않아 GZIP 디렉터리 와처로 수집할 수 없습니다.
    • compress 옵션 없이 로테이션만 하는 경우도 .gz 파일이 생성되지 않아 수집 불가합니다.

    권장사항: 모니터링 대상 일수를 실제 보관 기간의 80% 이하로 설정하여 여유를 확보하세요.

  • 파일 끝 수집 활성화: 여러 행으로 구성된 로그에서 로그 끝 정규표현식과 매칭되지 않더라도 파일의 물리적 끝(EOF)에 도달했을 때 미완성 로그를 수집할지 설정합니다(기본값: false).

    • true: EOF에 도달하면 로그 끝 정규표현식이 없어도 미완성 로그를 수집합니다.
    • false: 로그 끝 패턴과 매칭되는 완전한 로그만 수집하고, 미완성 로그는 버립니다.
  • 개행 문자: 개행 문자로 사용할 문자를 유니코드 이스케이프 형식으로 입력하세요(기본값: \u000A). SYMBL에서 유니코드 값을 참고하세요.

수집되는 정보:

필드유형설명예시
line문자열압축 해제된 원본 로그 한 줄의 전체 내용Dec 10 15:30:42 server01 sshd[1234]
_time타임스탬프로그에서 추출된 시간 정보2024-12-10 15:30:42
파일이름 태그문자열수집한 파일의 이름secure-20241210.gz (태그 설정 시에만)
경로 태그문자열수집한 파일의 전체 경로 (설정 시)/var/log/secure-20241210.gz
HTTP POST

네트워크 호스트가 로그프레소 소나에게 HTTP POST 메소드로 실시간 전송하는 로그를 수집합니다.

동작 방식:

  1. HTTP 엔드포인트 생성: 지정된 콜백 이름으로 HTTP 수신 엔드포인트를 생성합니다.
  2. 수동적 수집: 능동적으로 데이터를 조회하지 않고, 외부 시스템에서 HTTP POST 요청이 올 때까지 대기합니다.
  3. 실시간 수신: HTTP POST 요청이 수신되면 즉시 요청 본문(body)을 로그로 변환하여 수집합니다.
  4. 응답 처리: 수집 완료 후 HTTP 응답을 전송하여 클라이언트에게 수신 성공을 알립니다.

적용 시나리오:

외부 애플리케이션이나 시스템에서 실시간으로 이벤트나 로그를 푸시(push)하는 환경에서 사용하세요(예: 웹훅 기반 이벤트, 마이크로서비스 로그, IoT 디바이스의 실시간 데이터 수집).

수집 설정 속성:

수집 설정 - HTTP POST

  • 콜백 이름: HTTP POST 요청을 수신할 엔드포인트 이름을 입력하세요. URL 형식은 https://노드주소:포트번호/log/콜백이름입니다. 입력값에는 콜백이름만 기재하시면 됩니다. (예: https://sonar.company.com/log/webhook).

HTTP POST 수신은 모든 노드 타입에서 지원됩니다(분석 노드, 수집 노드, 전달 노드). 클러스터 노드 구성에 따라 적절한 노드로 로그를 푸시하세요.

Note
HTTP POST 수집기는 수집 위치 항목에서 센트리를 지정할 수 없습니다.

테스트 방법:

HTTP POST 수집기를 설정한 후, 다음과 같이 curl 명령어를 사용하여 정상적으로 동작하는지 테스트할 수 있습니다.

curl -k -X POST \
  -d '{
    "at": "2025-08-20T10:35:00Z",
    "type": "login",
    "user": "alice",
    "src_ip": "192.168.0.5",
    "result": "success",
  }' \
  https://192.0.2.35/log/auth_event
  • https://192.0.2.35: 소나 노드의 IP 주소
  • /log/auth_event: 콜백 이름 (위에서 설정한 콜백 이름과 일치해야 함)

수집되는 정보:

필드유형설명예시
callback문자열콜백 이름auth_event
client_ipIP 주소HTTP 요청을 보낸 IP 주소192.0.2.80
line문자열HTTP POST 본문{"at": "2025-08-20T10:35:00Z", "type": "login", "user": "alice", "src_ip": "192.168.0.5", "result": "success"}
HTTP 모니터

웹 서비스의 가용성과 성능을 모니터링하기 위해 주기적으로 HTTP 요청을 전송하여 응답 상태와 통계 정보를 수집합니다.

동작 방식:

  1. 주기적 HTTP 요청: 설정된 간격으로 대상 URL에 HTTP GET 요청을 전송합니다.
  2. 응답 분석: HTTP 응답 코드, 응답 시간, 받은 데이터 크기를 측정합니다.
  3. SSL/HTTPS 지원: HTTPS URL에 대해서도 모니터링을 지원하며, 모든 SSL 인증서를 신뢰합니다.
  4. 오류 수집: 연결 실패, 타임아웃 등의 오류도 로그로 수집하여 문제 상황을 추적할 수 있습니다.

적용 시나리오:

웹 서비스의 실시간 상태 모니터링과 성능 추적에 사용됩니다.

수집 설정 속성:

수집 설정 - HTTP 모니터

  • URL: 모니터링할 웹 서비스의 URL을 입력하세요(예: https://www.example.com/health).
  • 접속 타임아웃: 서버에 접속할 때까지 대기할 최대 시간을 초 단위로 지정하세요(기본값: 30, 범위: 1-86400초).
  • 읽기 타임아웃: 서버 연결 이후, 응답 수신을 기다리는 최대 시간을 초 단위로 지정하세요(기본값: 30, 범위: 1-86400초).

수집되는 정보

필드유형설명예시
hostname문자열모니터가 실행되는 호스트명sonar-01
dst_ipIP 주소대상 서버의 실제 IP 주소203.0.113.10
urlURL모니터링하는 전체 URLhttps://api.service.com/health
status32비트 정수HTTP 응답 코드200, 404, 500
elapsed32비트 정수응답 시간 (밀리초)250
rcvd_bytes32비트 정수받은 바이트 수1024
error문자열오류 발생 시 오류 메시지Connection timeout
HTTP 스니퍼

네트워크를 미러링하여 HTTP 통신 패킷을 실시간으로 캡처하고 분석하여 HTTP 요청/응답 정보를 수집합니다.

동작 방식:

  1. PCAP 장치 연결: 지정된 PCAP 장치를 Promiscuous 모드로 열어 네트워크 패킷을 수신합니다.
  2. 패킷 필터링: BPF(Berkeley Packet Filter) 규칙에 따라 HTTP 관련 패킷만 선별적으로 캡처합니다.
  3. HTTP 프로토콜 분석: 캡처된 패킷을 분석하여 HTTP 요청과 응답을 재구성합니다.
  4. 수동적 수집: 네트워크에 흐르는 패킷을 수동적으로 관찰하며 실제 HTTP 통신에 영향을 주지 않습니다.

적용 시나리오:

네트워크 트래픽 분석, 웹 서비스 모니터링, 보안 감사를 위한 실시간 HTTP 통신 추적에 사용됩니다.

수집 설정 속성:

수집 설정 - HTTP 스니퍼

  • PCAP 장치이름: 패킷 데이터를 수집할 PCAP 장치를 지정하세요(예: eth0, ens33). system-pcap-devices 명령의 name 필드에서 확인할 수 있습니다.
  • 패킷 필터: HTTP 패킷 수집에 적용할 BPF(Berkeley Packet Filter) 규칙을 입력하세요(예: tcp port 80 or tcp port 443). 필터는 PCAP 필터 문법를 따릅니다.
  • 타임아웃: PCAP 패킷 읽기의 타임아웃 시간을 밀리초 단위로 지정하세요(기본값: 100).

수집되는 정보:

필드유형설명예시
method문자열HTTP 메서드GET, POST, PUT
host문자열HTTP Host 헤더 값www.example.com
path문자열요청 경로/api/users/123
src_ipIP 주소클라이언트 IP 주소198.51.100.10
dst_ipIP 주소서버 IP 주소203.0.113.10
src_port포트 번호클라이언트 포트54321
dst_port포트 번호서버 포트80, 443
req_time1타임스탬프요청 시작 타임스탬프1640995200000
req_time2타임스탬프요청 완료 타임스탬프1640995200150
sent32비트 정수전송된 바이트 수1024
status32비트 정수HTTP 응답 상태 코드200, 404, 500
res_time1타임스탬프응답 시작 타임스탬프1640995200200
res_time2타임스탬프응답 완료 타임스탬프1640995200300
rcvd32비트 정수수신된 바이트 수2048
JDBC 수집기

관계형 데이터베이스의 테이블이나 뷰에서 SQL 쿼리를 통해 데이터를 점진적으로 수집합니다.

동작 방식:

  1. JDBC 연결: 지정된 JDBC 프로파일을 통해 데이터베이스에 연결합니다.
  2. 점진적 수집: 기준 열(Primary Key, 타임스탬프 등)의 마지막 수집 값을 기억하여 새로운 데이터만 수집합니다.
  3. 매크로 처리: SQL 문의 $where 매크로와 날짜 매크로($yyyy, $MM, $dd, $HH)를 실제 값으로 치환합니다.
  4. 배치 처리: 기본적으로 10,000개 단위로 데이터를 가져와 성능을 최적화합니다.
  5. 반복 실행: 설정된 수집 간격마다 자동으로 실행되어 신규 데이터를 수집합니다.

적용 시나리오:

애플리케이션 로그 테이블, 감사 로그, 트랜잭션 기록 등 지속적으로 증가하는 데이터베이스 테이블의 실시간 수집에 사용됩니다.

수집 설정 속성:

수집 설정 - JDBC

  • JDBC 프로파일: 데이터베이스 연결에 사용할 JDBC 접속 프로파일을 선택하세요.
  • SQL: 데이터를 수집할 SQL 문을 입력하세요(예: SELECT * FROM app_logs $where ORDER BY id). $where 매크로와 날짜 매크로를 사용할 수 있습니다.
  • 조건절: $where 매크로에 삽입할 조건절을 입력하세요(예: WHERE id > ?). 조건절에는 where 키워드가 포함되어야 하며, 물음표(?)를 위치 지정자로 사용합니다.
  • 첫번째 기준 열: 점진적 수집의 기준이 되는 첫 번째 컬럼 이름을 입력하세요(예: id, created_at). 시퀀스, IDENTITY, auto_increment, 타임스탬프 컬럼 등이 적합합니다.
  • 두번째 기준 열: 필요한 경우 두 번째 정렬 기준이 될 컬럼 이름을 입력하세요(선택사항).
  • 첫번째 기준 열 초기 값: 첫 쿼리 수행 시 사용할 초기 값을 입력하세요. 미입력 시 첫 쿼리는 조건절 없이 실행됩니다.
  • 첫번째 기준 열 초기 값 타입: 초기 값의 데이터 타입을 선택하세요(string, integer, long, date 중 선택).
  • 두번째 기준 열 초기 값: 두 번째 기준 열에 대한 초기 값을 입력하세요(선택사항).
  • 두번째 기준 열 초기 값 타입: 두 번째 초기 값의 데이터 타입을 선택하세요(선택사항).
  • 날짜 컬럼: 로그의 날짜 정보를 담고 있는 컬럼 이름을 입력하세요. 미입력 시 수집 시각이 자동 저장됩니다.
  • 날짜 포맷: 날짜 컬럼이 문자열 형식일 경우 적용할 Java SimpleDateFormat 패턴을 지정하세요(예: yyyy-MM-dd HH:mm:ss).
  • 데이터베이스 이름: 날짜 매크로($yyyy, $MM, $dd, $HH)가 포함된 데이터베이스 이름을 지정하세요(예: logs_$yyyy$MM). 날짜별로 분할된 데이터베이스나 테이블에 사용합니다.
  • 날짜 매크로 시작 날짜: 날짜 매크로 사용 시 수집을 시작할 기준 날짜를 yyyy-MM-dd HH:00:00 형식으로 입력하세요.
  • 수집 반복 횟수 제한: 한 수집 주기에서 실행할 수 있는 최대 SQL 쿼리 수를 제한합니다(기본값: 제한 없음).

수집되는 정보:

데이터베이스 테이블의 모든 컬럼이 필드로 수집되며, 추가로 다음 메타데이터 필드가 포함됩니다:

필드설명예시
_time로그 타임스탬프 (날짜 컬럼 또는 수집 시각)2024-01-15 14:30:25
_table수집된 테이블명app_logs
Note
기준 열 초기 값을 설정하지 않으면 수집기는 첫 쿼리에서 조건절 없이 전체 데이터를 수집합니다. 필요한 범위만 수집하려면 초기 값을 반드시 지정하세요.

SQL을 작성할 때 성능을 고려하여 다음과 같이 하는 것이 좋습니다.

  • 인덱스 활용: 기준 열에는 반드시 인덱스가 생성되어 있어야 합니다. 인덱스가 없으면 테이블 전체를 반복적으로 스캔하게 되어 심각한 성능 저하가 발생할 수 있습니다.
  • 레코드 수 제한: 초기 적재 시 너무 많은 레코드를 한 번에 가져오지 않도록 쿼리에 제한을 두세요(예: 오라클에서는 rownum 사용). JDBC 수집기는 지정된 주기별로 쿼리를 수행하지만, 한 번 수집할 때 더 이상 새로운 값이 없을 때까지 쿼리를 반복 수행하므로 가져오는 레코드 개수를 제한하는 것이 좋습니다.
  • 열 선택 최소화: SELECT 절에 검색에 필요한 열을 명시적으로 선택하세요. JDBC 수집기는 조회된 모든 열을 키/값으로 저장하므로, 불필요한 열을 제외하면 수집 성능이 향상됩니다.

날짜 매크로 사용 시 유의사항

  • 날짜에 따라 테이블이나 데이터베이스 이름이 달라지는 경우 매크로를 사용하세요.
  • 지원하는 날짜 매크로: $yyyy, $yy, $MM, $dd, $HH.
  • 날짜 매크로를 사용할 경우, 수집기는 지정한 시작 날짜부터 현재 시점까지의 테이블을 조회합니다. 이때 오늘 날짜에 해당하는 테이블은 정상적으로 조회되며, 미래 날짜의 테이블은 조회 대상에서 제외됩니다.
  • 수집 범위는 날짜 매크로 중 가장 작은 단위를 기준으로 순차적으로 확장됩니다. 예를 들어 $dd를 포함하면 수집기가 하루 단위로 데이터를 조회하고, $HH를 포함하면 한 시간 단위로 조회합니다.
    • 예시:
      • 데이터베이스 이름: db_log_$yyyy_$MM
      • SQL문의 테이블 이름: db_user_$dd
      • 시작 날짜: 2017-01-01 00:00:00
      • 수집기는 db_log_2017_01.db_user_01, db_log_2017_01.db_user_02… 순으로 테이블을 조회합니다.
NetFlow

네트워크 장비에서 전송하는 NetFlow v5/v9 네트워크 플로우 데이터를 UDP를 통해 실시간으로 수신합니다.

동작 방식:

  1. UDP 수신: 지정된 포트(기본: 2055)에서 NetFlow 패킷을 수신합니다.
  2. 버전별 파싱: NetFlow v5와 v9 패킷을 각각의 형식에 맞게 파싱합니다.
  3. 템플릿 캐싱: NetFlow v9의 경우 템플릿을 캐싱하여 데이터 레코드를 해석합니다.
  4. 필터링: IP, 소스 ID, 필드 단위로 선택적 수집이 가능합니다.
  5. 수동적 수집: 네트워크 장비에서 전송하는 패킷을 수동적으로 수신합니다.

적용 시나리오:

네트워크 트래픽 분석, 대역폭 모니터링, 네트워크 보안 감시, 플로우 기반 과금 시스템에 사용됩니다.

Note
NetFlow 수집기를 사용하기 전에 로그프레소 셸에서 "lowmon.open netflow 2055" 명령어를 실행하여 통신 포트를 먼저 개방해야 합니다.

수집 설정 속성:

수집 설정 - NetFLow

  • IP 목록: 수신할 NetFlow 데이터의 IP 주소 목록을 쉼표(,)로 구분하여 입력하세요(예: 198.51.100.1,10.0.0.1). 미입력 시 모든 IP에서 수신합니다.
  • 소스 ID 목록: 수신할 NetFlow 소스 ID 목록을 쉼표(,)로 구분하여 입력하세요(예: 1,2,5). 미입력 시 모든 소스 ID를 허용합니다.
  • 필드 이름 필터: 수신할 필드 이름 목록을 쉼표(,)로 구분하여 입력하세요(예: srcaddr,dstaddr,srcport,dstport). 지정된 필드만 수신하며, 미지정 시 모든 필드를 수신합니다.

수집되는 정보:

공통 헤더 필드 (모든 버전):

필드유형설명예시
ver32비트 정수NetFlow 버전5, 9
count32비트 정수패킷 내 레코드 수24
seq64비트 정수플로우 시퀀스 번호12345
source32비트 정수플로우 소스 ID1
uptime64비트 정수시스템 가동 시간 (ms)3600000
unixsecs64비트 정수Unix 타임스탬프1640995200

NetFlow v5 추가 필드:

필드유형설명예시
source_type32비트 정수엔진 타입0
sampling_interval32비트 정수샘플링 간격100
sampling_mode32비트 정수샘플링 모드1

NetFlow v5 플로우 레코드 필드:

필드유형설명예시
src_addrIP 주소소스 IP 주소198.51.100.10
dst_addrIP 주소목적지 IP 주소10.0.0.1
next_hopIP 주소다음 홉 IP 주소198.51.100.1
input32비트 정수입력 인터페이스 번호2
output32비트 정수출력 인터페이스 번호3
packet_count32비트 정수플로우의 패킷 수150
octet_count64비트 정수플로우의 바이트 수7500
first64비트 정수플로우 시작 시간 (uptime)3600000
last64비트 정수플로우 종료 시간 (uptime)3605000
src_port포트번호소스 포트80
dst_port포트번호목적지 포트54321
tcp_flags32비트 정수TCP 플래그24 (ACK+PSH)
protocol32비트 정수IP 프로토콜 번호6 (TCP), 17 (UDP)
tos32비트 정수Type of Service0
src_as32비트 정수소스 AS 번호65001
dst_as32비트 정수목적지 AS 번호65002
src_mask32비트 정수소스 넷마스크 길이24
dst_mask32비트 정수목적지 넷마스크 길이16

NetFlow v9 플로우 레코드 필드:

NetFlow v9는 템플릿 기반으로 동적 필드를 지원하며, IANA IPFIX 표준 필드들이 사용됩니다. 자주 사용되는 필드들은 다음과 같습니다:

필드유형설명예시
source_i_pv4_addressIP 주소소스 IPv4 주소198.51.100.10
destination_i_pv4_addressIP 주소목적지 IPv4 주소10.0.0.1
source_transport_port포트 번호소스 포트80
destination_transport_port포트 번호목적지 포트54321
protocol_identifier32비트 정수IP 프로토콜 번호6, 17
packet_delta_count32비트 정수플로우의 패킷 수150
octet_delta_count64비트 정수플로우의 바이트 수7500
flow_start_sys_up_time64비트 정수플로우 시작 시간 (uptime)3600000
flow_end_sys_up_time64비트 정수플로우 종료 시간 (uptime)3605000
Note
NetFlow v9 필드는 네트워크 장비의 템플릿 설정에 따라 달라질 수 있으며, 위 목록은 일반적으로 사용되는 필드들입니다. 실제 수신되는 필드는 장비 설정에 따라 다를 수 있습니다.
PCAP 디렉터리 와처

로컬 디렉터리에 저장된 PCAP 파일을 주기적으로 모니터링하여 네트워크 패킷 데이터를 수집합니다. 각 패킷은 L4 계층까지 디코딩되어 소스/목적지 IP, 포트, 프로토콜 등의 정보로 변환됩니다.

동작 방식:

  1. 파일 스캔: 지정된 디렉터리에서 파일명 패턴에 매칭되는 PCAP 파일들을 스캔합니다.
  2. 패킷 디코딩: 각 PCAP 파일의 패킷을 순차적으로 읽어 L4 계층 정보로 디코딩합니다.
  3. 증분 수집: 이전에 읽은 위치부터 새로운 데이터만 처리하는 증분 수집 방식을 사용합니다.
  4. 날짜 필터링: 날짜 기반 필터링을 통해 지정된 기간 내의 파일만 선별적으로 수집합니다.
  5. 배치 처리: 패킷 데이터는 배치 단위(2000개)로 처리되어 효율적인 수집이 가능합니다.

적용 시나리오:

  • 네트워크 트래픽 사후 분석을 위해 저장된 PCAP 파일들을 시계열 데이터로 변환
  • 보안 분석 도구에서 생성한 PCAP 파일들의 일괄 처리 및 분석
  • 네트워크 모니터링 장비에서 주기적으로 저장되는 PCAP 파일들의 실시간 수집

수집 설정 - PCAP 디렉터리 와처

수집 설정 속성:

  • 디렉터리 경로: 수집할 PCAP 파일이 위치한 로컬 디렉터리의 절대 경로를 입력합니다(예: /var/log/pcap/).
  • 파일이름 패턴: 수집 대상 PCAP 파일을 선택하기 위한 정규표현식을 입력합니다(예: (\d{4})(\d{2})(\d{2})\.pcap$).
  • 로깅 모드: 데이터 수집 방식을 지정합니다(기본값: L4). 현재는 L4 모드만 지원됩니다(예: L4)
  • 파일이름 태그: 수집한 파일 이름을 기록할 필드 이름을 입력합니다(예: pcap_file).
  • 경로 태그: 디렉터리 경로를 기록할 필드 이름을 입력합니다(예: pcap_path).
  • 경로 날짜 추출 포맷: 파일이름 패턴에서 추출된 날짜 문자열을 파싱할 Java SimpleDateFormat 패턴을 지정하세요. 파일이름 패턴에서 괄호 ()로 감싼 부분들이 날짜를 나타내는 경우, 이 부분들을 순서대로 연결하여 해당 포맷으로 변환합니다(예: 파일이름 패턴 (\d{4})(\d{2})(\d{2}).pcap$와 경로 날짜 추출포맷 yyyyMMdd를 설정하면, 20241215.pcap 파일에서 20241215를 추출).
  • 모니터링 대상 일수: 경로 날짜 추출 포맷을 통해 파일명에서 추출한 날짜를 기준으로 지정한 일수 이내의 파일만 수집하도록 설정합니다(기본값: 0, 범위: 0 ~ 100,000일).

수집되는 정보:

필드유형설명예시
src_mac문자열소스 MAC 주소00:11:22:33:44:55
dst_mac문자열목적지 MAC 주소AA:BB:CC:DD:EE:FF
vlan_id32비트 정수VLAN ID (있을 경우)100
protocol문자열프로토콜 타입tcp, udp, icmp
src_ipIP 주소소스 IP 주소198.51.100.10
dst_ipIP 주소목적지 IP 주소10.0.0.1
src_port포트 번호소스 포트 (TCP/UDP)80
dst_port포트 번호목적지 포트 (TCP/UDP)54321
payload바이너리패킷 원본 데이터 (바이너리)(바이너리 데이터)
PCAP 패킷

로컬 PCAP 장치에 연결하여 실시간 네트워크 패킷을 원시 데이터 형태로 수집합니다.

동작 방식:

  1. 장치 연결: 지정된 PCAP 장치에 연결하여 네트워크 인터페이스를 모니터링합니다.
  2. 패킷 캡처: promiscuous 모드에서 모든 네트워크 패킷을 수신합니다.
  3. 필터링: BPF(Berkeley Packet Filter) 규칙에 따라 필요한 패킷만 선별합니다.
  4. 원시 데이터 저장: 패킷 데이터를 디코딩하지 않고 바이너리 형태로 저장합니다.
  5. 배치 처리: 수신된 패킷을 배치 단위로 처리하여 효율적인 수집이 가능합니다.

적용 시나리오:

  • 네트워크 트래픽 원시 데이터 분석이 필요한 경우
  • 패킷 레벨의 상세한 네트워크 모니터링
  • 보안 분석을 위한 전체 패킷 데이터 보존

수집 설정 속성:

수집 설정 - PCAP 패킷

  • PCAP 장치이름: 패킷 데이터를 수집할 PCAP 장치를 지정하세요(예: eth0, ens33). system-pcap-devices 명령의 name 필드에서 사용 가능한 장치 목록을 확인할 수 있습니다.
  • 패킷 필터: 수집할 패킷을 선별하는 필터 규칙을 입력하세요(예: tcp port 80). 필터는 버클리 패킷 필터 문법(tcpdump와 동일)을 따릅니다. 미지정 시 모든 패킷을 수집합니다.
  • 난잡 모드: promiscuous 모드 사용 여부를 설정하세요(기본값: true). true로 설정하면 네트워크 인터페이스가 자신에게 직접 전송되지 않은 패킷도 수신합니다.
  • 타임아웃: 패킷 수신 대기 시간을 밀리초 단위로 지정하세요(기본값: 1000, 범위: 0-100,000,000). 값이 작을수록 실시간성이 향상되지만 CPU 사용률이 증가할 수 있습니다.

수집되는 정보:

필드유형설명예시
payload바이너리패킷의 원시 바이너리 데이터(바이너리 데이터)
RSS 수집기

RSS 피드에서 데이터를 수집합니다.

동작 방식:

  1. RSS 피드 접속: 지정된 RSS 주소에 HTTP/HTTPS로 접속하여 RSS XML 데이터를 다운로드합니다.
  2. XML 파싱: RSS 피드 형식(RSS 1.0, RSS 2.0, Atom)을 자동으로 감지하고 파싱합니다.
  3. 엔트리 추출: RSS 피드에서 각 엔트리의 제목, 내용, 링크, 작성자, 날짜 등의 정보를 추출합니다.
  4. HTML 태그 처리: 태그 제거 여부 설정에 따라 콘텐츠에서 HTML 태그를 제거하거나 유지합니다.
  5. 중복 수집 방지: 이전에 수집한 엔트리의 GUID 또는 링크를 기억하여 중복 수집을 방지합니다.

적용 시나리오:

뉴스 피드, 블로그 업데이트, 보안 경고 등의 RSS/Atom 피드를 실시간으로 모니터링하고 데이터를 수집해야 하는 환경에서 사용하세요.

수집 설정 속성:

수집 설정 - RSS 수집기

  • RSS 주소: 데이터를 수집할 RSS 피드의 URL을 입력하세요. HTTP 및 HTTPS 프로토콜을 지원합니다.
  • 태그 제거 여부: HTML 태그를 제거할지 여부를 설정하세요(기본값: false). true로 설정하면 수집한 콘텐츠에서 HTML 태그가 제거됩니다.
    • 웹 페이지나 앱에서 원본 형태로 표시해야 하거나, 하이퍼링크를 보존해야 하는 경우 테그를 제거하지 않는 것이 좋습니다.
    • 텍스트 분석 및 머신러닝 데이터를 준비하려면 태그를 제거하는 것이 좋습니다.

수집되는 정보:

필드명자료형설명
id32비트 정수RSS 엔트리 ID
title문자열RSS 엔트리 제목
author문자열작성자
source문자열RSS 피드의 채널 제목
link문자열RSS 엔트리 링크 URL
guid문자열RSS 엔트리 고유 식별자
content문자열RSS 엔트리 내용 (description)
created_at날짜RSS 엔트리 생성 시간
modified_at날짜RSS 엔트리 수정 시간
SFTP WTMP 파일

네트워크 호스트에 SFTP로 접속하여 WTMP 이벤트 로그를 수집합니다.

동작 방식:

  1. SFTP 연결: 지정된 SSH 프로파일을 사용하여 원격 호스트에 SFTP로 접속합니다.
  2. 파일 모니터링: 파일 경로로 지정된 WTMP 파일을 지속적으로 모니터링합니다.
  3. 이진 데이터 파싱: WTMP 파일의 이진 데이터를 운영체제 유형에 맞는 파서로 해석합니다.
  4. 증분 수집: 마지막 읽은 위치를 기억하여, 새로 추가된 WTMP 엔트리만 수집합니다.
  5. IP 주소 매핑: 수집된 호스트 정보를 IP 주소로 변환하고, 호스트 IP 설정값을 dst_ip 필드에 추가합니다.

적용 시나리오:

시스템 로그인/로그아웃 이벤트를 추적해야 하는 보안 모니터링 환경에서 사용하세요. WTMP 로그는 사용자 인증 이력, 시스템 부팅/종료, 터미널 세션 정보 등을 포함합니다.

수집 설정 속성:

수집 설정 - SFTP WTMP 파일

  • SSH 프로파일: SFTP 연결에 사용할 접속 프로파일의 이름을 입력하세요.
  • 파일 경로: 수집할 WTMP 파일의 절대 경로를 지정하세요(기본값: /var/log/wtmp).
  • 운영체제 유형: 로그 형식에 맞는 운영체제를 선택하세요(기본값: linux). linux, solaris, solaris_x86, aix, hpux, hpux_wtmps 중에서 선택할 수 있습니다.
  • 호스트 IP: dst_ip 필드에 기록할 IP 주소를 입력하세요. WTMP 로그는 기본적으로 목적지 IP 정보를 포함하지 않으므로, 하나의 테이블에 여러 호스트의 로그를 수집하는 경우 이 값을 지정해 호스트를 구분할 수 있습니다.

수집되는 정보:

필드명자료형설명
type문자열WTMP 엔트리 타입 (예: UserProcess, DeadProcess)
host문자열호스트명 또는 터미널 이름
pid32비트 정수프로세스 ID
session32비트 정수세션 ID
user문자열사용자명
device문자열터미널 디바이스명 (예: pts/0)
inittab_id문자열Init 테이블 ID
src_ipIP 주소소스 IP 주소 (host 필드에서 추출)
dst_ipIP 주소목적지 IP 주소 (호스트 IP 설정값)
SFTP 디렉터리 와처

SFTP를 통해 네트워크 호스트에 접속하여, 지정된 디렉터리에서 여러 개의 로그 파일을 수집합니다.

동작 방식:

  1. SFTP 연결: 지정된 SSH 프로파일을 사용하여 원격 호스트에 SFTP로 접속합니다.
  2. 파일 목록 조회: 디렉터리 경로에서 파일이름 패턴과 일치하는 모든 파일을 조회합니다.
  3. 날짜 필터링: 경로 날짜 추출 포맷모니터링 대상 일수가 설정된 경우, 지정된 기간 내의 파일만 선별합니다.
  4. 증분 수집: 각 파일의 마지막 읽은 위치를 기억하여, 새로 추가된 내용만 수집합니다.
  5. 다중 파일 처리: 여러 파일을 동시에 모니터링하며, 각 파일의 수집 상태를 독립적으로 관리합니다.

적용 시나리오:

파일 로테이션이 없고 여러 개의 파일을 수집해야 하는 환경에서 사용하세요(예: secure, secure-20250706, secure-20250713과 같이 한 번 기록되면 내용이 바뀌지 않는 로그).

수집 설정 속성:

수집 설정 - SFTP 디렉터리 와처

  • SSH 프로파일: SFTP 접속에 사용할 접속 프로파일의 이름을 입력하세요.

  • 디렉터리 경로: 로그 파일을 수집할 대상 디렉터리의 절대 경로를 지정하세요(예: /var/log).

  • 파일이름 패턴: 수집 대상 로그 파일 이름을 나타내는 정규표현식을 입력하세요(예: secure(-\d{8})?$). 날짜 기반 필터링이 필요한 경우 정규표현식의 그룹 ()으로 날짜 부분을 캡처할 수 있습니다(예: secure-(\d{4})(\d{2})(\d{2})$).

  • 날짜 정규표현식: 로그에서 날짜 및 시간 문자열을 추출할 정규표현식을 입력하세요.

    • RHEL 계열 배포본의 secure 로그에서 날짜를 추출하는 정규표현식 예시

      \b([A-Z][a-z]{2})\s+(\d{1,2})\s+(\d{2}:\d{2}:\d{2})\b
      
    • 괄호 (())로 감싸진 각 그룹을 순서대로 공백 없이 이어 붙여 하나의 날짜 문자열을 생성합니다. 이 문자열이 날짜 포맷날짜 로케일로 파싱됩니다.

      예시: "Aug" + " " + "1" + " " + "14:19:23" → "Aug 1 14:19:23"
      
  • 날짜 포맷: 날짜 정규표현식으로 추출된 문자열을 파싱할 Java SimpleDateFormat 패턴을 지정하세요(예: MMM d HH:mm:ss). 날짜 로케일에 따라 월 이름(MMM) 등의 파싱이 달라집니다.

  • 날짜 로케일: 날짜 문자열에 적용할 언어를 en, ja, zh, ko 중에서 선택하세요(기본값: en).

  • 시간대: 시간대를 선택하세요. API를 사용해 수집기를 구성하는 경우 KST 또는 Asia/Seoul와 같은 형식으로 시간대를 지정할 수 있습니다.

  • 로그 시작 구분 정규표현식: 여러 행으로 구성된 로그의 시작을 식별하는 정규표현식을 입력하세요. 미지정 시 개행 문자가 로그 구분자로 사용됩니다.

  • 로그 끝 구분 정규표현식: 여러 행으로 구성된 로그의 끝을 식별하는 정규표현식을 입력하세요. 미지정 시 개행 문자가 로그 구분자로 사용됩니다.

  • 문자 집합: 텍스트 파일의 문자 인코딩을 지정하세요(기본값: utf-8).

    • 문자 집합은 IANA Charset Sets Registry에 등록된 Preferred MIME Name 또는 Aliases를 사용합니다.
    • 입력란은 대소문자를 구분하지 않습니다.
  • 파일이름 태그: 수집한 원본 파일 이름(예: secure.log)을 기록할 필드 이름을 입력하세요. 미지정 시 원본 파일 이름을 기록하지 않습니다.

  • 경로 태그: 원본 파일의 전체 경로(예: /var/log/secure.log)를 기록할 필드 이름을 입력하세요. 미지정 시 원본 파일 경로를 기록하지 않습니다.

  • 경로 날짜 추출 포맷: 파일이름 패턴에서 추출된 날짜 문자열을 파싱할 Java SimpleDateFormat 패턴을 지정하세요. 파일이름 패턴에서 괄호 ()로 감싼 부분들이 날짜를 나타내는 경우, 이 부분들을 순서대로 연결하여 해당 포맷으로 변환합니다(예: 파일이름 패턴 secure-(\d{4})(\d{2})(\d{2})$와 경로 날짜 추출포맷 yyyyMMdd를 설정하면, secure-20241215 파일에서 20241215를 추출).

  • 모니터링 대상 일수: 경로 날짜 추출 포맷을 통해 파일명에서 추출한 날짜를 기준으로 지정한 일수 이내의 파일만 수집하도록 설정할 수 있습니다(기본값: 제한 없음).

  • 파일 끝 수집 활성화: 여러 행으로 구성된 로그에서 로그 끝 구분 정규표현식과 매칭되지 않더라도 파일의 물리적 끝(EOF)에 도달했을 때 미완성 로그를 수집할지 설정합니다(기본값: false).

    • true: EOF에 도달하면 로그 끝 패턴이 없어도 미완성 로그를 수집합니다.
    • false: 로그 끝 패턴과 매칭되는 완전한 로그만 수집하고, 미완성 로그는 버립니다.
  • 개행 문자: 개행 문자로 사용할 문자를 유니코드 이스케이프 형식으로 입력하세요(기본값: \u000A). SYMBL에서 유니코드 값을 참고하세요.

수집되는 정보:

필드유형설명예시
_time타임스탬프로그 이벤트 발생 시점의 타임스탬프2024-12-01 10:30:15
line문자열원본 로그 메시지Aug 1 14:19:23 hostname sshd[12345]: Accepted publickey for user
파일이름 태그문자열원본 파일명 (설정 시)secure, secure-20241201
경로 태그문자열원본 파일의 전체 경로 (설정 시)/var/log/secure, /var/log/secure-20241201
  • 파일이름 태그, 경로 태그 두 필드는 사용자가 설정한 실제 태그 이름으로 대체됩니다. 예를 들어 파일이름 태그를 filename으로 설정하면 filename 필드에 원본 파일 이름을 기록합니다.
SFTP 로테이션 로그 파일

SFTP를 통해 네트워크 호스트에 접속하여, 주기적으로 이름이 바뀌는 로테이션 로그 파일을 수집합니다.

동작 방식:

  1. SFTP 연결: 지정된 SSH 프로파일을 사용하여 원격 호스트에 SFTP로 접속합니다.
  2. 활성 파일 모니터링: 파일 경로로 지정된 현재 활성 로그 파일(예: access.log)을 지속적으로 모니터링합니다.
  3. 증분 수집: 파일의 마지막 읽은 위치를 기억하여, 새로 추가된 내용만 수집합니다.
  4. 로테이션 감지: 파일이 로테이션되어 크기가 줄어들거나 새 파일로 교체되면 자동으로 감지합니다.
  5. 연속 수집: 로테이션 후에도 새로운 활성 로그 파일에서 계속해서 로그를 수집합니다.

적용 시나리오:

주기적으로 로테이션되는 단일 로그 파일을 지속적으로 모니터링해야 하는 환경에서 사용하세요(예: access.logaccess.log.1access.log.2와 같이 현재 활성 파일의 이름은 항상 동일하지만 내용이 계속 변경되는 로그).

로테이션된 파일 수집 방식:

  • 현재 활성 파일: /var/log/nginx/access.log지속적으로 모니터링
  • 로테이션 파일들: access.log.1, access.log.2, access.log.3
    • 로테이션 발생 시 가장 최근 파일 1개(access.log.1)만 수집 (연속성 보장을 위해)
    • 과거 로테이션 파일들은 수집하지 않음

SFTP 멀티 로테이션 로그 파일과의 차이점:

구분SFTP 로테이션 로그 파일SFTP 멀티 로테이션 로그 파일
수집 방식특정 파일 1개 + 로테이션 시 1개디렉터리 내 패턴 매칭 모든 파일
설정 방식파일 경로 직접 지정디렉터리 경로 + 파일이름 패턴
로테이션 수집가장 최근 로테이션 파일 1개만패턴에 매칭되는 모든 로테이션 파일
하위 디렉터리지원하지 않음재귀적 순회 지원
파일이름 태그지원하지 않음원본 파일명 태그 지원
적용 상황실시간 연속 수집 환경과거 로테이션 파일 전체 수집 환경

수집기 선택 가이드:

  • SFTP 로테이션 로그 파일을 선택하는 경우:

    • 현재 활성 파일의 실시간 수집이 주 목적
    • 로테이션 시점의 데이터 누락만 방지하면 충분
    • 시스템 리소스 최적화가 중요
    • 예: 웹 서버 액세스 로그의 실시간 모니터링
  • SFTP 멀티 로테이션 로그 파일을 선택하는 경우:

    • 과거 로테이션 파일들도 모두 수집해야 함
    • 디렉터리 내 여러 종류의 로그 파일 일괄 수집
    • 하위 디렉터리까지 검색이 필요
    • 예: 장애 분석을 위한 전체 로그 수집
Note
SFTP 로테이션 로그 파일 수집 설정은 GZIP으로 압축된 파일(예: access.log.6.gz)을 수집하지 않습니다.

수집 설정 속성:

수집 설정 - SFTP 로테이션 로그 파일

  • SSH 프로파일: SFTP 접속에 사용할 접속 프로파일의 이름을 입력하세요.

  • 파일 경로: 현재 활성 로그 파일의 절대 경로를 지정하세요(예: /var/log/nginx/access.log). 로테이션된 파일(access.log.1, access.log.2)이 아닌 현재 쓰여지고 있는 파일 경로를 입력합니다.

  • 문자 집합: 텍스트 파일의 문자 인코딩을 지정하세요(기본값: utf-8).

    • 문자 집합은 IANA Charset Sets Registry에 등록된 Preferred MIME Name 또는 Aliases를 사용합니다.
    • 입력란은 대소문자를 구분하지 않습니다.
  • 날짜 정규표현식: 로그에서 날짜 및 시간 문자열을 추출할 정규표현식을 입력하세요.

    • access.log에서 날짜를 추출하는 정규표현식 예시

      \[(\d{2})/([A-Za-z]{3})/(\d{4}):(\d{2}:\d{2}:\d{2}) (\+\d{4})\]
      
    • 괄호 (())로 감싸진 각 그룹을 순서대로 공백 없이 이어 붙여 하나의 날짜 문자열을 생성합니다. 이 문자열이 날짜 포맷날짜 로케일로 파싱됩니다.

      예시: "06" + "Apr" + "2023" + "11:54:03" + "+0900" → "06Apr202311:54:03+0900"
      
  • 날짜 포맷: 날짜 정규표현식으로 추출된 문자열을 파싱할 Java SimpleDateFormat 패턴을 지정하세요(예: ddMMMyyyyHH:mm:ss Z). 날짜 로케일에 따라 월 이름(MMM) 등의 파싱이 달라집니다.

  • 날짜 로케일: 날짜 문자열에 적용할 언어를 en, ja, zh, ko 중에서 선택하세요(기본값: en).

  • 시간대: 시간대를 선택하세요. API를 사용해 수집기를 구성하는 경우 KST 또는 Asia/Seoul와 같은 형식으로 시간대를 지정할 수 있습니다.

  • 로그 시작 구분 정규표현식: 여러 행으로 구성된 로그의 시작을 식별하는 정규표현식을 입력하세요. 미지정 시 개행 문자가 로그 구분자로 사용됩니다.

  • 로그 끝 구분 정규표현식: 여러 행으로 구성된 로그의 끝을 식별하는 정규표현식을 입력하세요. 미지정 시 개행 문자가 로그 구분자로 사용됩니다.

  • 파일 끝 수집 활성화: 여러 행으로 구성된 로그에서 로그 끝 구분 정규표현식과 매칭되지 않더라도 파일의 물리적 끝(EOF)에 도달했을 때 미완성 로그를 수집할지 설정합니다(기본값: false).

    • true: EOF에 도달하면 로그 끝 패턴이 없어도 미완성 로그를 수집합니다.
    • false: 로그 끝 패턴과 매칭되는 완전한 로그만 수집하고, 미완성 로그는 버립니다.
  • 개행 문자: 개행 문자로 사용할 문자를 유니코드 이스케이프 형식으로 입력하세요(기본값: \u000A). SYMBL에서 유니코드 값을 참고하세요.

수집되는 정보:

필드유형설명예시
_time타임스탬프로그 이벤트 발생 시점의 타임스탬프2024-12-01 10:30:15
line문자열원본 로그 메시지198.51.100.1 - - [01/Dec/2024:10:30:15 +0900] "GET / HTTP/1.1" 200 1024
Note
SFTP 로테이션 로그 파일은 파일이름 태그와 경로 태그를 지원하지 않습니다. 단일 파일을 지속적으로 모니터링하는 용도로 설계되어 파일명 정보를 별도로 기록하지 않습니다.
SFTP 멀티 로테이션 로그 파일

SFTP를 통해 네트워크 호스트에 접속하여, 디렉터리 내에서 패턴과 일치하는 여러 개의 로테이션 로그 파일을 수집합니다.

동작 방식:

  1. SFTP 연결: 지정된 SSH 프로파일을 사용하여 원격 호스트에 SFTP로 접속합니다.
  2. 디렉터리 스캔: 디렉터리 경로에서 파일이름 패턴과 일치하는 모든 파일을 조회합니다.
  3. 하위 디렉터리 순회: 하위 디렉터리 순회 최대 깊이 설정에 따라 하위 디렉터리까지 재귀적으로 검색합니다.
  4. 다중 파일 모니터링: 패턴에 매치된 여러 파일을 동시에 모니터링하며, 각 파일의 수집 상태를 독립적으로 관리합니다.
  5. 로테이션 감지: 각 파일이 로테이션되어 변경되면 자동으로 감지하여 연속 수집합니다.

적용 시나리오:

하나의 디렉터리에 여러 개의 로테이션 로그 파일이 존재하는 환경에서 사용하세요(예: /var/log/ 디렉터리에 access.log, access.log.1, error.log, error.log.1 등 다양한 로테이션 파일들을 패턴으로 일괄 수집).

SFTP 로테이션 로그 파일과의 차이점:

구분SFTP 로테이션 로그 파일SFTP 멀티 로테이션 로그 파일
수집 방식특정 파일 1개 + 로테이션 시 1개디렉터리 내 패턴 매칭 모든 파일
설정 방식파일 경로 직접 지정디렉터리 경로 + 파일이름 패턴
로테이션 수집가장 최근 로테이션 파일 1개만패턴에 매칭되는 모든 로테이션 파일
하위 디렉터리지원하지 않음재귀적 순회 지원
파일이름 태그지원하지 않음원본 파일명 태그 지원
적용 상황실시간 연속 수집 환경과거 로테이션 파일 전체 수집 환경

수집 설정 속성:

수집 설정 - SFTP 멀티 로테이션 로그 파일

  • SSH 프로파일: SFTP 접속에 사용할 접속 프로파일의 이름을 입력하세요.

  • 디렉터리 경로: 로그 파일을 수집할 대상 디렉터리의 절대 경로를 지정하세요(예: /var/log).

  • 파일이름 패턴: 수집 대상 로그 파일 이름을 나타내는 정규표현식을 입력하세요.

    로테이션 패턴별 정규표현식 예시:

    • 표준 숫자 로테이션: access\.log.*

      • 매칭: access.log, access.log.1, access.log.2, access.log.gz
    • 날짜 포함 로테이션: access\..*\.log

      • 매칭: access.log, access.20230101.log, access.2023-01-01.log
    • 복합 패턴: access.*\.log(\.\d+)?

      • 매칭: access.log, access.STRING.log, access.log.1, access.log.2
    • 포괄적 패턴: access.*

      • 매칭: access.log, access.log.1, access.20230101.log, access.error.log
    Note
    정규표현식에서 마침표(.)는 특수문자이므로 문자열로 매칭하려면 "\."로 이스케이프해야 합니다.
  • 문자 집합: 텍스트 파일의 문자 인코딩을 지정하세요(기본값: utf-8).

    • 문자 집합은 IANA Charset Sets Registry에 등록된 Preferred MIME Name 또는 Aliases를 사용합니다.
    • 입력란은 대소문자를 구분하지 않습니다.
  • 날짜 정규표현식: 로그에서 날짜 및 시간 문자열을 추출할 정규표현식을 입력하세요.

    • 웹 서버 로그에서 날짜를 추출하는 정규표현식 예시

      \[(\d{2})/([A-Za-z]{3})/(\d{4}):(\d{2}:\d{2}:\d{2}) (\+\d{4})\]
      
    • 괄호 (())로 감싸진 각 그룹을 순서대로 공백 없이 이어 붙여 하나의 날짜 문자열을 생성합니다. 이 문자열이 날짜 포맷날짜 로케일로 파싱됩니다.

      예시: "06" + "Apr" + "2023" + "11:54:03" + "+0900" → "06Apr202311:54:03+0900"
      
  • 날짜 포맷: 날짜 정규표현식으로 추출된 문자열을 파싱할 Java SimpleDateFormat 패턴을 지정하세요(예: ddMMMyyyyHH:mm:ss Z). 날짜 로케일에 따라 월 이름(MMM) 등의 파싱이 달라집니다.

  • 날짜 로케일: 날짜 문자열에 적용할 언어를 en, ja, zh, ko 중에서 선택하세요(기본값: en).

  • 시간대: 시간대를 선택하세요. API를 사용해 수집기를 구성하는 경우 KST 또는 Asia/Seoul와 같은 형식으로 시간대를 지정할 수 있습니다.

  • 로그 시작 구분 정규표현식: 여러 행으로 구성된 로그의 시작을 식별하는 정규표현식을 입력하세요. 미지정 시 개행 문자가 로그 구분자로 사용됩니다.

  • 로그 끝 구분 정규표현식: 여러 행으로 구성된 로그의 끝을 식별하는 정규표현식을 입력하세요. 미지정 시 개행 문자가 로그 구분자로 사용됩니다.

  • 파일이름 태그: 수집한 원본 파일 이름(예: access.log.1)을 기록할 필드 이름을 입력하세요. 미지정 시 원본 파일 이름을 기록하지 않습니다.

  • 파일 끝 수집 활성화: 여러 행으로 구성된 로그에서 로그 끝 구분 정규표현식과 매칭되지 않더라도 파일의 물리적 끝(EOF)에 도달했을 때 미완성 로그를 수집할지 설정합니다(기본값: false).

    • true: EOF에 도달하면 로그 끝 패턴이 없어도 미완성 로그를 수집합니다.
    • false: 로그 끝 패턴과 매칭되는 완전한 로그만 수집하고, 미완성 로그는 버립니다.
  • 개행 문자: 개행 문자로 사용할 문자를 유니코드 이스케이프 형식으로 입력하세요(기본값: \u000A). SYMBL에서 유니코드 값을 참고하세요.

  • 하위 디렉터리 순회 최대 깊이: 하위 디렉터리를 재귀적으로 검색할 최대 깊이를 지정하세요(기본값: 0). 0은 현재 디렉터리만 검색하고, 1은 1단계 하위 디렉터리까지 검색합니다.

수집되는 정보:

필드유형설명예시
_time타임스탬프로그 이벤트 발생 시점의 타임스탬프2024-12-01 10:30:15
line문자열원본 로그 메시지198.51.100.1 - - [01/Dec/2024:10:30:15 +0900] "GET / HTTP/1.1" 200 1024
파일이름 태그문자열원본 파일명 (설정 시)access.log, access.log.1, error.log.2
Note
수집되는 정보 테이블에서 _파일이름 태그_는 사용자가 설정한 실제 태그 이름으로 대체됩니다. 예를 들어 파일이름 태그를 filename으로 설정하면 filename 필드에 원본 파일 이름을 기록합니다.
SFTP 일자별 디렉터리

SFTP를 통해 네트워크 호스트에 접속한 뒤, 날짜별로 생성된 디렉터리를 순회하며 파일 이름 패턴과 일치하는 로그 파일을 수집합니다.

동작 방식:

  1. 디렉터리 날짜 파싱: 지정된 디렉터리 경로에서 디렉터리 목록을 가져와, 각 디렉터리 이름에서 디렉터리 날짜 정규표현식으로 날짜 정보를 추출하고 디렉터리 날짜 포맷에 따라 파싱합니다.
  2. 시간 범위 필터링: 모니터링 기간 설정에 따라 최근 N일간의 디렉터리만 실시간 모니터링하며, 과거 로그 수집 시작/끝 일자로 지정된 기간의 과거 디렉터리도 처리합니다.
  3. 파일 패턴 매칭: 각 디렉터리 내에서 파일이름 패턴과 일치하는 파일들만 선별하여 수집합니다.
  4. 증분 수집: 이전에 수집한 위치를 기억하여, 파일의 변경된 부분만 추가로 수집합니다.

수집 대상 예시:

/var/log/nginx/       ← "디렉터리 경로" 설정값
├── 20241201/         ← 날짜별 디렉터리
│   ├── access-01.log ← 파일 이름에 시간 정보 포함
│   ├── ⁝
│   └── access-23.log
├── 20241202/         ← 날짜별 디렉터리
│   ├── access-01.log ← 파일 이름에 시간 정보 포함
│   ├── ⁝
│   └── access-23.log
└── 20241203/         ← 날짜별 디렉터리
    ├── access-01.log ← 파일 이름에 시간 정보 포함
    ├── ⁝
    └── access-23.log

수집 설정 속성:

수집 설정 - SFTP 일자별 디렉터리

  • SSH 프로파일: SFTP 접속에 사용할 접속 프로파일의 이름을 입력하세요.

  • 모니터링 기간: 실시간으로 파일 변화를 감지할 기간을 일 단위로 설정하세요(기본값: 0).

    • 1 이상: 최근 N일간의 디렉터리를 지속적으로 모니터링합니다.
    • 0: 실시간 수집이 비활성화되며, 과거 로그 수집만 실행됩니다.
  • 디렉터리 경로: 날짜별 디렉터리들이 생성되는 디렉터리의 절대 경로를 지정하세요(예: /var/log/nginx). 이 경로 아래에 20241201, 20241202와 같이 날짜별로 명명된 하위 디렉터리들이 있어야 합니다.

  • 파일이름 패턴: 수집 대상 로그 파일 이름을 나타내는 정규표현식을 입력하세요(예: access-(\d{2})\.log).

  • 디렉터리 날짜 정규표현식: 디렉터리 이름에서 날짜 문자열을 추출할 정규표현식을 입력하세요(예: (\d{8})).

  • 디렉터리 날짜 포맷: 디렉터리 날짜 정규표현식으로 추출한 날짜 문자열을 파싱할 Java SimpleDateFormat 패턴을 입력하세요(기본값: yyyyMMdd).

  • 디렉터리 날짜 사용 유무: 파일 이름에서 날짜를 추출할 때 디렉터리 이름의 날짜 정보를 접두사로 포함할지 설정하세요(기본값: false).

    예시: 디렉터리 20241201/, 파일 access-10.log인 경우

    • true: "20241201" + "10""2024120110" (디렉터리 날짜 + 파일 시간)
    • false: "10" (파일 이름에서만 시간 추출)

    참고: 이 설정은 파일 이름에서 날짜를 추출하는 경우에만 적용되며, 로그 내용에서 추출하는 날짜 정규표현식과는 별개로 동작합니다.

  • 과거 로그 수집 시작 일자: 수집기 첫 실행 시에만 과거 데이터를 일괄 수집할 시작일을 yyyyMMdd 형식으로 입력하세요.

  • 과거 로그 수집 끝 일자: 과거 데이터를 일괄 수집할 종료일을 yyyyMMdd 형식으로 입력하세요.

    동작 방식:

    • 과거 로그 수집: 수집기 첫 실행 시 지정된 날짜 범위(시작 일자 ~ 끝 일자)의 과거 디렉터리를 일회성으로 처리합니다.
    • 실시간 수집: 이후 모니터링 기간 설정에 따라 최근 N일간의 디렉터리를 지속적으로 모니터링합니다.
      • 모니터링 기간 = 0: 실시간 수집이 비활성화됩니다. 과거 로그 수집만 실행됩니다.

    예시 1: 과거 로그 수집 시작 일자 20241201, 과거 로그 수집 끝 일자 20241210, 모니터링 기간 3일로 설정하고 12월 15일에 수집기를 처음 시작하는 경우

    • 과거 로그 수집: 20241201/ ~ 20241210/ (10일간 과거 데이터 일괄 처리)
    • 실시간 수집: 20241213/, 20241214/, 20241215/ (최근 3일간 지속 모니터링)

    예시 2: 과거 로그 수집 시작 일자 20241201, 과거 로그 수집 끝 일자 20241210, 모니터링 기간 0일로 설정하고 12월 15일에 수집기를 처음 시작하는 경우

    • 과거 로그 수집: 20241201/ ~ 20241210/ (10일간 과거 데이터 일괄 처리)
    • 실시간 수집: 비활성화됨 (과거 데이터만 수집하고 종료)
    Note
    두 일자를 모두 입력해야 과거 로그 수집이 활성화됩니다. 수집기 재시작 시에는 과거 로그 수집이 다시 실행되지 않습니다.
  • 날짜 정규표현식: 로그에서 날짜 및 시간 문자열을 추출할 정규표현식을 입력하세요.

    • 로그에서 날짜를 추출하는 정규표현식 예시

      \[(\d{2}/\S{3,10}/\d{4}:\d{2}:\d{2}:\d{2} \+\d{4})\]
      
    • 괄호 (())로 감싼 문자열 그룹을 이어 붙여 날짜 문자열을 생성하며, 이 문자열은 날짜 포맷날짜 로케일에 따라 파싱됩니다.

  • 날짜 포맷: 날짜 정규표현식으로 추출된 문자열을 파싱할 Java SimpleDateFormat 패턴을 지정하세요(예: yyyy-MM-dd HH:mm:ss). 날짜 로케일에 따라 파싱하는 형식이 다를 수 있습니다.

  • 날짜 로케일: 날짜 문자열에 적용할 언어를 en, ja, zh, ko 중에서 선택하세요(기본값: en).

  • 시간대: 시간대를 선택하세요. API를 사용해 수집기를 구성하는 경우 KST 또는 Asia/Seoul와 같은 형식으로 시간대를 지정할 수 있습니다.

  • 로그 시작 정규표현식: 여러 행으로 구성된 로그의 시작을 식별하는 정규표현식을 입력하세요. 미지정 시 개행 문자가 로그 구분자로 사용됩니다.

  • 로그 끝 정규표현식: 여러 행으로 구성된 로그의 끝을 식별하는 정규표현식을 입력하세요. 미지정 시 개행 문자가 로그 구분자로 사용됩니다.

  • 문자 집합: 텍스트 파일의 문자 인코딩을 지정하세요(기본값: utf-8).

    • 문자 집합은 IANA Charset Sets Registry에 등록된 Preferred MIME Name 또는 Aliases를 사용합니다.
    • 입력란은 대소문자를 구분하지 않습니다.
  • 파일이름 태그: 수집한 원본 파일 이름(예: access-01.log)을 기록할 필드 이름을 입력하세요. 미지정 시 원본 파일 이름을 기록하지 않습니다.

  • 파일 끝 수집 활성화: 여러 행으로 구성된 로그에서 로그 끝 정규표현식과 매칭되지 않더라도 파일의 물리적 끝(EOF)에 도달했을 때 미완성 로그를 수집할지 설정합니다(기본값: false).

    • true: EOF에 도달하면 로그 끝 패턴이 없어도 미완성 로그를 수집합니다.
    • false: 로그 끝 패턴과 매칭되는 완전한 로그만 수집하고, 미완성 로그는 버립니다.
  • 개행 문자: 개행 문자로 사용할 문자를 유니코드 이스케이프 형식으로 입력하세요(기본값: \u000A). SYMBL에서 유니코드 값을 참고하세요.

수집되는 정보:

필드유형설명예시
line문자열원본 로그 한 줄의 전체 내용nginx: access log line
_time타임스탬프로그에서 추출된 시간 정보2024-12-01 10:30:15
파일이름 태그문자열수집한 파일의 이름 (설정 시)access-01.log
SNMP GET

SNMP(Simple Network Management Protocol) GET 명령을 사용하여 네트워크 장비나 시스템의 MIB(Management Information Base) 정보를 주기적으로 수집합니다.

동작 방식:

  1. 연결 설정: 지정된 SNMP 에이전트(네트워크 장비)에 UDP 소켓 연결을 설정합니다.
  2. OID 쿼리: 설정된 OID(Object Identifier) 목록에 대해 SNMP GET PDU(Protocol Data Unit)를 생성하여 전송합니다.
  3. 응답 수신: SNMP 에이전트로부터 각 OID에 대한 값을 포함한 응답을 수신합니다.
  4. 데이터 변환: 수신된 SNMP 변수를 적절한 데이터 타입(정수, 문자열, Counter64 등)으로 변환하여 로그 레코드를 생성합니다.

적용 시나리오:

  • 네트워크 모니터링: 스위치, 라우터, 방화벽 등의 포트 상태, 트래픽 통계, CPU/메모리 사용률 수집
  • 서버 리소스 모니터링: SNMP 에이전트가 설치된 서버의 하드웨어 상태, 성능 지표 수집
  • 인프라 성능 관리: UPS, 환경 센서, 스토리지 장비 등의 상태 정보 수집
  • 장애 예방: 임계값 근접 상황이나 하드웨어 오류 상태를 사전에 감지하고 기록
  • 용량 계획: 장기간의 리소스 사용 패턴을 분석하여 인프라 확장 계획 수립

수집 설정 속성:

수집 설정 - SNMP GET

  • SNMP 버전: 사용할 SNMP 프로토콜 버전을 v1 또는 v2c 중에서 선택해서 입력하세요.

  • IP 주소: SNMP 에이전트가 실행 중인 호스트의 IP 주소 또는 호스트명을 입력하세요.

  • SNMP 포트: SNMP 쿼리에 사용할 UDP 포트 번호를 지정하세요(기본값: 161).

  • SNMP 커뮤니티: SNMP 인증에 사용할 커뮤니티 문자열을 입력하세요(예: public, private).

  • OID 매핑 목록: 수집할 대상 Object ID와 저장할 필드 이름의 쌍을 쉼표(,)로 구분하여 입력하세요(형식: OID=FIELD_NAME,OID=FIELD_NAME,...)).

    예시:

    1.3.6.1.2.1.1.3.0=uptime,1.3.6.1.2.1.2.2.1.10.1=ifInOctets,1.3.6.1.2.1.2.2.1.16.1=ifOutOctets
    

    OID 참조: 표준 OID 목록과 벤더별 OID, 실무 활용 가이드는 SNMP OID 문서를 참고하세요.

  • 타임아웃 (초): SNMP 에이전트에 쿼리를 전송한 후 응답을 기다리는 최대 시간을 초 단위로 지정하세요(기본값: 5초, 범위: 0~3600초).

  • 재시도 횟수: 쿼리 실패 시 재시도할 횟수를 지정하세요(기본값: 2회, 범위: 0~1000회).

수집되는 정보:

필드유형설명예시
_time타임스탬프수집 시점의 타임스탬프2024-12-01 10:30:15
설정된 필드명다양OID 매핑에서 지정한 필드명으로 저장되는 SNMP 값
uptime32비트 정수시스템 부팅 후 경과 시간(100분의 1초 단위) (OID: 1.3.6.1.2.1.1.3.0)12345678 (약 1.4일)
ifInOctets32비트 정수인터페이스 수신 바이트 수1234567890
ifOutOctets32비트 정수인터페이스 송신 바이트 수9876543210
sysDescr문자열시스템 설명Cisco IOS Software
  • SNMP 변수 타입에 따라 적절한 데이터 타입으로 자동 변환됩니다: Counter64(64비트 정수), Integer32(32비트 정수), UnsignedInteger32(32비트 부호없는 정수), OctetString(문자열), Null(null 값)
  • 수집된 데이터의 크기는 SNMP 응답 PDU의 BER 인코딩 길이로 계산됩니다.
SNMP 인터페이스 통계

SNMP(Simple Network Management Protocol) 쿼리를 통해 네트워크 장비의 모든 인터페이스별 트래픽 통계와 상태 정보를 주기적으로 수집합니다.

동작 방식:

  1. 에이전트 연결: 지정된 대상 에이전트 IP 주소로 SNMP 연결을 설정합니다.
  2. 인터페이스 탐색: 장비의 모든 네트워크 인터페이스를 자동으로 탐색하여 목록을 생성합니다.
  3. 통계 수집: 각 인터페이스의 트래픽 카운터, 상태 정보, 하드웨어 정보를 주기적으로 쿼리합니다.
  4. 증분 계산: 이전 수집값과 비교하여 트래픽 증분, 사용률, 초당 패킷 수 등을 계산합니다.
  5. 32비트 래핑 처리: Counter32 타입의 32비트 카운터 오버플로우를 자동으로 감지하고 처리합니다.

적용 시나리오:

  • 네트워크 모니터링: 스위치, 라우터, 방화벽 등의 모든 포트 트래픽을 통합 모니터링
  • 용량 계획: 인터페이스별 대역폭 사용률을 분석하여 네트워크 확장 계획 수립
  • 성능 분석: 실시간 트래픽 패턴, 오류율, 패킷 드롭률 등을 종합 분석
  • 장애 감지: 인터페이스 다운, 높은 오류율, 과부하 상황을 사전 감지
  • SLA 관리: 네트워크 가용성과 성능 지표를 지속적으로 추적하여 서비스 품질 보장

수집 설정 속성:

수집 설정 - SNMP 인터페이스 통계

  • 대상 에이전트 IP 주소: 통계를 수집할 네트워크 장비의 IP 주소 또는 호스트명을 입력하세요.
  • 대상 에이전트 SNMP 포트: SNMP 쿼리에 사용할 UDP 포트 번호를 지정하세요(기본값: 161, 범위: 0~65535).
  • Community 문자열: SNMP 인증에 사용할 커뮤니티 문자열을 입력하세요(기본값: public).
  • SNMP 버전: 대상 장비가 지원하는 SNMP 프로토콜 버전을 지정하세요(기본값: 2).
    • 1: SNMP v1
    • 2: SNMP v2c (권장)
Note
SNMPv3를 사용하려면 SNMPv3 인터페이스 통계 수집기를 사용하세요. SNMPv3는 인증 및 암호화를 위한 추가 설정이 필요합니다.

수집되는 정보:

필드유형설명예시
_time타임스탬프수집 시점의 타임스탬프2024-12-01 10:30:15
index32비트 정수인터페이스 인덱스 번호1, 2, 3
type32비트 정수인터페이스 타입 (RFC 1213 정의)6 (Ethernet), 24 (Loopback)
description문자열인터페이스 설명GigabitEthernet0/1, FastEthernet0/0
mtu32비트 정수최대 전송 단위 (바이트)1500, 9000
mac문자열물리적 MAC 주소00:1a:2b:3c:4d:5e
bandwidth32비트 정수인터페이스 대역폭 (bps)1000000000 (1Gbps)
oper_status32비트 정수운영 상태1 (up), 2 (down), 3 (testing)
admin_status32비트 정수관리 상태1 (up), 2 (down), 3 (testing)
last_change32비트 정수마지막 상태 변경 시간 (sysUpTime)12345678
rx_bytes32비트 정수수신 바이트 증분1024000
tx_bytes32비트 정수송신 바이트 증분512000
rx_ucast_pkts32비트 정수수신 유니캐스트 패킷 증분1000
tx_ucast_pkts32비트 정수송신 유니캐스트 패킷 증분800
rx_nucast_pkts32비트 정수수신 논유니캐스트 패킷 증분50
tx_nucast_pkts32비트 정수송신 논유니캐스트 패킷 증분30
rx_errors32비트 정수수신 오류 패킷 증분0
tx_errors32비트 정수송신 오류 패킷 증분0
rx_discards32비트 정수수신 드롭 패킷 증분2
tx_discards32비트 정수송신 드롭 패킷 증분0
rx_unknown_protos32비트 정수수신 알 수 없는 프로토콜 패킷 수0
tx_queue_length32비트 정수송신 큐 길이0
interval32비트 정수수집 간격 (밀리초)60000
message문자열트래픽 요약 메시지eth0 (00:1a:2b:3c:4d:5e), RX[5% 1Mbps, 100fps], TX[3% 512Kbps, 80fps]
  • 트래픽 관련 필드(rx_bytes, tx_bytes 등)는 이전 수집값과의 증분(delta)으로 계산됩니다.
  • Counter32 타입의 오버플로우(wrap around)는 자동으로 감지하고 보정됩니다.
  • 수집 간격과 트래픽 증분을 기반으로 실시간 대역폭 사용률이 계산됩니다.
  • message 필드는 인터페이스별 트래픽 요약 정보를 사람이 읽기 쉬운 형태로 제공합니다.
SNMP 트랩 수신기

네트워크 장비 또는 시스템이 로그프레소 소나로 전송한 SNMP 트랩 메시지를 수집합니다.

동작 방식:

SNMP 트랩 수신기는 UDP 프로토콜을 통해 SNMP 트랩 패킷을 수신하고, 트랩 메시지의 구성 요소를 구조화된 로그 데이터로 변환합니다. SNMPv1, v2c, v3를 모두 지원하며, 지정된 원격지 IP 주소에서 전송된 트랩만 수집합니다.

적용 시나리오:

  • 네트워크 장비 모니터링: 스위치, 라우터, 방화벽 등에서 발생하는 이벤트 수집
  • 시스템 상태 알림: 서버나 애플리케이션의 상태 변화 감지
  • 장애 감지: 링크 다운, 인증 실패 등의 중요 이벤트 수신
  • 임계값 초과 알림: CPU, 메모리, 디스크 사용률 초과 시 트랩 수집

수집 설정 속성:

수집 설정 - SNMP 트랩

  • 원격지 IP: SNMP 트랩을 전송하는 장비 또는 호스트의 IP 주소를 입력하세요.
  • SNMP 버전: 수신할 SNMP 버전을 선택하세요. 2 또는 3 중 선택 가능하며, 3을 선택하면 v1, v2까지 모두 수신합니다(기본값: 2).
  • SNMPv3 접속 프로파일: SNMPv3 트랩을 수신할 경우 접속 프로파일을 선택하세요(선택사항).
Note
SNMPv3은 4.0.2409.0 버전부터 지원합니다.

수집되는 정보:

필드명유형설명예시
generic_trap문자열SNMP 트랩 유형coldStart, warmStart, linkDown, linkUp, authenticationFailure
variable_bindings객체트랩에 포함된 OID-값 쌍들{"1.3.6.1.2.1.1.3.0": 123456, "1.3.6.1.2.1.2.2.1.8.1": 1}
remote_address문자열트랩 송신자의 IP 주소198.51.100.10:161
local_address문자열트랩 수신자의 IP 주소198.51.100.20:162
data_length32비트 정수트랩 메시지의 바이트 크기128
version32비트 정수SNMP 버전1, 2, 3
enterprise_oid문자열기업 OID (SNMPv1 전용)1.3.6.1.4.1.9
specific_trap32비트 정수특정 트랩 코드 (SNMPv1 전용)0
  • SNMPv1 트랩의 경우 enterprise_oid, generic_trap, specific_trap 필드가 포함됩니다.
  • SNMPv2c/v3 트랩의 경우 variable_bindings에 snmpTrapOID가 포함되어 트랩 유형을 식별할 수 있습니다.
  • generic_trap은 숫자 코드를 의미있는 문자열로 변환하여 제공됩니다.
  • variable_bindings의 모든 OID-값 쌍은 개별 필드로도 추출되어 별도 접근이 가능합니다.
SNMPv3 GET

SNMPv3 에이전트를 대상으로 SNMP 쿼리를 수행한 결과를 수집합니다.

동작 방식:

SNMPv3 GET 수집기는 지정된 SNMP 에이전트에 주기적으로 GET 요청을 전송하여 특정 OID 값들을 조회합니다. SNMPv3의 보안 기능을 활용하여 인증과 암호화를 통해 안전하게 데이터를 수집하며, 설정된 OID와 필드 이름 매핑에 따라 수집된 값을 구조화된 로그 데이터로 저장합니다.

적용 시나리오:

  • 네트워크 장비 모니터링: 라우터, 스위치의 시스템 정보 및 성능 지표 수집
  • 서버 리소스 모니터링: CPU, 메모리, 디스크 사용률 등의 시스템 리소스 감시
  • 애플리케이션 메트릭 수집: SNMP를 지원하는 애플리케이션의 사용자 정의 메트릭 수집
  • IoT 장비 상태 수집: SNMP를 지원하는 IoT 디바이스의 센서 데이터 및 상태 정보 수집

수집 설정 속성:

수집 설정 - SNMPv3 GET

  • IP 주소: SNMP 에이전트의 호스트 이름 또는 IP 주소를 입력하세요.

  • SNMP 포트: SNMP 쿼리에 사용할 포트를 지정하세요(기본값: 161).

  • SNMPv3 사용자 이름: SNMPv3 통신에 사용할 보안 사용자 이름(Security Name)을 입력하세요.

  • SNMPv3 인증 프로토콜: 사용자 인증에 사용할 해시 알고리즘을 선택하세요. MD5, SHA, SHA224, SHA256, SHA384, SHA512 중에서 선택 가능합니다(기본값: SHA).

  • SNMPv3 인증 암호: SNMPv3 인증에 사용할 암호(Authentication Passphrase)를 입력하세요.

  • SNMPv3 암호화 프로토콜: 메시지 암호화에 사용할 암호화 알고리즘을 선택하세요. DES, AES, 3DES, AES192, AES256 중에서 선택 가능합니다(기본값: AES).

  • SNMPv3 암호화 키: SNMPv3 통신에 사용할 프라이버시 키(Privacy Passphrase)를 입력하세요.

  • OID 매핑 목록: 수집할 대상 Object ID와 저장할 필드 이름의 쌍을 쉼표(,)로 구분하여 입력하세요(형식: OID=FIELD_NAME,OID=FIELD_NAME,...).

    예시:

    1.3.6.1.2.1.1.3.0=uptime,1.3.6.1.2.1.2.2.1.10.1=ifInOctets,1.3.6.1.2.1.2.2.1.16.1=ifOutOctets
    

    OID 참조: 표준 OID 목록과 벤더별 OID, 실무 활용 가이드는 SNMP OID 문서를 참고하세요.

  • 타임아웃 (초): SNMP 에이전트에 쿼리를 전송한 후 응답을 기다리는 최대 시간을 초 단위로 지정하세요(기본값: 5초).

  • 재시도 횟수: 쿼리 실패 시 재시도할 횟수를 지정하세요(기본값: 2).

수집되는 정보:

필드명유형설명
_time날짜로그 수집 시간
agent_ip문자열SNMP 에이전트의 IP 주소
사용자 정의 필드가변OID 매핑 목록에서 설정한 필드 이름과 해당 OID에서 수집된 값
Note
SNMP 트랩 수신기는 SNMPv3 접속 프로파일을 사용하여 인증 정보를 중앙에서 관리할 수 있지만, SNMPv3 GET 수집기는 개별 설정으로 SNMPv3 인증 정보를 직접 입력해야 합니다.
SNMPv3 인터페이스 통계

SNMPv3 쿼리를 통해 네트워크 장비의 인터페이스별 트래픽 통계를 수집합니다.

동작 방식:

SNMPv3 인터페이스 통계 수집기는 지정된 네트워크 장비에 주기적으로 SNMP 쿼리를 전송하여 모든 네트워크 인터페이스의 트래픽 통계 정보를 수집합니다. ifTable (1.3.6.1.2.1.2.2)을 조회하여 인터페이스별 송수신 바이트, 패킷, 오류 통계 등을 수집하며, SNMPv3의 보안 기능을 통해 안전하게 데이터를 전송받습니다.

적용 시나리오:

  • 네트워크 트래픽 모니터링: 스위치, 라우터, 방화벽의 모든 포트별 대역폭 사용량 모니터링
  • 네트워크 성능 분석: 인터페이스별 트래픽 패턴 분석 및 병목 구간 식별
  • 용량 계획: 네트워크 인터페이스 사용률 기반의 네트워크 확장 계획 수립
  • 장애 감지: 인터페이스 오류율 및 상태 변화를 통한 네트워크 장애 조기 발견

수집 설정 속성:

수집 설정 - SNMPv3 인터페이스 통계

  • 대상 에이전트 IP 주소: 통계를 수집할 네트워크 장비의 IP 주소를 입력하세요.
  • 대상 에이전트 SNMP 포트: SNMP 쿼리에 사용할 포트를 지정하세요(기본값: 161).
  • SNMPv3 사용자 이름: SNMPv3 통신에 사용할 보안 사용자 이름(Security Name)을 입력하세요.
  • SNMPv3 인증 프로토콜: 사용자 인증에 사용할 해시 알고리즘을 선택하세요. MD5, SHA, SHA224, SHA256, SHA384, SHA512 중에서 선택 가능합니다(기본값: SHA).
  • SNMPv3 인증 암호: SNMPv3 인증에 사용할 암호(Authentication Passphrase)를 입력하세요.
  • SNMPv3 암호화 프로토콜: 메시지 암호화에 사용할 암호화 알고리즘을 선택하세요. DES, AES, 3DES, AES192, AES256 중에서 선택 가능합니다(기본값: AES).
  • SNMPv3 암호화 키: SNMPv3 통신에 사용할 프라이버시 키(Privacy Passphrase)를 입력하세요.

수집되는 정보:

필드명유형설명
_time날짜로그 수집 시간
agent_ip문자열네트워크 장비의 IP 주소
if_index32비트 정수인터페이스 인덱스 번호
if_descr문자열인터페이스 설명 (예: GigabitEthernet0/1)
if_type32비트 정수인터페이스 타입 (예: 6=ethernet)
if_mtu32비트 정수최대 전송 단위(MTU) 크기
if_speed32비트 정수인터페이스 속도 (bps)
if_phys_address문자열물리적 주소 (MAC 주소)
if_admin_status32비트 정수관리 상태 (1=up, 2=down, 3=testing)
if_oper_status32비트 정수운영 상태 (1=up, 2=down, 3=testing, 4=unknown, 5=dormant, 6=notPresent, 7=lowerLayerDown)
if_last_change32비트 정수마지막 상태 변경 시간 (TimeTicks)
if_in_octets32비트 정수수신 바이트 수 (Wrap-around 가능)
if_in_ucast_pkts32비트 정수수신 유니캐스트 패킷 수
if_in_nucast_pkts32비트 정수수신 비유니캐스트 패킷 수
if_in_discards32비트 정수수신 폐기 패킷 수
if_in_errors32비트 정수수신 오류 패킷 수
if_in_unknown_protos32비트 정수수신 알 수 없는 프로토콜 패킷 수
if_out_octets32비트 정수송신 바이트 수 (Wrap-around 가능)
if_out_ucast_pkts32비트 정수송신 유니캐스트 패킷 수
if_out_nucast_pkts32비트 정수송신 비유니캐스트 패킷 수
if_out_discards32비트 정수송신 폐기 패킷 수
if_out_errors32비트 정수송신 오류 패킷 수
Note
SNMP 트랩 수신기는 SNMPv3 접속 프로파일을 사용하여 인증 정보를 중앙에서 관리할 수 있지만, SNMPv3 인터페이스 통계 수집기는 개별 설정으로 SNMPv3 인증 정보를 직접 입력해야 합니다.
SSH 실행

네트워크 호스트에 SSH로 접속하여 지정한 명령어를 실행하고, 표준 출력 결과를 수집합니다.

동작 방식:

SSH 실행 수집기는 지정된 SSH 접속 프로파일을 사용하여 원격 호스트에 안전하게 접속한 후, 설정된 명령어를 실행합니다. 명령어 실행이 완료되면 표준 출력(stdout)과 표준 오류(stderr), 종료 코드를 수집하여 구조화된 로그 데이터로 저장합니다.

적용 시나리오:

  • 시스템 모니터링: 원격 서버의 시스템 상태, 프로세스, 디스크 사용량 등을 주기적으로 확인
  • 로그 수집: 원격 호스트의 특정 로그 파일이나 시스템 정보를 명령어를 통해 수집
  • 보안 감사: 시스템 설정, 사용자 목록, 파일 권한 등의 보안 관련 정보 수집
  • 성능 데이터 수집: CPU, 메모리, 네트워크 통계 등의 성능 지표를 명령어로 추출
  • 애플리케이션 상태 확인: 특정 애플리케이션의 실행 상태나 설정 정보 수집

수집 설정 속성:

수집 설정 - SSH 실행

  • SSH 프로파일: SSH 연결에 사용할 접속 프로파일의 이름을 입력하세요.
  • 명령어: 로그인 셸에서 실행할 명령어를 입력하세요.

수집되는 정보:

필드명유형설명예시
_time타임스탬프명령어 실행 시점의 타임스탬프2024-12-01 10:30:15
host문자열SSH 접속 대상 호스트198.51.100.10
command문자열실행한 명령어ls -la /var/log
exit_code32비트 정수명령어 실행 결과 코드0 (성공), 1 (실패)
stdout문자열명령어의 표준 출력 결과total 1024\ndrwxr-xr-x 2 root root 4096 Dec 1 10:30 .
stderr문자열명령어의 표준 오류 출력Permission denied
TCP 포트 상태 수집기

네트워크 호스트의 TCP 포트 개방 여부를 주기적으로 확인하고, 결과를 수집합니다.

동작 방식:

TCP 포트 상태 수집기는 지정된 호스트 목록의 특정 포트에 대해 TCP 연결을 시도하여 포트의 개방 상태를 확인합니다. 각 연결 시도에 대해 응답 시간을 측정하고, 연결 성공/실패 여부와 함께 구조화된 로그 데이터로 저장합니다. 타임아웃을 설정하여 응답이 없는 경우의 처리 방식을 제어할 수 있습니다.

적용 시나리오:

  • 서비스 가용성 모니터링: 웹 서버, 데이터베이스, 메일 서버 등의 서비스 포트 상태 확인
  • 네트워크 연결성 점검: 방화벽이나 네트워크 구성 변경 후 연결성 확인
  • 장애 감지: 서비스 중단이나 네트워크 장애를 사전에 감지
  • 성능 모니터링: 연결 지연 시간을 측정하여 네트워크 성능 분석
  • 보안 점검: 열려있지 않아야 할 포트의 개방 상태 모니터링

수집 설정 속성:

수집 설정 - TCP 포트 상태

  • 원격지 포트: 확인할 대상 TCP 포트 번호를 입력하세요.
  • 원격지 호스트 IP 목록: 쉼표(,)로 구분된 IP 주소 또는 도메인 이름 목록을 입력하세요(예: localhost, example.com). 도메인 주소는 내부적으로 IP 주소로 변환되어 처리됩니다.
  • 타임아웃: TCP 연결 시도 후 응답을 기다릴 최대 시간을 밀리초 단위로 입력하세요(기본값: 0, 제한 없음).

수집되는 정보:

필드명유형설명예시
_time타임스탬프포트 상태 확인 시점의 타임스탬프2024-12-01 10:30:15
host문자열대상 호스트 IP 주소 또는 도메인명198.51.100.10, example.com
port32비트 정수확인한 TCP 포트 번호80, 443, 22
status문자열포트 연결 상태open (열림), closed (닫힘), timeout (시간 초과)
response_time32비트 정수응답 시간 (밀리초)15, 100, 5000
error_message문자열연결 실패 시 오류 메시지Connection refused, Timeout
WTMP

로컬 호스트의 WTMP 이벤트 로그를 수집합니다.

동작 방식:

WTMP 수집기는 Unix/Linux 시스템의 /var/log/wtmp 파일을 모니터링하여 사용자 로그인, 로그아웃, 시스템 부팅, 종료 등의 이벤트를 실시간으로 수집합니다. 운영체제별로 다른 WTMP 로그 형식을 지원하며, 바이너리 형태의 WTMP 데이터를 구조화된 로그 데이터로 변환합니다.

적용 시나리오:

  • 사용자 접근 감사: 시스템에 접속하는 사용자의 로그인/로그아웃 이력 추적
  • 보안 모니터링: 비정상적인 로그인 시도나 권한 없는 접근 감지
  • 시스템 가용성 추적: 시스템 재부팅이나 서비스 중단 이벤트 모니터링
  • 세션 관리: 사용자 세션 지속 시간 및 동시 접속자 수 분석
  • 규정 준수: 접근 기록 보관 및 감사 요구사항 충족

수집 설정 속성:

수집 설정 - WTMP

  • 파일 경로: 수집할 로그 파일의 절대 경로를 지정하세요(기본값: /var/log/wtmp).
  • 운영체제 유형: 로그 형식에 맞는 운영체제를 선택하세요(기본값: linux). linux, solaris, solaris_x86, aix, hpux 중에서 선택할 수 있습니다.
  • 호스트 IP: dst_ip 필드에 기록할 IP 주소를 입력하세요. WTMP 로그는 기본적으로 IP 주소나 호스트 정보를 포함하지 않으므로, 하나의 테이블에 여러 호스트의 로그를 수집하는 경우 이 값을 지정해 호스트를 구분할 수 있습니다.

수집되는 정보:

필드명유형설명예시
_time타임스탬프로그 이벤트 발생 시점의 타임스탬프2024-12-01 10:30:15
type32비트 정수이벤트 타입7 (user process), 8 (dead process)
user문자열사용자명root, user1, ssh
line문자열터미널 또는 디바이스명pts/0, tty1, console
id문자열세션 식별자pts/0, tty1
pid32비트 정수프로세스 ID12345, 67890
exit_status32비트 정수프로세스 종료 상태0 (정상), 1 (오류)
session32비트 정수세션 ID1001, 1002
src_ipIPv4 주소접속 원격지 IP 주소198.51.100.20
dst_ipIPv4 주소접속 대상 IP 주소 (설정한 호스트 IP)198.51.100.10
디렉터리 와처

로컬 호스트의 지정된 디렉터리에서 여러 개의 로그 파일을 수집합니다.

동작 방식:

  1. 디렉터리 모니터링: 디렉터리 경로에서 파일이름 패턴과 일치하는 모든 파일을 조회합니다.
  2. 날짜 필터링: 경로 날짜 추출 포맷모니터링 대상 일수가 설정된 경우, 지정된 기간 내의 파일만 선별합니다.
  3. 증분 수집: 각 파일의 마지막 읽은 위치를 기억하여, 새로 추가된 내용만 수집합니다.
  4. 다중 파일 처리: 여러 파일을 동시에 모니터링하며, 각 파일의 수집 상태를 독립적으로 관리합니다.
  5. 실시간 감지: 디렉터리에 새로운 파일이 추가되거나 기존 파일에 내용이 추가되면 자동으로 감지하여 수집합니다.

적용 시나리오:

  • 일자별 로그 수집: 날짜별로 생성되는 여러 로그 파일을 한 번에 모니터링(예: app-2024-12-01.log, app-2024-12-02.log)
  • 패턴 기반 수집: 특정 패턴을 가진 모든 로그 파일을 자동으로 감지하고 수집
  • 로컬 시스템 모니터링: /var/log 디렉터리의 여러 시스템 로그를 통합 수집
  • 애플리케이션 로그 통합: 여러 애플리케이션이 동일 디렉터리에 생성하는 로그 파일들을 일괄 수집

수집 설정 속성:

수집 설정 - 디렉터리 와처

  • 디렉터리 경로: 로그 파일을 수집할 대상 디렉터리의 절대 경로를 지정하세요(예: /var/log).

  • 파일이름 패턴: 수집 대상 로그 파일 이름을 나타내는 정규표현식을 입력하세요(예: secure(-\d{8})?$). 날짜 기반 필터링이 필요한 경우 정규표현식의 그룹 ()으로 날짜 부분을 캡처할 수 있습니다(예: secure-(\d{4})(\d{2})(\d{2})$).

  • 날짜 정규표현식: 로그에서 날짜 및 시간 문자열을 추출할 정규표현식을 입력하세요.

    • RHEL 계열 배포본의 secure 로그에서 날짜를 추출하는 정규표현식 예시

      \b([A-Z][a-z]{2})\s+(\d{1,2})\s+(\d{2}:\d{2}:\d{2})\b
      
    • 괄호 (())로 감싸진 각 그룹을 순서대로 공백 없이 이어 붙여 하나의 날짜 문자열을 생성합니다. 이 문자열이 날짜 포맷날짜 로케일로 파싱됩니다.

      예시: "Aug" + " " + "1" + " " + "14:19:23" → "Aug 1 14:19:23"
      
  • 날짜 포맷: 날짜 정규표현식으로 추출된 문자열을 파싱할 Java SimpleDateFormat 패턴을 지정하세요(예: MMM d HH:mm:ss). 날짜 로케일에 따라 월 이름(MMM) 등의 파싱이 달라집니다.

  • 날짜 로케일: 날짜 문자열에 적용할 언어를 en, ja, zh, ko 중에서 선택하세요(기본값: en).

  • 시간대: 시간대를 선택하세요. API를 사용해 수집기를 구성하는 경우 KST 또는 Asia/Seoul와 같은 형식으로 시간대를 지정할 수 있습니다.

  • 로그 시작 구분 정규표현식: 여러 행으로 구성된 로그의 시작을 식별하는 정규표현식을 입력하세요. 미지정 시 개행 문자가 로그 구분자로 사용됩니다.

  • 로그 끝 구분 정규표현식: 여러 행으로 구성된 로그의 끝을 식별하는 정규표현식을 입력하세요. 미지정 시 개행 문자가 로그 구분자로 사용됩니다.

  • 문자 집합: 텍스트 파일의 문자 인코딩을 지정하세요(기본값: utf-8).

    • 문자 집합은 IANA Charset Sets Registry에 등록된 Preferred MIME Name 또는 Aliases를 사용합니다.
    • 입력란은 대소문자를 구분하지 않습니다.
  • 파일이름 태그: 수집한 원본 파일 이름(예: access.log)을 기록할 필드 이름을 입력하세요. 미지정 시 원본 파일 이름을 기록하지 않습니다.

  • 경로 태그: 원본 파일의 전체 경로(예: /var/log/nginx/access.log)를 기록할 필드 이름을 입력하세요. 미지정 시 원본 파일 경로를 기록하지 않습니다.

  • 경로 날짜 추출 포맷: 파일이름 패턴에서 추출된 날짜 문자열을 파싱할 Java SimpleDateFormat 패턴을 지정하세요. 파일이름 패턴에서 괄호 ()로 감싼 부분들이 날짜를 나타내는 경우, 이 부분들을 순서대로 연결하여 해당 포맷으로 변환합니다(예: 파일이름 패턴 secure-(\d{4})(\d{2})(\d{2})$와 경로 날짜 추출포맷 yyyyMMdd를 설정하면, secure-20241215 파일에서 20241215를 추출).

  • 모니터링 대상 일수: 경로 날짜 추출 포맷을 통해 파일명에서 추출한 날짜를 기준으로 지정한 일수 이내의 파일만 수집하도록 설정할 수 있습니다(기본값: 제한 없음).

  • 파일 끝 수집 활성화: 여러 행으로 구성된 로그에서 로그 끝 구분 정규표현식과 매칭되지 않더라도 파일의 물리적 끝(EOF)에 도달했을 때 미완성 로그를 수집할지 설정합니다(기본값: false).

    • true: EOF에 도달하면 로그 끝 패턴이 없어도 미완성 로그를 수집합니다.
    • false: 로그 끝 패턴과 매칭되는 완전한 로그만 수집하고, 미완성 로그는 버립니다.
  • 개행 문자: 개행 문자로 사용할 문자를 유니코드 이스케이프 형식으로 입력하세요(기본값: \u000A). SYMBL에서 유니코드 값을 참고하세요.

수집되는 정보:

필드명유형설명예시
_time타임스탬프로그 이벤트 발생 시점의 타임스탬프2024-12-01 10:30:15
line문자열원본 로그 메시지198.51.100.1 - - [01/Dec/2024:10:30:15 +0900] "GET / HTTP/1.1" 200 1024
파일이름 태그문자열원본 파일명 (파일이름 태그 설정 시)access.log, app-2024-12-01.log
경로 태그문자열원본 파일의 전체 경로 (경로 태그 설정 시)/var/log/nginx/access.log
  • 파일이름 태그경로 태그를 설정한 경우, 사용자가 지정한 태그명이 실제 필드명이 됩니다.
    • 예: 파일이름 태그를 filename으로 설정 → filename 필드에 파일명 저장
    • 예: 경로 태그를 filepath로 설정 → filepath 필드에 파일 경로 저장
  • 로그 내용 파싱은 별도로 설정된 파서에 의해 수행되며, 위 표는 수집기 자체에서 제공하는 기본 필드입니다.
로테이션 로그 파일

로컬 호스트에서 주기적으로 이름이 바뀌는 로테이션 로그 파일을 수집합니다.

동작 방식:

  1. 활성 파일 모니터링: 파일 경로로 지정된 현재 활성 로그 파일(예: access.log)을 지속적으로 모니터링합니다.
  2. 증분 수집: 파일의 마지막 읽은 위치를 기억하여, 새로 추가된 내용만 수집합니다.
  3. 로테이션 감지: 파일이 로테이션되어 크기가 줄어들거나 새 파일로 교체되면 자동으로 감지합니다.
  4. 연속 수집: 로테이션 후에도 새로운 활성 로그 파일에서 계속해서 로그를 수집합니다.

적용 시나리오:

주기적으로 로테이션되는 단일 로그 파일을 지속적으로 모니터링해야 하는 환경에서 사용하세요(예: access.logaccess.log.1access.log.2와 같이 현재 활성 파일의 이름은 항상 동일하지만 내용이 계속 변경되는 로그).

수집 설정 속성:

수집 설정 - 로테이션 로그 파일

  • 파일 경로: 현재 활성 로그 파일의 절대 경로를 지정하세요(예: /var/log/nginx/access.log). 로테이션된 파일(access.log.1, access.log.2)이 아닌 현재 쓰여지고 있는 파일 경로를 입력합니다.

  • 문자 집합: 텍스트 파일의 문자 인코딩을 지정하세요(기본값: utf-8).

    • 문자 집합은 IANA Charset Sets Registry에 등록된 Preferred MIME Name 또는 Aliases를 사용합니다.
    • 입력란은 대소문자를 구분하지 않습니다.
  • 날짜 정규표현식: 로그에서 날짜 및 시간 문자열을 추출할 정규표현식을 입력하세요.

    • 웹 서버 로그에서 날짜를 추출하는 정규표현식 예시

      \[(\d{2})/([A-Za-z]{3})/(\d{4}):(\d{2}:\d{2}:\d{2}) (\+\d{4})\]
      
    • 괄호 (())로 감싸진 각 그룹을 순서대로 공백 없이 이어 붙여 하나의 날짜 문자열을 생성합니다. 이 문자열이 날짜 포맷날짜 로케일로 파싱됩니다.

      예시: "01" + "Dec" + "2024" + "10:30:15" + "+0900" → "01Dec202410:30:15+0900"
      
  • 날짜 포맷: 날짜 정규표현식으로 추출된 문자열을 파싱할 Java SimpleDateFormat 패턴을 지정하세요(예: ddMMMyyyyHH:mm:ss Z). 날짜 로케일에 따라 월 이름(MMM) 등의 파싱이 달라집니다.

  • 날짜 로케일: 날짜 문자열에 적용할 언어를 en, ja, zh, ko 중에서 선택하세요(기본값: en).

  • 시간대: 시간대를 선택하세요. API를 사용해 수집기를 구성하는 경우 KST 또는 Asia/Seoul와 같은 형식으로 시간대를 지정할 수 있습니다.

  • 로그 시작 정규표현식: 여러 행으로 구성된 로그의 시작을 식별하는 정규표현식을 입력하세요. 미지정 시 개행 문자가 로그 구분자로 사용됩니다.

  • 로그 끝 정규표현식: 여러 행으로 구성된 로그의 끝을 식별하는 정규표현식을 입력하세요. 미지정 시 개행 문자가 로그 구분자로 사용됩니다.

  • 파일 끝 수집 활성화: 여러 행으로 구성된 로그에서 로그 끝 구분 정규표현식과 매칭되지 않더라도 파일의 물리적 끝(EOF)에 도달했을 때 미완성 로그를 수집할지 설정합니다(기본값: false).

    • true: EOF에 도달하면 로그 끝 패턴이 없어도 미완성 로그를 수집합니다.
    • false: 로그 끝 패턴과 매칭되는 완전한 로그만 수집하고, 미완성 로그는 버립니다.
  • 개행 문자: 개행 문자로 사용할 문자를 유니코드 이스케이프 형식으로 입력하세요(기본값: \u000A). SYMBL에서 유니코드 값을 참고하세요.

수집되는 정보:

필드유형설명예시
_time타임스탬프로그 이벤트 발생 시점의 타임스탬프2024-12-01 10:30:15
line문자열원본 로그 메시지198.51.100.1 - - [01/Dec/2024:10:30:15 +0900] "GET / HTTP/1.1" 200 1024
Note
로테이션 로그 파일은 파일이름 태그와 경로 태그를 지원하지 않습니다. 단일 파일을 지속적으로 모니터링하는 용도로 설계되어 파일명 정보를 별도로 기록하지 않습니다.
리눅스 계정 이벤트 탐지

로컬 호스트에서 계정 목록 파일의 변경 사항을 감지하여 계정 생성/삭제 이벤트를 수집합니다.

동작 방식:

  1. 파일 모니터링: 지정된 파일 경로의 계정 목록 파일(기본값: /etc/passwd)을 주기적으로 모니터링합니다.
  2. 계정 비교: 이전 수집 시점과 현재 계정 목록을 비교하여 변경 사항을 감지합니다.
  3. 이벤트 생성: 계정이 추가되거나 삭제된 경우 해당 이벤트를 로그로 생성합니다.
  4. 상태 저장: 현재 계정 목록을 저장하여 다음 수집 시점에 비교 기준으로 활용합니다.

적용 시나리오:

시스템 보안 모니터링이 필요한 환경에서 사용하세요(예: 서버에서 계정이 무단으로 생성되거나 삭제되는 상황을 실시간으로 감지하여 보안 이벤트로 기록).

수집 설정 속성:

수집 설정 - 리눅스 계정 이벤트 탐지

  • 파일 경로: 계정 정보가 포함된 파일의 절대 경로를 지정하세요(기본값: /etc/passwd).
  • 호스트 IP 주소: host_ip 필드에 기록할 IP 주소를 입력하세요(기본값: 없음).
  • 호스트 이름: host_name 필드에 기록할 호스트 이름을 입력하세요(기본값: 없음).

수집되는 정보:

필드유형설명예시
_time타임스탬프계정 변경 감지 시점2024-12-01 10:30:15
account문자열변경된 계정명testuser, admin
action문자열수행된 작업 (생성 또는 삭제)create, delete
host_ipIP 주소호스트 IP 주소 (설정 시)198.51.100.10
host_name문자열호스트 이름 (설정 시)web-server-01
리커시브 GZIP 디렉터리 와처

로컬 호스트에서 지정한 디렉터리 및 하위 디렉터리 내의 GZIP 압축 텍스트 로그 파일을 재귀적으로 탐색하여 수집합니다.

동작 방식:

  1. 재귀적 탐색: 지정된 디렉터리 경로에서 시작하여 하위 디렉터리 포함 설정에 따라 하위 디렉터리까지 재귀적으로 탐색합니다.
  2. 디렉터리 필터링: 디렉터리 경로 패턴이 설정된 경우, 패턴과 일치하는 디렉터리만 탐색 대상으로 선별합니다.
  3. 파일 필터링: 파일이름 패턴과 일치하는 GZIP 파일들만 수집 대상으로 선별합니다.
  4. GZIP 압축 해제: 각 GZIP 파일을 실시간으로 압축 해제하여 내용을 읽습니다.
  5. 파일 삭제 옵션: 수집 완료 후 원본 GZIP 파일을 삭제할 수 있습니다.

적용 시나리오:

복잡한 디렉터리 구조에서 압축된 로그 파일들을 일괄 수집할 때 사용하세요(예: /var/log/app1/, /var/log/app2/, /var/log/system/ 등 여러 하위 디렉터리에 산재된 *.gz 파일들을 한 번에 수집하면서 저장 공간 절약을 위해 삭제하는 경우).

수집 설정 속성:

수집 설정 - 리커시브 GZIP 디렉터리 와처

  • 디렉터리 경로: GZIP 파일을 수집할 대상 디렉터리의 절대 경로를 지정하세요(예: /var/log).

  • 파일이름 패턴: 수집 대상 GZIP 로그 파일 이름을 나타내는 정규표현식을 입력하세요(예: secure-(\d{4})(\d{2})(\d{2})\.gz$).

  • 하위 디렉터리 포함: 하위 디렉터리에 있는 로그 파일도 함께 수집할지 여부를 설정하세요(기본값: false).

  • 디렉터리 경로 패턴: 수집 대상 디렉터리를 필터링할 정규표현식을 입력하세요(선택사항). 이 패턴과 일치하는 디렉터리만 탐색합니다.

  • 날짜 정규표현식: 로그에서 날짜 및 시간 문자열을 추출할 정규표현식을 입력하세요.

    • RHEL 계열 배포본의 secure 로그에서 날짜를 추출하는 정규표현식 예시

      \b([A-Z][a-z]{2})\s+(\d{1,2})\s+(\d{2}:\d{2}:\d{2})\b
      
    • 괄호 (())로 감싸진 각 그룹을 순서대로 공백 없이 이어 붙여 하나의 날짜 문자열을 생성합니다. 이 문자열이 날짜 포맷날짜 로케일로 파싱됩니다.

      예시: "Dec" + " " + "10" + " " + "15:30:42" → "Dec 10 15:30:42"
      
  • 날짜 포맷: 날짜 정규표현식으로 추출된 문자열을 파싱할 Java SimpleDateFormat 패턴을 지정하세요(예: MMM d HH:mm:ss). 날짜 로케일에 따라 월 이름(MMM) 등의 파싱이 달라집니다.

  • 날짜 로케일: 날짜 문자열에 적용할 언어를 en, ja, zh, ko 중에서 선택하세요(기본값: en).

  • 시간대: 시간대를 선택하세요. API를 사용해 수집기를 구성하는 경우 KST 또는 Asia/Seoul와 같은 형식으로 시간대를 지정할 수 있습니다.

  • 로그 시작 구분 정규표현식: 여러 행으로 구성된 로그의 시작을 식별하는 정규표현식을 입력하세요. 미지정 시 개행 문자가 로그 구분자로 사용됩니다.

  • 로그 끝 구분 정규표현식: 여러 행으로 구성된 로그의 끝을 식별하는 정규표현식을 입력하세요. 미지정 시 개행 문자가 로그 구분자로 사용됩니다.

  • 문자 집합: GZIP 압축을 해제한 후 텍스트 파일의 문자 인코딩을 지정하세요(기본값: utf-8).

    • 문자 집합은 IANA Charset Sets Registry에 등록된 Preferred MIME Name 또는 Aliases를 사용합니다.
    • 입력란은 대소문자를 구분하지 않습니다.
  • 파일이름 태그: 수집한 원본 파일 이름(예: secure-20241210.gz)을 기록할 필드 이름을 입력하세요. 미지정 시 원본 파일 이름을 기록하지 않습니다.

  • 경로 태그: 원본 파일의 전체 경로(예: /var/log/app1/secure-20241210.gz)를 기록할 필드 이름을 입력하세요. 미지정 시 원본 파일 경로를 기록하지 않습니다.

  • 경로 날짜 추출 포맷: 파일이름 패턴에서 추출된 날짜 문자열을 파싱할 Java SimpleDateFormat 패턴을 지정하세요. 파일이름 패턴에서 괄호 ()로 감싼 부분들이 날짜를 나타내는 경우, 이 부분들을 순서대로 연결하여 해당 포맷으로 변환합니다(예: 파일이름 패턴 secure-(\d{4})(\d{2})(\d{2})$와 경로 날짜 추출포맷 yyyyMMdd를 설정하면, secure-20241215 파일에서 20241215를 추출).

  • 모니터링 대상 일수: 경로 날짜 추출 포맷을 통해 파일명에서 추출한 날짜를 기준으로 지정한 일수 이내의 파일만 수집하도록 설정할 수 있습니다(기본값: 0 = 제한 없음).

  • 파일 끝 수집 활성화: 여러 행으로 구성된 로그에서 로그 끝 구분 정규표현식과 매칭되지 않더라도 파일의 물리적 끝(EOF)에 도달했을 때 미완성 로그를 수집할지 설정합니다(기본값: false).

    • true: EOF에 도달하면 로그 끝 패턴이 없어도 미완성 로그를 수집합니다.
    • false: 로그 끝 패턴과 매칭되는 완전한 로그만 수집하고, 미완성 로그는 버립니다.
  • 개행 문자: 개행 문자로 사용할 문자를 유니코드 이스케이프 형식으로 입력하세요(기본값: \u000A). SYMBL에서 유니코드 값을 참고하세요.

  • GZIP 파일 삭제: 수집 완료 후 GZIP 파일을 삭제할지 여부를 설정하세요(기본값: false). true로 설정하면 수집 후 원본 GZIP 파일이 디렉터리에서 삭제됩니다.

    Note
    GZIP 파일 삭제 기능을 사용하려면 로그프레소 노드/센트리를 실행하는 프로세스 사용자 계정이 해당 .gz 파일에 대한 삭제 권한을 가지고 있어야 합니다.

수집되는 정보:

필드유형설명예시
line문자열압축 해제된 원본 로그 한 줄의 전체 내용Dec 10 15:30:42 server01 sshd[1234]
_time타임스탬프로그에서 추출된 시간 정보2024-12-10 15:30:42
파일이름 태그문자열수집한 파일의 이름 (설정 시)secure-20241210.gz
경로 태그문자열수집한 파일의 전체 경로 (설정 시)/var/log/app1/secure-20241210.gz
리커시브 디렉터리 와처

로컬 호스트에서 지정한 디렉터리 및 하위 디렉터리 내의 텍스트 로그 파일을 재귀적으로 탐색하여 수집합니다.

동작 방식:

  1. 재귀적 탐색: 지정된 디렉터리 경로에서 시작하여 하위 디렉터리 포함 설정에 따라 하위 디렉터리까지 재귀적으로 탐색합니다.
  2. 디렉터리 필터링: 디렉터리 경로 패턴이 설정된 경우, 패턴과 일치하는 디렉터리만 탐색 대상으로 선별합니다.
  3. 파일 필터링: 파일이름 패턴과 일치하는 텍스트 파일들만 수집 대상으로 선별합니다.
  4. 증분 수집: 각 파일의 마지막 읽은 위치부터 새로운 로그만 수집합니다.

적용 시나리오:

복잡한 디렉터리 구조에서 텍스트 로그 파일들을 일괄 수집할 때 사용하세요(예: /var/log/app1/, /var/log/app2/, /var/log/system/ 등 여러 하위 디렉터리에 산재된 일반 텍스트 로그 파일들을 한 번에 수집하는 경우).

수집 설정 속성:

수집 설정 - 리커시브 디렉터리 와처

  • 디렉터리 경로: 로그 파일을 수집할 대상 디렉터리의 절대 경로를 지정하세요(예: /var/log).

  • 파일이름 패턴: 수집 대상 로그 파일 이름을 나타내는 정규표현식을 입력하세요(예: secure-(\d{4})(\d{2})(\d{2})$).

  • 하위 디렉터리 포함: 하위 디렉터리에 있는 로그 파일도 함께 수집할지 여부를 설정하세요(기본값: false).

  • 디렉터리 경로 패턴: 수집 대상 디렉터리를 필터링할 정규표현식을 입력하세요(선택사항). 이 패턴과 일치하는 디렉터리만 탐색합니다.

  • 날짜 정규표현식: 로그에서 날짜 및 시간 문자열을 추출할 정규표현식을 입력하세요.

    • RHEL 계열 배포본의 secure 로그에서 날짜를 추출하는 정규표현식 예시

      \b([A-Z][a-z]{2})\s+(\d{1,2})\s+(\d{2}:\d{2}:\d{2})\b
      
    • 괄호 (())로 감싸진 각 그룹을 순서대로 공백 없이 이어 붙여 하나의 날짜 문자열을 생성합니다. 이 문자열이 날짜 포맷날짜 로케일로 파싱됩니다.

      예시: "Dec" + " " + "10" + " " + "15:30:42" → "Dec 10 15:30:42"
      
  • 날짜 포맷: 날짜 정규표현식으로 추출된 문자열을 파싱할 Java SimpleDateFormat 패턴을 지정하세요(예: MMM d HH:mm:ss). 날짜 로케일에 따라 월 이름(MMM) 등의 파싱이 달라집니다.

  • 날짜 로케일: 날짜 문자열에 적용할 언어를 en, ja, zh, ko 중에서 선택하세요(기본값: en).

  • 시간대: 시간대를 선택하세요. API를 사용해 수집기를 구성하는 경우 KST 또는 Asia/Seoul와 같은 형식으로 시간대를 지정할 수 있습니다.

  • 로그 시작 구분 정규표현식: 여러 행으로 구성된 로그의 시작을 식별하는 정규표현식을 입력하세요. 미지정 시 개행 문자가 로그 구분자로 사용됩니다.

  • 로그 끝 구분 정규표현식: 여러 행으로 구성된 로그의 끝을 식별하는 정규표현식을 입력하세요. 미지정 시 개행 문자가 로그 구분자로 사용됩니다.

  • 문자 집합: 텍스트 파일의 문자 인코딩을 지정하세요(기본값: utf-8).

    • 문자 집합은 IANA Charset Sets Registry에 등록된 Preferred MIME Name 또는 Aliases를 사용합니다.
    • 입력란은 대소문자를 구분하지 않습니다.
  • 파일이름 태그: 수집한 원본 파일 이름(예: secure-20241210)을 기록할 필드 이름을 입력하세요. 미지정 시 원본 파일 이름을 기록하지 않습니다.

  • 경로 태그: 원본 파일의 전체 경로(예: /var/log/app1/secure-20241210)를 기록할 필드 이름을 입력하세요. 미지정 시 원본 파일 경로를 기록하지 않습니다.

  • 경로 날짜 추출 포맷: 파일이름 패턴에서 추출된 날짜 문자열을 파싱할 Java SimpleDateFormat 패턴을 지정하세요. 파일이름 패턴에서 괄호 ()로 감싼 부분들이 날짜를 나타내는 경우, 이 부분들을 순서대로 연결하여 해당 포맷으로 변환합니다(예: 파일이름 패턴 secure-(\d{4})(\d{2})(\d{2})$와 경로 날짜 추출포맷 yyyyMMdd를 설정하면, secure-20241215 파일에서 20241215를 추출).

  • 모니터링 대상 일수: 경로 날짜 추출 포맷을 통해 파일명에서 추출한 날짜를 기준으로 지정한 일수 이내의 파일만 수집하도록 설정할 수 있습니다(기본값: 0 = 제한 없음).

  • 파일 끝 수집 활성화: 여러 행으로 구성된 로그에서 로그 끝 구분 정규표현식과 매칭되지 않더라도 파일의 물리적 끝(EOF)에 도달했을 때 미완성 로그를 수집할지 설정합니다(기본값: false).

    • true: EOF에 도달하면 로그 끝 패턴이 없어도 미완성 로그를 수집합니다.
    • false: 로그 끝 패턴과 매칭되는 완전한 로그만 수집하고, 미완성 로그는 버립니다.
  • 개행 문자: 개행 문자로 사용할 문자를 유니코드 이스케이프 형식으로 입력하세요(기본값: \u000A). SYMBL에서 유니코드 값을 참고하세요.

수집되는 정보:

필드유형설명예시
line문자열원본 로그 한 줄의 전체 내용Dec 10 15:30:42 server01 sshd[1234]
_time타임스탬프로그에서 추출된 시간 정보2024-12-10 15:30:42
파일이름 태그문자열수집한 파일의 이름 (설정 시)secure-20241210
경로 태그문자열수집한 파일의 전체 경로 (설정 시)/var/log/app1/secure-20241210
멀티 로테이션 로그 파일

로컬 호스트에서 디렉터리 내 패턴과 일치하는 모든 로테이션 로그 파일을 수집합니다.

동작 방식:

  1. 디렉터리 탐색: 지정된 디렉터리 경로에서 파일이름 패턴과 일치하는 모든 파일을 탐색합니다.
  2. 재귀적 탐색: 하위 디렉터리 포함 설정에 따라 하위 디렉터리까지 재귀적으로 탐색합니다.
  3. 로테이션 감지: 각 파일의 첫 번째 줄을 기록하여 로테이션 발생을 감지합니다.
  4. 다중 파일 수집: 패턴과 일치하는 모든 로테이션 파일을 동시에 수집합니다.
  5. GZIP 지원: 압축된 로테이션 파일(.gz)도 자동으로 압축 해제하여 수집합니다.

적용 시나리오:

여러 로테이션 파일을 일괄 수집해야 할 때 사용하세요(예: /var/log/ 디렉터리에 있는 access.log, access.log.1, access.log.2.gz 등 모든 로테이션 파일을 한 번에 수집하거나, 하위 디렉터리에 산재된 다양한 로테이션 파일들을 전체적으로 수집하는 경우).

로테이션 로그 파일과의 차이점:

구분로테이션 로그 파일멀티 로테이션 로그 파일
수집 방식특정 파일 1개 + 로테이션 시 1개디렉터리 내 패턴 매칭 모든 파일
설정 방식파일 경로 직접 지정디렉터리 경로 + 파일이름 패턴
로테이션 수집현재 파일 + 최근 로테이션 1개만패턴에 매칭되는 모든 로테이션 파일
하위 디렉터리지원하지 않음재귀적 순회 지원
파일이름 태그지원하지 않음원본 파일명 태그 지원
GZIP 처리지원하지 않음자동 압축 해제
적용 상황실시간 연속 수집 환경과거 로테이션 파일 전체 수집 환경

수집기 선택 가이드:

  • 로테이션 로그 파일을 선택하는 경우:

    • 현재 활성 파일의 실시간 수집이 주 목적
    • 로테이션 시점의 데이터 누락만 방지하면 충분
    • 시스템 리소스 최적화가 중요
    • 예: 웹 서버 액세스 로그의 실시간 모니터링
  • 멀티 로테이션 로그 파일을 선택하는 경우:

    • 과거 로테이션 파일들도 모두 수집해야 함
    • 디렉터리 내 여러 종류의 로그 파일 일괄 수집
    • 하위 디렉터리까지 검색이 필요
    • GZIP 압축된 로테이션 파일도 처리해야 함
    • 예: 장애 분석을 위한 전체 로그 수집

수집 설정 속성:

수집 설정 - 멀티 로테이션 로그 파일

  • 디렉터리 경로: 로그 파일을 수집할 대상 디렉터리의 절대 경로를 지정하세요(예: /var/log).

  • 파일이름 패턴: 수집 대상 로그 파일 이름을 나타내는 정규표현식을 입력하세요(예: access\.log(\.\d+)?(\.gz)?$).

  • 하위 디렉터리 포함: 하위 디렉터리에 있는 로그 파일도 함께 수집할지 여부를 설정하세요(기본값: false).

  • 디렉터리 경로 패턴: 수집 대상 디렉터리를 필터링할 정규표현식을 입력하세요(선택사항). 이 패턴과 일치하는 디렉터리만 탐색합니다.

  • 날짜 정규표현식: 로그에서 날짜 및 시간 문자열을 추출할 정규표현식을 입력하세요.

    • 웹 서버 로그에서 날짜를 추출하는 정규표현식 예시

      \[(\d{2}/[A-Za-z]{3}/\d{4}:\d{2}:\d{2}:\d{2} [+-]\d{4})\]
      
    • 괄호 (())로 감싸진 각 그룹을 순서대로 공백 없이 이어 붙여 하나의 날짜 문자열을 생성합니다. 이 문자열이 날짜 포맷날짜 로케일로 파싱됩니다.

  • 날짜 포맷: 날짜 정규표현식으로 추출된 문자열을 파싱할 Java SimpleDateFormat 패턴을 지정하세요(예: dd/MMM/yyyy:HH:mm:ss Z). 날짜 로케일에 따라 월 이름(MMM) 등의 파싱이 달라집니다.

  • 날짜 로케일: 날짜 문자열에 적용할 언어를 en, ja, zh, ko 중에서 선택하세요(기본값: en).

  • 시간대: 시간대를 선택하세요. API를 사용해 수집기를 구성하는 경우 KST 또는 Asia/Seoul와 같은 형식으로 시간대를 지정할 수 있습니다.

  • 로그 시작 구분 정규표현식: 여러 행으로 구성된 로그의 시작을 식별하는 정규표현식을 입력하세요. 미지정 시 개행 문자가 로그 구분자로 사용됩니다.

  • 로그 끝 구분 정규표현식: 여러 행으로 구성된 로그의 끝을 식별하는 정규표현식을 입력하세요. 미지정 시 개행 문자가 로그 구분자로 사용됩니다.

  • 문자 집합: 텍스트 파일의 문자 인코딩을 지정하세요(기본값: utf-8).

    • 문자 집합은 IANA Charset Sets Registry에 등록된 Preferred MIME Name 또는 Aliases를 사용합니다.
    • 입력란은 대소문자를 구분하지 않습니다.
  • 파일이름 태그: 수집한 원본 파일 이름(예: access.log.1.gz)을 기록할 필드 이름을 입력하세요. 미지정 시 원본 파일 이름을 기록하지 않습니다.

  • 경로 태그: 원본 파일의 전체 경로(예: /var/log/nginx/access.log.2)를 기록할 필드 이름을 입력하세요. 미지정 시 원본 파일 경로를 기록하지 않습니다.

  • 파일 끝 수집 활성화: 여러 행으로 구성된 로그에서 로그 끝 구분 정규표현식과 매칭되지 않더라도 파일의 물리적 끝(EOF)에 도달했을 때 미완성 로그를 수집할지 설정합니다(기본값: false).

    • true: EOF에 도달하면 로그 끝 패턴이 없어도 미완성 로그를 수집합니다.
    • false: 로그 끝 패턴과 매칭되는 완전한 로그만 수집하고, 미완성 로그는 버립니다.
  • 개행 문자: 개행 문자로 사용할 문자를 유니코드 이스케이프 형식으로 입력하세요(기본값: \u000A). SYMBL에서 유니코드 값을 참고하세요.

수집되는 정보:

필드유형설명예시
line문자열원본 로그 한 줄의 전체 내용198.51.100.1 - - [01/Dec/2024:10:30:15 +0900] "GET / HTTP/1.1" 200 1024
_time타임스탬프로그에서 추출된 시간 정보2024-12-01 10:30:15
파일이름 태그문자열수집한 파일의 이름 (설정 시)access.log.1.gz
경로 태그문자열수집한 파일의 전체 경로 (설정 시)/var/log/nginx/access.log.2
설정 파일 변경 탐지

로컬 호스트의 설정 파일 변경 내역을 실시간으로 감지하고, 변경된 내용을 수집합니다.

동작 방식:

  1. 파일 해시 관리: 각 설정 파일의 해시값을 계산하여 이전 상태와 비교합니다.
  2. 변경 감지: 해시값이 변경된 경우에만 변경 이벤트를 생성하여 수집합니다.
  3. 바이너리 파일 제외: 바이너리 파일은 자동으로 감지하여 수집 대상에서 제외합니다.
  4. 백업 및 차이점 추출: 옵션에 따라 이전 버전을 백업하고 변경 내역을 추출합니다.

적용 시나리오:

시스템 설정 파일의 변경을 추적해야 할 때 사용하세요(예: /etc/ 디렉터리의 *.conf 파일들을 모니터링하여 설정 변경 감사 로그를 수집하거나, 애플리케이션 설정 파일의 무단 변경을 탐지하는 경우).

수집 설정 속성:

수집 설정 - 설정 파일 변경 탐지

  • 디렉터리 경로: 설정 파일을 감시할 디렉터리의 절대 경로를 입력하세요(예: /etc).
  • 파일이름 패턴: 변경을 감지할 대상 파일 이름을 지정하는 정규표현식을 입력하세요(예: .*\.conf$).
  • 파일이름 태그: 변경된 파일의 이름을 기록할 필드 이름을 입력하세요. 미지정 시 파일 이름을 기록하지 않습니다.
  • 파일 내용 추가: 변경된 파일의 전체 내용을 수집할지 여부를 설정하세요(기본값: false).
    • true로 설정하면, 변경된 파일의 전체 내용이 file_content 필드에 기록됩니다.
    • 기록되는 파일 내용은 최대 128KB로 제한됩니다.
  • 변경사항 추가: 변경 전/후 내용을 비교한 차이점을 기록할지 여부를 설정하세요(기본값: false).
    • true로 설정하면, 변경된 부분의 차이점이 file_diff 필드에 기록됩니다.
    • 변경 내역은 최대 128KB까지만 기록됩니다.
    • 이 기능을 사용하면 이전 버전의 파일이 자동으로 백업됩니다.
  • 파일 인코딩: 감시할 파일의 문자 인코딩 방식을 지정하세요(기본값: utf-8).
    • 문자 집합은 IANA Charset Sets Registry에 등록된 Preferred MIME Name 또는 Aliases를 사용합니다.
    • 입력란은 대소문자를 구분하지 않습니다.

수집되는 정보:

필드유형설명예시
_time타임스탬프파일 변경 감지 시점2024-12-01 10:30:15
path문자열변경된 파일의 전체 경로/etc/nginx/nginx.conf
old_hash문자열변경 전 파일의 해시값e3b0c44298fc1c149afbf4c8996fb924
new_hash문자열변경 후 파일의 해시값a665a45920422f9d417e4867efdc4fb8
파일이름 태그문자열변경된 파일의 이름 (설정 시)nginx.conf
file_content문자열변경된 파일의 전체 내용 (설정 시)server { listen 80; ... }
file_diff문자열변경 전/후 차이점 (설정 시)- listen 8080;\n+ listen 80;
스트림 쿼리 출력

실시간으로 실행되는 스트림 쿼리의 출력 결과를 수집합니다.

동작 방식:

  1. 스트림 연결: 지정된 스트림 쿼리에 파이프로 연결하여 실시간 출력을 수신합니다.
  2. 패시브 수집: 다른 데이터 소스를 주기적으로 폴링하지 않고, 스트림의 출력이 있을 때만 수집합니다.
  3. 원본 필드 보존: 스트림 쿼리의 모든 출력 필드를 그대로 보존하여 로그로 저장합니다.
  4. 시간 정보 처리: 스트림 결과에 _time 필드가 있으면 해당 시간을 사용하고, 없으면 현재 시간을 사용합니다.

적용 시나리오:

실시간 분석 결과를 장기 보관하거나 다른 시스템으로 전달해야 할 때 사용하세요(예: 실시간 이상 탐지 스트림 쿼리의 결과를 로그로 저장하여 감사 추적하거나, 실시간 집계 결과를 외부 시스템으로 전송하는 경우).

수집 설정 속성:

수집 설정 - 스트림 쿼리 출력

  • 스트림 쿼리 이름: 수집할 스트림 쿼리의 이름을 입력하세요. 스트림 쿼리 이름은 system streams 명령의 출력 결과에서 name 필드를 통해 확인할 수 있습니다.

수집되는 정보:

필드유형설명예시
_time타임스탬프스트림 결과의 시간 (또는 수집 시점)2024-12-01 10:30:15
기타 필드다양스트림 쿼리에서 출력하는 모든 필드를 그대로 보존count: 42, source: "web01"
Note
스트림 쿼리 출력 수집기는 연결된 스트림 쿼리의 모든 출력 필드를 그대로 보존합니다. 실제 수집되는 필드는 스트림 쿼리의 내용에 따라 달라집니다.
시스로그 수집기

원격 호스트가 로그프레소 소나로 전송하는 시스로그 메시지를 수집합니다.

동작 방식:

시스로그 수집기는 지정한 UDP 포트에서 RFC 5424 및 RFC 3164 표준을 따르는 시스로그 메시지를 수신하는 패시브(passive) 수집기입니다. 원격 시스템에서 전송되는 시스로그 메시지를 실시간으로 수집하며, 설정된 필터 조건에 따라 특정 설비(facility)나 IP 주소 범위의 메시지만 선별적으로 수집할 수 있습니다. 또한 정규표현식을 사용하여 메시지 내용에서 날짜를 추출하고 파싱하여 정확한 이벤트 시점을 기록합니다.

적용 시나리오:

  • 네트워크 장비 로그 수집: 라우터, 스위치, 방화벽 등의 네트워크 장비에서 전송되는 시스로그 메시지 수집
  • 서버 시스템 로그 통합: 여러 리눅스/유닉스 서버의 시스로그를 중앙 집중식으로 수집
  • 보안 이벤트 모니터링: 보안 장비나 시스템에서 전송되는 보안 관련 시스로그 메시지 실시간 모니터링
  • 애플리케이션 로그 수집: 시스로그 프로토콜을 사용하는 애플리케이션의 로그 메시지 수집
  • IoT 디바이스 로그: 시스로그를 지원하는 IoT 디바이스나 임베디드 시스템의 로그 수집

수집 설정 속성:

수집 설정 - 시스로그 수집기

  • 원격지 IP: 시스로그 메시지를 전송하는 원격지 IP 주소 또는 주소 대역을 입력하세요.

    • 다음과 같은 형식을 사용할 수 있습니다:
      • 단일 IP 주소: 192.0.2.1
      • IP 범위: 192.0.2.1-192.0.2.254
      • CIDR 표기법: 192.0.2.0/24
  • 포트: 시스로그 메시지를 수신할 UDP 포트를 지정하세요 (기본값: 514). 설정하지 않으면 모든 포트에서 수신합니다.

  • 시스로그 설비 목록: 수집할 시스로그의 Facility와 Severity 조합을 RFC 5424에 정의된 PRI 상수값으로 지정하세요. PRI 상수값은 Facility × 8 + Severity로 계산됩니다. 여러 값을 쉼표(,)로 구분해서 입력할 수 있습니다.

    자세한 PRI 상수값 계산 방법과 참조표는 시스로그 설비 및 우선순위 참조표를 참고하세요.

    • 기본값: 없음 (미지정 시 모든 facility의 메시지를 수집)
    • 특정 값: 해당 PRI 상수값의 메시지만 수집 (예: 134 또는 134,135,136)
  • 날짜 정규표현식: 시스로그 메시지에서 날짜 및 시간을 추출할 정규표현식을 입력하세요. 설정하지 않으면 메시지 수신 시점 시각을 사용합니다.

  • 날짜 포맷: 날짜 정규표현식으로 추출된 문자열을 파싱할 Java SimpleDateFormat 패턴을 지정하세요(예: yyyy-MM-dd HH:mm:ss).

    • MMM날짜 로케일에 따라 다르게 해석됩니다(예: Jan (en), 1월 (ko)).
  • 날짜 로케일: 날짜 문자열에 적용할 언어를 en, ja, zh, ko 중에서 선택하세요(기본값: en).

  • 시간대: 시간대를 선택하세요. API를 사용해 수집기를 구성하는 경우 KST 또는 Asia/Seoul와 같은 형식으로 시간대를 지정할 수 있습니다.

  • 정규식 필터: 메시지 본문에서 특정 패턴과 일치하는 라인만 수집하도록 하는 정규표현식 필터입니다. 설정하지 않으면 모든 메시지를 수집합니다. 이 옵션은 폐기 예정이므로 필터 설정을 사용하세요.

수집되는 정보:

필드유형설명예시
_time타임스탬프로그 이벤트 발생 시점2024-12-01 10:30:15
line문자열원본 시스로그 메시지<134>Dec 1 10:30:15 server01 sshd[1234]: Accepted publickey
facility정수시스로그 설비(Facility) 번호16 (local0)
severity정수시스로그 심각도(Severity) 번호6 (info)
syslog_ipIP 주소시스로그 메시지를 전송한 원격지 IP 주소192.0.2.10
syslog_port정수시스로그 메시지를 수신한 로컬 포트514

프로토콜 지원 및 설정 방법:

웹 콘솔에서 설정한 시스로그 수집기는 UDP만 지원합니다 (기본 포트: 514). TCP 또는 TLS 시스로그 서버를 사용하려면 시스로그 메시지를 수신할 노드(전달 노드 또는 수집 노드)의 로컬 로그프레소 셸에서 별도로 설정해야 합니다:

  • TCP: syslog.opentcp 서버명 [포트] [바인드주소] [문자집합] (기본 포트: 514)
  • TLS: syslog.opentls 서버명 키별칭 [포트] [바인드주소] [문자집합] [신뢰별칭] (기본 포트: 6514)

서버명은 시스로그 서버 인스턴스를 식별하기 위한 고유한 이름입니다(예: firewall-logs, web-servers). 현재 등록된 서버 목록은 syslog.servers 명령어로 확인할 수 있습니다.

시스로그를 전송하는 원격 시스템은 로그프레소 소나의 바인드 주소(IP 주소)와 설정된 포트로 시스로그를 전송하도록 구성되어야 합니다.

외부 프로그램

로그프레소 소나에서 외부 프로그램을 실행하고, 해당 프로그램의 표준 출력을 수집합니다.

동작 방식:

외부 프로그램 수집기는 지정된 명령어를 주기적으로 실행하는 액티브(active) 수집기입니다. 실행된 프로그램의 표준 출력(stdout)을 읽어서 로그로 수집하며, 표준 오류(stderr)는 오류 처리 목적으로 모니터링합니다. 프로그램이 정상 종료(exit code 0)하지 않으면 임시 오류 상태로 설정되어 다음 수집 주기에 재시도합니다.

적용 시나리오:

  • 시스템 상태 모니터링: ps, df, iostat 등의 시스템 명령어를 통한 상태 수집
  • 네트워크 상태 확인: ping, netstat, ss 등의 네트워크 진단 명령어 실행
  • 사용자 정의 스크립트: 커스텀 스크립트나 도구의 출력 수집
  • 데이터베이스 쿼리: CLI 도구를 통한 데이터베이스 상태 확인
  • 애플리케이션 메트릭: 애플리케이션별 CLI 도구를 통한 메트릭 수집

수집 설정 속성:

수집 설정 - 외부 프로그램

  • 명령어: 실행할 외부 프로그램의 전체 명령줄(command line)을 입력하세요. 명령어와 인수를 포함한 완전한 형태로 입력해야 합니다.
    • 예시: uname -a, df -h, ps aux, /usr/local/bin/custom-monitor.sh

수집되는 정보:

필드유형설명예시
_time타임스탬프명령어 실행 시점2024-12-01 10:30:15
line문자열외부 프로그램의 표준 출력 전체Linux server01 5.4.0-74-generic #83-Ubuntu
Note
외부 프로그램 수집기는 명령어의 전체 표준 출력을 하나의 로그 레코드로 수집합니다. 여러 줄의 출력이 있어도 하나의 line 필드에 모두 포함되며, 개행 문자도 그대로 보존됩니다. 명령어 실행 실패 시 표준 오류는 별도로 모니터링되지만 로그로 수집되지는 않습니다.
윈도우 XML 이벤트 로그

윈도우 센트리에서 이벤트 로그를 수집합니다. 이 수집기는 윈도우 센트리에서 설정할 수 있습니다.

동작 방식:

윈도우 XML 이벤트 로그 수집기는 Windows Event API (wevtapi.dll)를 사용하여 윈도우 이벤트 로그를 실시간으로 수집하는 패시브(passive) 수집기입니다. 지정된 채널에서 발생하는 이벤트를 XML 형식으로 수집하며, XPath 쿼리를 통한 필터링과 이벤트 ID 기반 선별 수집을 지원합니다. 북마크 기능을 사용하여 수집 위치를 기억하므로 서비스 재시작 시에도 중복 없이 연속적으로 수집할 수 있습니다.

적용 시나리오:

  • 보안 모니터링: Security 채널에서 로그인, 권한 변경, 파일 접근 등의 보안 이벤트 수집
  • 시스템 감사: System 채널에서 시스템 시작/종료, 서비스 상태 변경 등의 시스템 이벤트 수집
  • 애플리케이션 추적: Application 채널에서 애플리케이션 오류, 경고 등의 이벤트 수집
  • 장치 관리: DeviceSetupManager에서 장치 설치, 제거 등의 하드웨어 관련 이벤트 수집
  • 컴플라이언스: 특정 이벤트 ID만 선별 수집하여 규정 준수 요구사항 충족

수집 설정 속성:

수집 설정 - 윈도우 XML 이벤트 로그

  • 채널 경로: 수집할 윈도우 이벤트 로그의 채널 경로를 입력하세요. 이 설정은 필수입니다.
    • 예시: Microsoft-Windows-DeviceSetupManager/Operational, Security, System, Application
  • 필터 쿼리: 이벤트를 필터링할 XPath 쿼리 문자열을 입력하세요. 설정하지 않으면 모든 이벤트 로그를 수집합니다.
    • 예시: *[System/Level=4] (경고 레벨), *[System/EventID=4624] (성공적인 로그인)
  • 이벤트 ID 필터: 수집할 이벤트 ID를 쉼표(,)로 구분해 입력하세요. 설정하지 않으면 모든 이벤트 ID를 수집합니다.
    • 예시: 4624,4625,4648 (로그인 관련 이벤트), 1000,1001,1002
  • 호스트 IP: host_ip 필드에 기록할 IP 주소를 입력하세요. 설정하지 않으면 IP 정보가 추가되지 않습니다.
    • 예시: 192.0.2.10, 198.51.100.20

수집되는 정보:

필드유형설명예시
_time타임스탬프윈도우 이벤트 발생 시점 (UTC 기준)2024-12-01 10:30:15
xml문자열원본 XML 형식의 이벤트 데이터<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">...
line문자열이벤트의 텍스트 메시지 (가능한 경우)An account was successfully logged on.
host_ipIP 주소호스트 IP 주소 (설정 시)192.0.2.10

추가 XML 파싱 필드:

XML 파싱을 통해 다음과 같은 추가 필드들이 자동으로 추출됩니다:

  • provider: 이벤트 제공자
  • event_id: 이벤트 ID
  • level: 이벤트 레벨 (Critical, Error, Warning, Information, Verbose)
  • channel: 이벤트 채널
  • computer: 컴퓨터 이름
  • user_id: 사용자 SID (해당하는 경우)
Note
윈도우 XML 이벤트 로그 수집기는 윈도우 센트리에서만 동작하며, Windows Event API를 사용하므로 적절한 권한이 필요합니다. 수집기는 북마크를 사용하여 마지막 수집 위치를 기억하므로, 센트리 재시작 후에도 중복 없이 연속적으로 이벤트를 수집할 수 있습니다.
일자별 디렉터리

로컬 호스트에서 날짜별로 생성되는 디렉터리를 순회하며, 지정한 파일 이름 패턴과 일치하는 모든 로그 파일을 수집합니다.

동작 방식:

일자별 디렉터리 수집기는 날짜 기반 디렉터리 구조에서 로그 파일을 수집하는 액티브(active) 수집기입니다. 디렉터리 이름에서 날짜를 추출하여 지정된 기간 내의 디렉터리만 스캔하며, 각 디렉터리에서 파일명 패턴과 일치하는 파일들을 수집합니다. 실시간 모니터링과 과거 로그 수집을 모두 지원하며, 멀티라인 로그 처리와 파일 태깅 기능을 제공합니다.

적용 시나리오:

  • 애플리케이션 로그: 날짜별 디렉터리로 구성된 애플리케이션 로그 (/app/logs/2024/12/01/app.log)
  • 시스템 로그: 날짜별로 분리 저장되는 시스템 로그 파일들
  • 백업 로그 분석: 과거 특정 기간의 로그를 일괄 수집하여 분석
  • 감사 로그: 컴플라이언스를 위한 장기간 보관 로그의 체계적 수집

수집 대상 예시:

/var/log/nginx/       ← "디렉터리 경로" 설정값
├── 20241201/         ← 날짜별 디렉터리
│   ├── access-01.log ← 파일 이름에 시간 정보 포함
│   ├── ⁝
│   └── access-23.log
├── 20241202/         ← 날짜별 디렉터리
│   ├── access-01.log ← 파일 이름에 시간 정보 포함
│   ├── ⁝
│   └── access-23.log
└── 20241203/         ← 날짜별 디렉터리
    ├── access-01.log ← 파일 이름에 시간 정보 포함
    ├── ⁝
    └── access-23.log

수집 설정 속성:

수집 설정 - 일자별 디렉터리

  • 모니터링 기간: 실시간으로 파일 변화를 감지할 기간을 일수로 설정하세요 (기본값: 0, 범위: 0-100000). 0으로 설정하면 실시간 수집이 비활성화됩니다.

  • 디렉터리 경로: 로그 파일을 수집할 대상 디렉터리의 절대 경로를 지정하세요.

    • 예시: /var/log/httpd, /app/logs, /data/audit
  • 파일이름 패턴: 수집 대상 로그 파일 이름을 나타내는 정규표현식을 입력하세요.

    • 예시: access\.log.*, app-\d{4}-\d{2}-\d{2}\.log, .*\.txt$
  • 디렉터리 날짜 정규표현식: 디렉터리 경로에서 날짜 문자열을 추출할 정규표현식을 입력하세요. 설정하지 않으면 디렉터리명 기반 날짜 필터링을 사용하지 않습니다.

    • 예시: /(\d{4})/(\d{2})/(\d{2})/, /(\d{8})/
  • 디렉터리 날짜 포맷: 디렉터리 날짜 정규표현식으로 추출된 문자열을 파싱할 Java SimpleDateFormat 패턴을 입력하세요 (기본값: yyyyMMdd).

    • 예시: yyyy/MM/dd, yyyyMMdd, yyyy-MM-dd
  • 과거 로그 수집 시작 일자: 과거 로그 수집의 시작일을 yyyyMMdd 형식으로 입력하세요. 입력하지 않으면 과거 로그 수집이 비활성화됩니다.

  • 과거 로그 수집 끝 일자: 과거 로그 수집의 종료일을 yyyyMMdd 형식으로 입력하세요. 입력하지 않으면 과거 로그 수집이 비활성화됩니다.

  • 날짜 정규표현식: 로그에서 날짜 및 시간 문자열을 추출할 정규표현식을 입력하세요. 설정하지 않으면 파일 수정 시간을 사용합니다.

    웹 서버 로그에서 날짜를 추출하는 정규표현식 예시:

    \[(\d{2}/[A-Za-z]{3}/\d{4}:\d{2}:\d{2}:\d{2} [+-]\d{4})\]
    

    괄호 (())로 감싼 문자열 그룹을 이어 붙여 날짜 문자열을 생성하며, 이 문자열은 날짜 포맷날짜 로케일에 따라 파싱됩니다.

  • 날짜 포맷: 날짜 정규표현식으로 추출된 문자열을 파싱할 Java SimpleDateFormat 패턴을 지정하세요.

    • 예시: dd/MMM/yyyy:HH:mm:ss Z, yyyy-MM-dd HH:mm:ss
  • 날짜 로케일: 날짜 문자열에 적용할 언어를 en, ja, zh, ko 중에서 선택하세요 (기본값: en).

  • 시간대: 시간대를 선택하세요. API를 사용해 수집기를 구성하는 경우 KST 또는 Asia/Seoul와 같은 형식으로 시간대를 지정할 수 있습니다.

  • 로그 시작 구분 정규표현식: 여러 행으로 구성된 로그의 시작을 식별하는 정규표현식을 입력하세요. 미지정 시 개행 문자가 로그 구분자로 사용됩니다.

  • 로그 끝 구분 정규표현식: 여러 행으로 구성된 로그의 끝을 식별하는 정규표현식을 입력하세요. 미지정 시 개행 문자가 로그 구분자로 사용됩니다.

  • 문자 집합: 텍스트 파일의 문자 인코딩을 지정하세요 (기본값: utf-8).

    • 문자 집합은 IANA Charset Sets Registry에 등록된 Preferred MIME Name 또는 Aliases를 사용합니다.
    • 입력란은 대소문자를 구분하지 않습니다.
  • 파일이름 태그: 수집한 파일 이름을 기록할 필드 이름을 입력하세요. 설정하지 않으면 파일명 정보가 추가되지 않습니다.

  • 파일 끝 수집 활성화: 여러 행으로 구성된 로그에서 로그 끝 구분 정규표현식과 매칭되지 않더라도 파일의 물리적 끝(EOF)에 도달했을 때 미완성 로그를 수집할지 설정합니다 (기본값: false).

    • true: EOF에 도달하면 로그 끝 패턴이 없어도 미완성 로그를 수집합니다.
    • false: 로그 끝 패턴과 매칭되는 완전한 로그만 수집하고, 미완성 로그는 버립니다.
  • 개행 문자: 개행 문자로 사용할 문자를 유니코드 이스케이프 형식으로 입력하세요 (기본값: \u000A). SYMBL에서 유니코드 값을 참고하세요.

수집되는 정보:

필드유형설명예시
_time타임스탬프로그 이벤트 발생 시점2024-12-01 10:30:15
line문자열원본 로그 메시지192.0.2.1 - - [01/Dec/2024:10:30:15 +0900]
파일이름 태그문자열원본 파일명 (설정 시)access.log, app-20241201.log
  • 파일이름 태그 필드는 사용자가 설정한 실제 태그 이름으로 대체됩니다. 예를 들어 파일이름 태그를 filename으로 설정하면 filename 필드에 원본 파일 이름을 기록합니다.
웹키퍼 (구 버전)

마이크로소프트 SQL 서버를 사용하는 소만사 웹키퍼 시스템에서 데이터를 수집합니다. 엘라스틱서치를 사용하는 최신 버전의 웹키퍼를 사용하는 경우, 웹키퍼 앱을 앱 스토어에서 내려받아 사용하세요.

동작 방식:

웹키퍼 수집기는 마이크로소프트 SQL 서버에 직접 연결하여 웹키퍼 데이터베이스에서 네트워크 트래픽 및 보안 이벤트 데이터를 수집하는 액티브(active) 수집기입니다. 지정된 에이전트의 데이터를 주기적으로 쿼리하여 수집하며, 수집 기준 일자부터 시작하여 연속적으로 데이터를 가져옵니다. 대용량 데이터 처리를 위해 수집 반복 횟수를 제한할 수 있으며, 첨부파일 목록 수집도 선택적으로 지원합니다.

적용 시나리오:

  • 네트워크 보안 분석: 웹키퍼에서 수집된 네트워크 트래픽 패턴 분석
  • 웹 접근 모니터링: 웹사이트 접근 로그 및 사용자 행동 패턴 분석
  • 보안 사고 조사: 특정 기간의 네트워크 활동 데이터 수집 및 분석
  • 컴플라이언스 보고: 네트워크 사용 현황 및 정책 준수 확인
  • 데이터 마이그레이션: 구 버전 웹키퍼 시스템의 데이터를 로그프레소로 이관

수집 설정 속성:

수집 설정 - 웹키퍼

  • 데이터베이스 IP: 수집 대상 마이크로소프트 SQL 서버의 IP 주소를 입력하세요.
  • 데이터베이스 접속 포트: SQL 서버에 접속할 포트를 입력하세요 (기본값: 1433).
  • 데이터베이스 계정: 데이터베이스에 접속할 사용자 계정을 입력하세요.
  • 데이터베이스 암호: 데이터베이스 계정의 암호를 입력하세요.
  • 에이전트 UID: 수집 대상 네트워크 에이전트의 UID를 입력하세요.
  • 파일 목록 추가: 첨부파일 목록도 함께 수집할지 여부를 설정하세요 (기본값: false).
  • 수집 기준 일자: 수집을 시작할 기준 시각을 yyyy-MM-dd HH:00:00 형식으로 입력하세요. 입력하지 않으면 로거가 시작된 시점부터 데이터를 수집합니다.
  • 수집 반복 횟수 제한: 수집 주기마다 수행할 최대 SQL 쿼리 개수를 지정하세요 (기본값: 0, 제한 없음).

이 수집기는 마이크로소프트 SQL 서버 기반의 구 버전 웹키퍼 시스템용입니다. 엘라스틱서치 기반의 최신 웹키퍼를 사용하는 경우 앱 스토어에서 최신 웹키퍼 앱을 설치하여 사용하시기 바랍니다.

수집 설정이 불필요한 수집기들

다음 수집기들은 별도 설정 없이 활성화만으로 데이터를 수집합니다.

수집기설명
sFlow네트워크 장비에서 전송되는 sFlow v5 패킷을 수집
디스크 사용량노드 또는 센트리 호스트의 디스크 사용현황 정보를 수집
센트리 성능 로그센트리의 성능 로그를 수집
시스템 경보시스템에서 발생한 경보 이벤트를 수집
포워더 성능 로그전달 노드의 성능 로그를 수집
필터 설정

필터 설정은 수집된 원본 레코드 중 저장할 레코드와 제외할 레코드를 정의하는 기능입니다.

필터 설정

  • 정규식 패턴: 검색 대상 로그 레코드를 식별하기 위한 정규표현식을 입력하세요.
  • 대상 필드: 정규식 패턴을 적용할 입력 필드를 입력하세요(기본값: line).
  • 필터 방식: 정규식 패턴과 일치하는 레코드에 대한 처리 방식을 지정하세요.
    • 패턴 매칭된 로그만 수집(기본값)
    • 패턴 매칭된 로그만 버림

정규식 패턴을 설정하지 않고, 필터 방식도 기본값으로 둘 경우 모든 원본 레코드를 수집합니다.

수집기 제어

활성화/비활성화

추가된 수집기의 기본 상태는 비활성입니다. 수집기를 활성화하려면 추가한 수집기의 활성화 토글 버튼을 클릭하세요.

수집기의 활성화

수집 상태 초기화

수집기의 수집 건수수집 용량을 초기화할 수 있습니다.

  1. 수집기 목록에서 초기화할 수집기를 선택하세요.

  2. 목록 우측 상단의 초기화 버튼을 클릭하세요.

  3. 수집 상태 초기화 대화상자에서 초기화할 수집기 목록을 확인하고 초기화 버튼을 클릭하세요.

Caution
수집기를 초기화하면 이전에 수집한 데이터를 다시 수집합니다. 이로 인해 테이블에 중복된 데이터가 발생할 수 있으므로, 운영 환경에서는 가급적 초기화를 피하세요.
수집기 그룹 변경

수집기를 수집기 그룹에 할당하거나, 소속 수집기 그룹을 변경하려면,

  1. 수집기 목록에서 수집기 그룹을 할당/변경할 수집기를 선택한 다음, 도구 모음에서 이동 버튼을 클릭하세요.

    수집기 그룹을 변경할 수집기 선택 및 이동

  2. 수집기를 다른 그룹으로 이동 대화상자에서 수집기를 할당할 그룹을 선택하고 확인 버튼을 클릭하세요.

    수집기 그룹을 변경할 수집기 선택 및 이동

수집기 수정

  1. 수집기 목록에서 수정할 수집기의 이름을 클릭하세요.

    수정할 수집기 선택 - 이름을 클릭

  2. 수집기 수정 화면에서 필요한 정보를 수정한 후 확인 버튼을 클릭하세요.

    • 설정 항목에 대한 설명은 수집기 추가를 참고하세요.
    • 적재 위치, 수집 위치, 수집 모델 항목은 수정할 수 없습니다.

수집기 삭제

Caution
실시간 탐지 시나리오에서 사용 중인 수집기를 삭제하면, 해당 시나리오는 더 이상 데이터를 수신할 수 없습니다. 수집기를 삭제하기 전, 연동된 기능이 없는지 반드시 확인하세요.
  1. 수집기 목록에서 삭제할 수집기를 선택하세요.

  2. 목록 우측 상단에서 삭제 버튼을 클릭하세요.

    수집기 삭제

  3. 수집기 삭제 대화상자에서 삭제할 수집기 목록을 확인한 후 삭제를 클릭하세요.

    수집기 삭제 대화상자

    • 테이블도 함께 삭제를 선택하면 수집기와 연결된 테이블 및 저장된 데이터도 함께 삭제됩니다.
    • 활성화된 수집기를 삭제하려고 하면 경고 메시지가 표시됩니다.