올인원(All in One)
이 포괄적인 Docker 이미지는 모든 ClickStack 오픈 소스 컴포넌트를 포함합니다:
- 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로 이동
http://localhost:8080으로 이동하여 HyperDX UI에 접속합니다.
요구 사항을 충족하는 사용자 이름과 비밀번호를 입력하여 사용자를 생성합니다.
Create를 클릭하면 통합된 ClickHouse 인스턴스용 데이터 소스가 생성됩니다.

다른 ClickHouse 인스턴스를 사용하는 예시는 「ClickHouse Cloud 사용하기」를 참조하십시오.
데이터와 설정 유지
컨테이너를 다시 시작하더라도 데이터와 설정을 유지하려면, 위의 Docker 명령을 수정하여 /data/db, /var/lib/clickhouse, /var/log/clickhouse-server 경로를 마운트하면 됩니다. 예를 들어 다음과 같습니다:
운영 환경 배포
다음과 같은 이유로 이 옵션은 운영 환경에 배포해서는 안 됩니다.
- 비영구 스토리지: 모든 데이터가 Docker 기본 오버레이 파일 시스템을 사용해 저장됩니다. 이 구성은 대규모 환경에서의 성능을 보장하지 못하며, 컨테이너가 제거되거나 재시작되면 (사용자가 필요한 파일 경로를 마운트하지 않는 한) 데이터가 손실됩니다.
- 컴포넌트 격리 부족: 모든 컴포넌트가 하나의 Docker 컨테이너 내에서 실행됩니다. 이로 인해 개별적인 확장 및 모니터링이 불가능해지고, 모든 프로세스에
cgroup제한이 전역적으로 적용됩니다. 그 결과, 컴포넌트 간에 CPU와 메모리를 두고 경쟁이 발생할 수 있습니다.
포트 커스터마이징
HyperDX Local이 사용하는 애플리케이션 포트(8080) 또는 API 포트(8000)를 커스터마이징하려면, 적절한 포트를 포워딩하도록 docker run 명령을 수정하고 몇 가지 환경 변수를 설정해야 합니다.
OpenTelemetry 포트는 포트 포워딩 옵션만 수정하여 간단히 변경할 수 있습니다. 예를 들어 OpenTelemetry HTTP 포트를 4999로 변경하려면 -p 4318:4318 대신 -p 4999:4318로 교체하면 됩니다.
ClickHouse Cloud 사용하기
이 배포본은 ClickHouse Cloud와 함께 사용할 수 있습니다. 로컬 ClickHouse 인스턴스도 여전히 배포되지만 사용되지는 않으며, 환경 변수 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 구성
필요한 경우 OTel collector 구성을 수정할 수 있습니다. 자세한 내용은 「구성 수정」을 참조하십시오.
schema 선택: Map vs JSON
ClickStack는 기본적으로 속성을 Map(LowCardinality(String), String) 컬럼에 저장합니다. 이는 관측성 워크로드에 권장되는 schema입니다. 버킷화된 맵 시리얼라이제이션과 맵 키 및 값에 대한 텍스트 인덱스를 함께 사용하면, 동적 JSON 서브컬럼을 키별로 수집할 때 발생하는 오버헤드 없이 선택적 조회를 수행할 수 있습니다.
JSON 타입 schema는 속성 키 집합이 작고 안정적인 워크로드를 평가할 수 있도록 베타로 제공됩니다. 기본값으로는 권장되지 않습니다. 전체 비교와 JSON 지원을 활성화하는 데 필요한 env var는 Map vs JSON type에서 확인하십시오.