- ClickHouse
- HyperDX
- OpenTelemetry (OTel) collector
- MongoDB
otel-collector 설정을 기준으로 관측성과 수집을 위한 추가 포트를 노출합니다:
13133:health_check확장 기능의 상태 확인 endpoint24225: 로그 수집용 Fluentd 수신기4317: OTLP gRPC 수신기 (트레이스, 로그, 메트릭의 표준)4318: OTLP HTTP 수신기 (gRPC 대안)8888: collector 자체를 모니터링하기 위한 Prometheus 메트릭 endpoint
적합한 경우
- 로컬 테스트
- 개념 검증
- 장애 허용이 필요하지 않고, 단일 서버만으로 모든 ClickHouse 데이터를 호스팅할 수 있는 프로덕션 배포
- ClickStack을 배포하되 ClickHouse는 별도로 호스팅하는 경우(예: ClickHouse Cloud 사용)
배포 단계
HyperDX UI로 이동
HyperDX UI에 접속하려면 http://localhost:8080을 여세요.요구 사항을 충족하는 사용자 이름과 비밀번호를 입력하여 사용자를 생성합니다.Create를 클릭하면 Docker Compose로 배포된 ClickHouse 인스턴스의 데이터 소스가 생성됩니다.기본 연결 재정의통합된 ClickHouse 인스턴스의 기본 연결을 재정의할 수 있습니다. 자세한 내용은 “ClickHouse Cloud 사용”을 참조하세요.
연결 정보 입력
배포된 ClickHouse 인스턴스에 연결하려면 Create를 클릭하고 기본 설정을 그대로 사용하면 됩니다.자체 외부 ClickHouse 클러스터(예: ClickHouse Cloud)에 연결하려는 경우 연결 자격 증명을 직접 입력할 수 있습니다.source를 생성하라는 메시지가 표시되면 모든 기본값을 유지하고Table 필드에 otel_logs를 입력하세요. 다른 모든 설정은 자동으로 감지되므로 Save New Source를 클릭하면 됩니다.compose 설정 변경
OpenTelemetry collector 구성하기
ClickHouse Cloud 사용
-
docker-compose.yml파일에서 ClickHouse 서비스를 제거합니다. 테스트 목적이라면 이는 선택 사항입니다. 배포된 ClickHouse 인스턴스는 단순히 무시되지만 로컬 리소스를 낭비하게 됩니다. 서비스를 제거하는 경우depends_on처럼 해당 서비스를 참조하는 항목도 함께 제거해야 합니다. -
compose 파일에서 환경 변수
CLICKHOUSE_ENDPOINT,CLICKHOUSE_USER,CLICKHOUSE_PASSWORD를 설정하여 OTel collector가 ClickHouse Cloud 인스턴스를 사용하도록 수정합니다. 구체적으로는 OTel collector 서비스에 다음 환경 변수를 추가합니다.CLICKHOUSE_ENDPOINT는 포트8443을 포함한 ClickHouse Cloud HTTPS 엔드포인트여야 합니다. 예:https://mxl4k3ul6a.us-east-2.aws.clickhouse.com:8443 - HyperDX UI에 연결해 ClickHouse 연결을 생성할 때는 Cloud 자격 증명을 사용합니다.
스키마 선택: Map vs JSON
Map(LowCardinality(String), String) 컬럼에 저장합니다. 이는 관측성 워크로드에 권장되는 스키마입니다. 버킷 기반 맵 직렬화와 맵 키 및 값에 대한 텍스트 인덱스를 함께 사용하면, 동적 JSON 서브컬럼에서 발생하는 키별 수집 오버헤드 없이 필요한 항목만 선택적으로 조회할 수 있습니다.
JSON 타입 스키마는 속성 키 집합이 작고 안정적인 워크로드에서 평가할 수 있도록 베타로 제공됩니다. 기본값으로는 권장되지 않습니다. 전체 비교 내용과 JSON 지원을 활성화하는 데 필요한 환경 변수는 Map vs JSON type에서 확인하십시오.