메인 콘텐츠로 건너뛰기

SFTP 서버의 로그 파일을 수집하기

목표: 테스트 SFTP 서버의 JSONL 파일을 읽어 Stream/Route로 전달합니다. SFTP-compatible SCP는 별도 모드이며 일반적인 구형 SCP Directory Polling과 동일하지 않습니다.
화면 버전: 표시된 이미지는 과거 Control UI 테스트 캡처입니다. 현재 제품의 기본 5단계 순서(Connect → Sample & Record Selection → Destinations → Route Processing → Deploy)를 우선하세요. 번호별 화면 가이드에서 차이를 설명합니다.

실행 순서와 완료 기준

  1. 필수 정보 준비: Vendor 공식 API/연동 가이드에서 Endpoint, 인증 방식, 최소 권한, Pagination/Checkpoint, 응답 샘플을 확인합니다. 테스트용 비식별 이벤트와 실제 Destination 접속 정보를 준비합니다.
  2. 모르는 항목은 ChatGPT로 정리: 공개 API 문서와 비식별 샘플을 제공하고 Connector 필수 필드, 요청 예시, Event Root, Timestamp/ID, Cursor, 미확인 사항을 표로 요청합니다. Token·비밀번호는 입력하지 않습니다. ChatGPT 답변은 Vendor 문서와 Run Test로 검증합니다.
  3. Connector 생성: Connectors → Create Connector에서 이 페이지의 해당 Source Type을 선택하고 실제 접속·인증 정보를 입력합니다. 저장하고 연결 테스트를 확인합니다.
  4. Destination 생성: Destinations → Create에서 실제 수신기 유형(SYSLOG_UDP/TCP/TLS 또는 WEBHOOK_POST)을 선택하고 Host/Port/URL, TLS/인증을 입력합니다.
  5. Stream 생성: Streams → Create → Connect에서 Connector를 선택하고 Source 요청/수집 조건을 지정합니다.
  6. 샘플과 스키마: Sample & Record Selection → Run Test에서 실제 레코드가 추출되는지 확인합니다. Record Root, Union Schema, Pagination 및 Checkpoint를 확정합니다.
  7. 데이터 처리: Destinations에서 Route를 연결하고 Route Processing에서 Mapping, Timestamp, Enrichment, Masking/Drop/Quarantine을 설정합니다. Tokenization은 실제 제품에서 지원되는 경우에만 사용합니다. Route Effective Status와 최종 출력값을 확인합니다.
  8. 배포와 검증: Deploy의 경고를 해결하고 Stream을 실행합니다. Run ID, Route Logs와 실제 Destination 수신 기록을 비교합니다. 이 세 가지가 일치해야 완료입니다.
  9. 장애 대응: 연결/인증 오류는 API 권한·TLS·Network·429를, 레코드 0건은 Record Root·Pagination을, 전송 실패는 Delivery Incident를, 필드 변경은 Schema Drift를 확인합니다.

ChatGPT 질문 예시

DataRelay Control에서 이 제품의 로그를 수집하려고 합니다. 아래 공개 API 가이드와 비식별 JSON 샘플을 기준으로 Connector 연결·인증 필수값, API Request/Pagination, Event Root, Timestamp/ID/Checkpoint, Mapping·민감 필드 보호, 장애 시 확인 항목을 표로 작성해 주세요. 문서에 없는 정보는 임의로 생성하지 말고 ‘확인 필요’로 표시하세요.

1. 원격 파일 준비

  1. 테스트용 SSH 서버에 /srv/control-demo/events.jsonl 파일을 만들고 다음 한 줄을 저장합니다.
  1. 해당 경로에 읽기/목록 권한만 가진 SSH 계정을 만듭니다.
  2. 일반 sftp 클라이언트로 접속과 파일 읽기를 먼저 확인합니다.
  3. 서버 SSH Host Key Fingerprint를 확인해 기록합니다. 연결 테스트 때문에 Host Key 검증을 끄지 않습니다.

2. Remote File Connector 생성

  1. **Connectors → Create Connector → Remote file polling (SFTP / SFTP-compatible SCP mode)**을 선택합니다.
  2. Connector Name = Lab SFTP, Protocol = sftp를 입력합니다.
  3. 실제 Host, Port(보통 22), Username을 입력합니다.
  4. 허가된 Password 또는 Private key를 설정합니다.
  5. Known hosts에 검증한 호스트 키를 구성하고 검증 Policy는 strict를 사용합니다.
  6. 제공되는 원격 디렉터리/파일 선택 항목에서 /srv/control-demo/events.jsonl 파일을 대상으로 합니다.
  7. 저장한 뒤 지원되는 Remote Connection/List Test로 파일을 조회합니다.

3. Stream과 전송

  1. /streams/new에서 Lab SFTP Connector를 선택하고 Run Test를 실행합니다.
  2. sftp-001 이벤트 레코드가 추출되는지 Record Selection에서 확인합니다.
  3. 테스트 Destination를 지정한 후 Route Processing과 Deploy를 완료합니다.
  4. Stream을 실행하고 Logs의 Route 결과와 실제 수신 파일을 비교합니다.
완료 조건: SFTP 파일 목록/읽기, 이벤트 추출, 독립 Destination 수신 성공이 일치합니다. record-selection — numbered Control historical UI capture 그림 1. 레코드 경로와 Checkpoint 선택. ① 추천 Record Path를 검토하고 ② JSON Tree에서 실제 이벤트 필드를 확인한 다음 ③ Checkpoint Field를 지정합니다. 이 화면은 미확정 상태이므로 경고가 표시되어 있습니다. stream-actions — numbered Control historical UI capture 그림 2. Stream 생성 후 실행 및 로그 확인. ① Stream 생성 결과 확인 → ② 실제 Runtime이 정상일 때 Start Stream → ③ View logs에서 Run과 Route 결과 확인. 캡처에는 Runtime API unavailable이 표시되므로 실제 전송 성공 증거는 아닙니다.

실패 시

  • Host Key 오류: 실제 Host Fingerprint와 Known hosts를 수정합니다. 비보안 검증으로 우회하지 않습니다.
  • Permission denied: SSH 계정의 디렉터리/파일 읽기 권한 확인
  • 레코드 0건: 파일 인코딩/JSONL 형식/Record Root 확인
  • 이벤트 중복: 파일 Rotation 및 Checkpoint/읽기 위치 확인
관련: S3 수집, 전송 장애 대응.
마지막 수정일 2026년 10월 18일