설치 매뉴얼
개요
Cloudflare 앱은 다양한 이벤트, 로그를 로그프레소 소나로 수집합니다. 수집 방식은 세 가지입니다. 데이터셋과 환경에 맞는 방식을 선택해 수집합니다.
- (A) 소나가 Cloudflare API를 주기적으로 호출하는 API 폴링
- (B) Cloudflare Logpush가 소나의 HTTP 엔드포인트로 로그를 전송하는 방식
- (C) Cloudflare Logpush가 S3, R2에 적재한 로그를 소나가 읽는 방식
적용 범위
요구 사항
| 항목 | 요구사항 | 비고 |
|---|---|---|
| Cloudflare 계정/권한 | 데이터셋별 읽기 권한(감사 로그는 계정 단위, 방화벽·HTTP·DNS·Spectrum은 존 단위). 블랙리스트 명령 사용 시 방화벽 규칙 편집 권한 | 권한 부족 시 수집·조회 실패 |
| 발급 필요 자격증명 | Cloudflare API 토큰, 계정 ID(Account ID), 필요 시 영역 ID(Zone ID) | Cloudflare 대시보드에서 발급 |
| 네트워크 허용 | API 방식: HTTPS/443 (소나 → api.cloudflare.com, Outbound). Logpush HTTP 방식: Cloudflare → 소나 수집 엔드포인트(Inbound) | 방화벽 정책 반영 필요 |
Cloudflare 설정
단계 1: API 토큰 발급
Cloudflare 대시보드 > My Profile > API Tokens > Create Token에서 사용자 지정 토큰(Create Custom Token)을 만들고, 수집·관리할 대상에 맞는 권한을 부여합니다.
| 데이터셋·기능 | Scope | 권한 그룹 | 수준 |
|---|---|---|---|
| 감사 로그 | Account | Account Settings | Read |
| 방화벽 이벤트 | Zone | Analytics | Read |
| HTTP 요청 | Zone | Logs | Read |
| 블랙리스트(IP 접근 규칙) 조회 | Zone | Firewall Services | Read |
| 블랙리스트(IP 접근 규칙) 추가·삭제 | Zone | Firewall Services | Edit |
발급한 토큰 문자열은 재확인이 불가하므로 안전한 곳에 보관합니다.
단계 2: 계정 ID·영역 ID 확인
- Account ID: Cloudflare 대시보드 계정 홈 또는 대상 도메인 선택 후 Overview 페이지 우측에서 확인합니다.
- Zone ID: 대상 도메인 선택 후 Overview 페이지 우측에서 확인합니다. (존 단위 데이터셋에 필요)
단계 3 (Logpush 방식만): Logpush 작업 생성
Cloudflare 대시보드 > Investigate > Logpush에서 데이터셋(예: Firewall events)을 선택하고 전송 대상을 지정합니다.
- HTTP 방식: 대상 URL을 소나 수집 엔드포인트로 지정합니다.
- S3 방식: 대상 버킷을 지정합니다. 소나는 AWS 앱의 S3 수집기로 해당 버킷을 읽습니다.
로그프레소 수집 설정
단계 1: 접속 프로파일 추가 (API 방식 필수)
시스템 > 접속 프로파일에서 추가를 클릭하고 아래 값을 입력합니다. (API 폴링 방식과 확장 명령어에서 사용)
| 구분 | 항목 | 설정 |
|---|---|---|
| 필수 | 이름 | 접속 프로파일을 식별할 고유한 이름 |
| 필수 | 식별자 | 로그프레소 쿼리에서 사용할 고유 식별자 (예: my_profile) |
| 필수 | 유형 | Cloudflare |
| 필수 | API 토큰 | Cloudflare에서 발급한 API 토큰 |
| 필수 | 계정 ID | Cloudflare Account ID |
| 선택 | 영역 ID | Cloudflare Zone ID (존 단위 데이터셋·명령어에 필요) |
| 선택 | HTTP 프록시 | IP:포트 |
| 선택 | 접속 타임아웃 | 초 단위. 미지정 시 30 |
| 선택 | 읽기 타임아웃 | 초 단위. 미지정 시 30 |
Logpush S3 방식으로 수집하는 경우, S3 버킷 접근을 위한 AWS 접속 프로파일을 추가로 등록해야 합니다. 설정 방법은 AWS 앱 설치 매뉴얼을 참고하세요.
단계 2: 수집기 추가
수집 방식에 따라 수집 모델을 선택해 수집 > 수집기에서 등록합니다. 데이터셋마다 별도 수집기를 등록합니다.
Firewall Events는 WAF_CLOUDFLARE로 시작하는 테이블을 앱 내장 대시보드에서 사용합니다.
방식 A — API 폴링 (접속 프로파일 필요)
| 구분 | 항목 | 설정 |
|---|---|---|
| 필수 | 이름 | 수집기를 식별할 고유한 이름 |
| 필수 | 수집 위치 | 로그프레소 구성에 맞는 노드 |
| 필수 | 수집 모델 | Cloudflare Audit logs (API) / Cloudflare Firewall events (API) / Cloudflare HTTP requests (API) 중 선택 |
| 필수 | 접속 프로파일 | 단계 1의 Cloudflare 유형 프로파일 식별자 |
| 필수 | 테이블 | 데이터셋별 테이블 이름 (예: WAF_CLOUDFLARE) |
| 선택 | 주기 | 데이터셋 권장값 (예: 300) |
데이터셋에 따라 아래 수집기 옵션이 추가로 제공됩니다.
- Audit logs — API 버전:
1또는2선택(기본1). v2는 토큰·원본 요청·리소스 등 확장 필드를 제공합니다. - Firewall events — Enterprise 전용 필드 포함 여부: WAF 공격 점수 등 Enterprise 요금제 전용 필드를 함께 수집할지 지정합니다.
- 공통 — 모니터링 대상 일수(최초 수집 범위)·수집 지연 시간으로 수집 시점을 조정합니다.
방식 B — Logpush HTTP 푸시 (Cloudflare가 소나로 전송, 접속 프로파일 불필요)
| 구분 | 항목 | 설정 |
|---|---|---|
| 필수 | 이름 | 수집기를 식별할 고유한 이름 |
| 필수 | 수집 모델 | Cloudflare {데이터셋} (Logpush HTTP Dest) 선택 |
| 필수 | 테이블 | 데이터셋별 테이블 이름 (예: WAF_CLOUDFLARE) |
| 필수 | 수신 경로 | Cloudflare Logpush 작업의 대상 URL과 일치하는 콜백 경로 |
방식 C — Logpush S3 (AWS 앱의 S3 수집기 사용)
| 구분 | 항목 | 설정 |
|---|---|---|
| 필수 | 수집 모델 | Cloudflare {데이터셋} (Logpush S3) 선택 |
| 필수 | S3 버킷/자격증명 | AWS 앱 수집기 설정에 따름 (Cloudflare Logpush 대상 버킷) |
| 필수 | 테이블 | 데이터셋별 테이블 이름 |
수집기 옵션은 AWS 앱 설치 매뉴얼을 참고하세요.








