- ClickHouse
- HyperDX
- OpenTelemetry (OTel) collector (
4317및4318포트에서 OTLP 노출) - MongoDB (애플리케이션 상태를 영구적으로 저장하기 위한 용도)
적합한 용도
- 데모
- 전체 스택 로컬 테스트
배포 단계
Docker로 배포
다음 명령을 실행하면 OpenTelemetry collector(포트 4317 및 4318)와 HyperDX UI(포트 8080)가 실행됩니다.이미지 이름 업데이트이제 ClickStack 이미지는
clickhouse/clickstack-*로 제공됩니다(이전: docker.hyperdx.io/hyperdx/*).HyperDX UI로 이동
HyperDX UI에 접속하려면 http://localhost:8080로 이동하십시오.요구 사항을 충족하는 사용자 이름과 비밀번호를 입력해 사용자를 생성하십시오.Create를 클릭하면 통합된 ClickHouse 인스턴스에 대한 데이터 소스가 생성됩니다.다른 ClickHouse 인스턴스를 사용하는 예시는 “ClickHouse Cloud 사용”을 참조하십시오.데이터 및 설정 유지
/data/db, /var/lib/clickhouse, /var/log/clickhouse-server 경로를 마운트할 수 있습니다. 예시는 다음과 같습니다:
프로덕션 배포
- 비영구 스토리지: 모든 데이터는 Docker의 네이티브 오버레이 파일 시스템을 사용해 저장됩니다. 이 구성은 대규모 환경에서 필요한 성능을 지원하지 않으며, 사용자가 필수 파일 경로를 마운트하지 않으면 컨테이너가 제거되거나 재시작될 때 데이터가 손실됩니다.
- 컴포넌트 격리 부족: 모든 컴포넌트가 단일 Docker 컨테이너에서 실행됩니다. 이로 인해 각 컴포넌트를 독립적으로 스케일링하거나 모니터링할 수 없고,
cgroup제한도 모든 프로세스에 일괄 적용됩니다. 그 결과 컴포넌트들이 CPU와 메모리 자원을 두고 서로 경합할 수 있습니다.
포트 사용자 지정
docker run 명령을 수정하고 몇 가지 환경 변수를 설정해야 합니다.
OpenTelemetry 포트는 포트 포워딩 플래그를 수정하는 것만으로 간단히 변경할 수 있습니다. 예를 들어 OpenTelemetry HTTP 포트를 4999로 변경하려면 -p 4318:4318을 -p 4999:4318로 바꾸십시오.
ClickHouse Cloud 사용
CLICKHOUSE_ENDPOINT, CLICKHOUSE_USER, CLICKHOUSE_PASSWORD를 설정하면 OTel collector가 ClickHouse Cloud 인스턴스를 사용하도록 구성할 수 있습니다.
예시:
CLICKHOUSE_ENDPOINT는 포트 8443이 포함된 ClickHouse Cloud HTTPS 엔드포인트여야 합니다. 예: https://mxl4k3ul6a.us-east-2.aws.clickhouse.com:8443
HyperDX UI에 연결한 후 Team Settings로 이동하여 ClickHouse Cloud 서비스에 대한 연결을 생성하고, 이어서 필요한 소스를 생성하십시오.
OpenTelemetry collector 구성하기
스키마 선택: Map vs JSON
Map(LowCardinality(String), String) 컬럼에 저장합니다. 이는 관측성 워크로드에 권장되는 스키마입니다. 버킷 기반 맵 직렬화와 맵 키 및 값에 대한 텍스트 인덱스를 함께 사용하면, 동적 JSON 서브컬럼에서 발생하는 키별 수집 오버헤드 없이 필요한 항목만 선택적으로 조회할 수 있습니다.
JSON 타입 스키마는 속성 키 집합이 작고 안정적인 워크로드에서 평가할 수 있도록 베타로 제공됩니다. 기본값으로는 권장되지 않습니다. 전체 비교 내용과 JSON 지원을 활성화하는 데 필요한 환경 변수는 Map vs JSON type에서 확인하십시오.