Vector를 사용해 데이터 전송하기
- Managed ClickStack
- 오픈 소스 ClickStack
이 가이드는 Managed ClickStack 서비스를 이미 생성하고 서비스 자격 증명을 기록해 두었다고 가정합니다. 아직 완료하지 않으셨다면, Vector 구성 단계가 나타날 때까지 Managed ClickStack의 시작하기 가이드를 따라 진행하십시오.데이터를 위한 테이블을 생성합니다. 이는 데이터의 출력 스키마와 일치해야 합니다. 아래 예시는 일반적인 Nginx 구조를 가정합니다. 데이터에 맞게 조정하되, 스키마 모범 사례를 따르십시오. 또한 프라이머리 키(Primary key) 개념을 충분히 숙지하고, 여기에 설명된 지침에 따라 프라이머리 키를 선택할 것을 강력히 권장합니다.기본적으로는 각 이벤트를 행당 하나의 JSON 객체로 인코딩하는
데이터베이스 및 테이블 생성
Vector에서 데이터를 수집하기 전에 테이블(table)과 스키마(schema)가 미리 정의되어 있어야 합니다.먼저 데이터베이스(database)를 생성합니다. 이 작업은 ClickHouse Cloud 콘솔에서 수행할 수 있습니다.아래 예시에서는logs를 사용합니다:Nginx 기본 키(primary key)위의 기본 키(primary key)는 ClickStack UI에서 Nginx 로그에 대해 일반적인 액세스 패턴을 기준으로 한 것이지만, 프로덕션 환경에서는 워크로드에 따라 조정해야 할 수 있습니다.
Vector 구성에 ClickHouse 싱크 추가
기존 파이프라인에서 이벤트를 수신할 수 있도록inputs 필드를 업데이트하여 Vector 구성에 ClickHouse 싱크를 추가하십시오.이 구성은 상위 Vector 파이프라인이 이미 대상 ClickHouse 스키마(schema)에 맞게 데이터를 준비해 두었다고 가정합니다. 즉, 필드가 파싱되고, 이름이 올바르게 지정되며, 삽입에 적합한 유형으로 지정되어 있어야 합니다. 원시 로그 라인을 ClickStack에 적합한 스키마로 파싱하고 정규화하는 전체 과정은 아래의 Nginx 예시를 참조하십시오.json_each_row 포맷 사용을 권장합니다. 이 포맷은 JSON 데이터를 수집할 때 ClickStack에서 기본값이자 권장 포맷이며, 문자열로 인코딩한 JSON 객체 같은 대체 포맷보다 우선해서 사용하는 것이 좋습니다.ClickHouse 싱크는 Arrow 스트림 인코딩도 지원합니다(현재 베타). 이 방식은 더 높은 처리량을 제공할 수 있지만, 중요한 제약이 있습니다. 스키마는 시작 시 한 번만 가져오므로 데이터베이스와 테이블은 고정되어 있어야 하며, 동적 라우팅은 지원되지 않습니다. 따라서 Arrow 스트림 인코딩은 고정되고 명확하게 정의된 수집 파이프라인에 가장 적합합니다.사용 가능한 싱크 구성 옵션은 Vector 문서에서 검토하는 것을 권장합니다:위 예시에서는 Managed ClickStack의 기본 사용자를 사용합니다. 프로덕션 배포에서는 적절한 권한과 제한이 적용된 전용 수집 사용자를 생성하는 것을 권장합니다.
ClickStack UI로 이동
Managed ClickStack 서비스로 이동한 다음 왼쪽 메뉴에서 “ClickStack”을 선택합니다. 이미 온보딩을 완료했다면 새 탭에서 ClickStack UI가 열리고 자동으로 인증됩니다. 아직 완료하지 않았다면 온보딩을 진행하면서 입력 소스로 Vector를 선택한 후 “Launch ClickStack”을 선택합니다.데이터 소스 생성
로그 데이터 소스를 생성하세요. 아직 데이터 소스가 없으면 처음 로그인할 때 데이터 소스를 만들라는 안내가 표시됩니다. 이미 있다면 Team Settings로 이동해 새 데이터 소스를 추가하세요.위 구성은time_local 컬럼을 타임스탬프로 사용하는 Nginx 스타일 스키마를 가정합니다. 가능하면 이 컬럼은 프라이머리 키(primary key)에 선언된 타임스탬프 컬럼이어야 합니다. 이 컬럼은 필수입니다.또한 로그 뷰에 어떤 컬럼을 반환할지 명확히 정의하도록 Default SELECT를 업데이트하는 것을 권장합니다. 서비스 이름, 로그 레벨, 본문 컬럼과 같은 추가 필드를 사용할 수 있다면 이 역시 구성할 수 있습니다. 타임스탬프 표시 컬럼이 테이블의 프라이머리 키에 사용된 컬럼이나 위에서 구성한 컬럼과 다르면 이 컬럼도 재정의할 수 있습니다.위 예시에서는 데이터에 Body 컬럼이 없습니다. 대신 사용 가능한 필드를 바탕으로 Nginx 로그 한 줄을 재구성하는 SQL 표현식으로 이를 정의합니다.다른 옵션은 구성 참고를 참조하십시오.데이터 탐색
로그 보기로 이동하여 데이터를 탐색하고 ClickStack 사용을 시작하세요.Vector를 사용한 데이터셋 예시
- Managed ClickStack
- 오픈소스 ClickStack
다음 가이드는 Managed ClickStack 서비스를 이미 생성하고 서비스 자격 증명을 기록해 두었다고 가정합니다. 아직 완료하지 않으셨다면, Vector 구성 단계가 나타날 때까지 Managed ClickStack의 시작하기 가이드를 따르십시오.데이터를 저장할 테이블을 생성하세요.구조화된 필드로부터 로그 라인을 재구성합니다.다른 옵션은 구성 참고를 참조하십시오.
Vector 설치
계속 진행하기 전에 수집 파이프라인을 실행할 시스템에 Vector가 설치되어 있는지 확인하십시오. 환경에 맞는 사전 빌드 바이너리 또는 패키지를 설치하려면 공식 Vector 설치 가이드를 따르십시오.설치한 후에는 아래 구성 단계를 진행하기 전에vector 바이너리를 PATH에서 사용할 수 있는지 확인하십시오.이는 ClickStack OTel collector와 동일한 인스턴스에 설치할 수 있습니다.Vector를 프로덕션 환경으로 이전할 때는 아키텍처 및 보안 모범 사례를 따르십시오.샘플 데이터 다운로드
샘플 데이터셋으로 실험해 보려면 다음 nginx 예시 샘플을 다운로드하십시오.이 데이터는 구문 분석을 쉽게 하기 위해 JSON 포맷으로 로그를 출력하도록 구성된 Nginx 인스턴스에서 수집되었습니다. 해당 로그에 대한 Nginx 구성은 “ClickStack으로 Nginx 로그 모니터링하기”를 참조하십시오.
데이터베이스 및 테이블 생성
Vector는 데이터 수집 전에 테이블과 스키마가 미리 정의되어 있어야 합니다.먼저 데이터베이스를 생성하십시오. 이는 ClickHouse Cloud 콘솔에서 수행할 수 있습니다.logs 데이터베이스를 생성하십시오:Nginx 기본 키(primary key)위의 기본 키(primary key)는 Nginx 로그에 대해 ClickStack UI에서 일반적인 액세스 패턴을 기준으로 한 것이며, 프로덕션 환경에서는 워크로드에 따라 조정이 필요할 수 있습니다.
ClickStack UI로 이동
Managed ClickStack 서비스로 이동한 다음 왼쪽 메뉴에서 “ClickStack”을 선택합니다. 이미 온보딩을 완료했다면 새 탭에서 ClickStack UI가 열리며 자동으로 인증됩니다. 아직 완료하지 않았다면 온보딩을 진행한 뒤 입력 source로 Vector를 선택하고 “Launch ClickStack”을 선택합니다.데이터 소스 생성
로그 데이터 소스를 생성합니다. 데이터 소스가 없으면 처음 로그인할 때 생성하라는 안내가 표시됩니다. 그렇지 않으면 Team Settings로 이동해 새 데이터 소스를 추가하세요.이 구성은time_local 컬럼을 timestamp로 사용하는 Nginx 스키마(schema)를 가정합니다. 이 컬럼은 프라이머리 키(primary key)에 선언된 timestamp 컬럼입니다. 이 컬럼은 필수입니다.또한 기본 select를 time_local, remote_addr, status, request로 지정했으며, 이는 로그 보기에서 어떤 컬럼을 반환할지 정의합니다.위 예시에서 Body 컬럼은 데이터에 존재하지 않습니다. 대신 다음 SQL 표현식으로 정의됩니다:데이터 탐색
데이터를 탐색하고 ClickStack 사용을 시작하려면October 20th, 2025의 Search view로 이동하십시오.