설치 매뉴얼
개요
소만사 Privacy-i가 내보낸 JSON 로그 파일을 소나로 수집합니다. 로그 파일이 쌓이는 호스트에 소나가 SFTP로 접속해 파일을 읽어오며, Privacy-i가 로그를 적재하는 엘라스틱서치 인덱스에서 직접 가져오는 방식도 지원합니다.
앱이 제공하는 전용 파서가 로그 종류를 판별해 코드값을 한국어 표기로 정규화하고 필드 이름을 스키마에 맞게 바꿉니다. 파서가 다루는 로그 종류와 정규화 스키마는 아래와 같습니다.
| 필드 접두사 | 로그 종류 | 로그 스키마 |
|---|---|---|
action_ | 개인정보 파일 조치 결과 | privacy-i-action |
dlog_ | Discover 개인정보 검사 결과 | privacy-i-discover-log |
dfile_ | Discover 개인정보 검출 파일 | privacy-i-discover-file |
elog_ | 엔드포인트 정책 위반 사고 | privacy-i-endpoint-log |
efile_ | 엔드포인트 사고 파일 상세 | privacy-i-endpoint-file |
eevt_ | 엔드포인트 사용자 행위 이벤트 | privacy-i-endpoint-event |
적용 범위
요구 사항
| 항목 | 요구사항 | 비고 |
|---|---|---|
| 파일 접근 권한 | 로그 파일 디렉터리와 하위 디렉터리에 대한 읽기 권한 | 원격 수집 시 SFTP 접속 계정, 로컬 수집 시 소나 수집 노드 계정 |
| 소나 권한 | 시스템 관리 권한 | 수집 > 수집기, 시스템 > 접속 프로파일 메뉴 접근 |
| 네트워크 허용 | TCP/22 (소나 수집 노드 → 로그 파일 호스트) | 로그 파일 호스트에서 Inbound 허용, 소나 수집 노드에서 Outbound 허용. SSH 포트를 변경한 경우 해당 포트 |
| 엘라스틱서치 앱 (대안 방식) | 엘라스틱서치 인덱스에서 직접 수집할 때만 필요 | 엘라스틱서치 인덱스에서 직접 수집 참고 |
로그프레소 수집 설정
로그 파일이 쌓이는 디렉터리 경로와 파일 이름 규칙은 Privacy-i 담당자를 통해 확인합니다. 경로는 로그 전송 설정에 따라 달라지며, 아래 단계의 디렉터리 경로와 파일이름 패턴 입력에 사용합니다.
단계 1: 접속 프로파일 추가
SFTP 수집기는 SSH 유형의 접속 프로파일로 로그 파일 호스트에 접속합니다. 시스템 > 접속 프로파일에서 추가를 클릭하고 아래 값을 입력합니다.
| 구분 | 항목 | 설정 |
|---|---|---|
| 필수 | 이름 | 접속 프로파일을 식별할 고유한 이름 |
| 필수 | 식별자 | 로그프레소 쿼리 등에서 사용할 접속 프로파일의 고유 식별자 |
| 필수 | 유형 | SSH 선택 |
| 필수 | 호스트 | 로그 파일 호스트 IP 또는 호스트명. 예: 192.0.2.1 |
| 필수 | 포트 | SSH 포트. 기본값 22 |
| 필수 | 계정 | 로그 파일 읽기 권한이 있는 SSH 계정. 예: test_user |
| 필수 | 인증 유형 | 인증 키 또는 암호 선택. 기본값은 인증 키 |
| 선택 | 암호 | 인증 유형이 암호인 경우 입력 |
| 필수 | 타임아웃 | 초 단위 접속 제한 시간. 기본값 30 |
| 선택 | 접속 유지 시간 | Keep-Alive 간격. 밀리초 단위이며 미지정 시 60000 |
인증 유형을 인증 키로 지정하는 경우, 인증 유형 옆의 공개키 설정 방법 버튼에서 소나의 SSH 공개키를 확인해 로그 파일 호스트의 해당 계정 authorized_keys 파일에 등록해야 합니다. 등록 전에는 접속 테스트가 실패합니다.
입력을 마친 뒤 접속 테스트를 실행해 결과가 성공인지 확인합니다.
단계 2: 수집기 추가
수집 > 수집기에서 추가를 클릭하고 아래 값을 입력합니다. 수집 모델 아래의 설정 항목은 수집 모델의 유형에 따라 달라집니다.
| 구분 | 항목 | 설정 |
|---|---|---|
| 필수 | 이름 | 수집기를 식별할 고유한 이름 |
| 필수 | 수집 모델 | Privacy-i 선택 |
| 필수 | 적재 위치/수집 위치 | 로그프레소 플랫폼 구성에 따라 적합한 노드 선택 |
| 필수 | SSH 프로파일 | 단계 1에서 등록한 접속 프로파일 선택 |
| 필수 | 디렉터리 경로 | 로그 파일이 들어 있는 디렉터리를 절대 경로로 입력 |
| 필수 | 파일이름 패턴 | 수집 대상 파일 이름에 일치하는 정규식 입력 |
| 선택 | 문자 집합 | 미지정 시 utf-8 |
| 선택 | 파일이름 태그 | 수집한 파일 이름을 남길 필드 이름 |
| 선택 | 경로 날짜 추출 포맷 | 파일 경로에서 날짜를 추출할 포맷. 모니터링 대상 일수와 함께 사용 |
| 선택 | 모니터링 대상 일수 | 추출한 날짜가 지정 일수 이내인 파일만 수집 |
| 필수 | 테이블 | PRIVACY_I로 시작하는 테이블 이름 입력. 예: PRIVACY_I |
- 이 수집 모델은 디렉터리 경로 바로 아래의 파일만 수집하며 하위 디렉터리로 내려가지 않습니다. 디렉터리 경로에 상위 경로나 와일드카드를 넣어도 하위 디렉터리의 파일은 수집되지 않습니다. 파일이 하위 디렉터리로 나뉘어 쌓이는 환경이라면 아래 '로그 파일 보관 구조가 다른 경우' 항목을 참고하세요.
로그 파일 보관 구조가 다른 경우
앱이 제공하는 수집 모델은 SFTP 디렉터리 와처 유형 하나입니다. 아래처럼 보관 구조가 다르면 수집 > 수집 모델에서 해당 유형의 수집 모델을 직접 추가하고, 파서로 Privacy-i를 지정한 뒤 그 모델로 수집기를 만듭니다. 수집기의 설정 항목은 선택한 유형에 따라 달라집니다.
| 로그 파일 보관 구조 | 수집 모델 유형 | 비고 |
|---|---|---|
| 한 디렉터리에 모여 있고 원격 호스트에 있음 | SFTP 디렉터리 와처 | 앱이 제공. 단계 2 그대로 진행 |
| 날짜 등 하위 디렉터리로 나뉘어 있음 | SFTP 일자별 디렉터리 | 디렉터리 경로에 하위 디렉터리의 상위 경로를 지정. 모니터링 기간과 과거 로그 수집 일자 항목이 추가됨 |
| 소나 수집 노드의 로컬 파일시스템에 있음 | 리커시브 디렉터리 와처 | 단계 1의 접속 프로파일이 필요 없음. 하위 디렉터리 포함을 true로 지정 |
엘라스틱서치 인덱스에서 직접 수집
Privacy-i가 로그를 엘라스틱서치에 적재하는 환경에서는 파일을 거치지 않고 인덱스에서 문서를 직접 가져올 수 있습니다. 이 방식은 엘라스틱서치 앱을 함께 설치해야 합니다.
엘라스틱서치 앱을 설치한 뒤 아래 순서로 등록합니다. 각 설정 항목은 엘라스틱서치 앱의 매뉴얼을 참고하세요.
- 시스템 > 접속 프로파일에서
Elasticsearch유형의 접속 프로파일을 추가해 엔드포인트와 인증 정보를 입력합니다. - 수집 > 수집 모델에서 유형을
엘라스틱서치, 파서를Privacy-i로 지정한 수집 모델을 추가합니다. - 수집 > 수집기에서 위 수집 모델과 접속 프로파일을 선택하고, 수집 대상 인덱스 이름과 정렬 기준을 입력합니다. 테이블은
PRIVACY_I로 시작하는 이름을 사용합니다.
이 방식에서는 파서가 문서의 _type 값으로 로그 종류를 판별해 doc_type 필드에 담습니다.
설치 후 검증
아래 쿼리로 수집이 실제로 동작하는지 최종 확인합니다.
- 정상: 10분 내 수집된 레코드 수가 1 이상.
- 비정상: 0이면 SFTP 계정의 파일 읽기 권한, 디렉터리 경로, 파일이름 패턴, 그리고 접속 프로파일의 접속 테스트 결과를 재확인합니다. 파일이 하위 디렉터리에 쌓이고 있지는 않은지도 함께 확인합니다.
로그 종류가 제대로 판별되는지는 아래 쿼리로 확인합니다. 파일 수집은 action·dlog·dfile·elog·efile·eevt, 엘라스틱서치 수집은 pi_ 로 시작하는 값이 나오면 정규화가 적용된 상태입니다.

