사전 요구 사항
- ClickHouse용으로 하나의 노드에서 최소 32GiB의 RAM과 100GB 이상의 디스크 공간을 사용할 수 있는 Kubernetes 클러스터(v1.20+ 권장)
- Helm v3+
- 클러스터와 상호 작용하도록 구성된
kubectl
배포 옵션
-
Open Source ClickStack: 다음 구성 요소를 포함하여 Kubernetes 클러스터 내에 ClickStack 전체를 배포합니다:
- ClickHouse
- HyperDX
- MongoDB (대시보드 상태 및 구성에 사용)
- Managed ClickStack: ClickHouse와 ClickStack UI(HyperDX)를 ClickHouse Cloud에서 관리합니다. 이 경우 클러스터 내에서 ClickHouse나 HyperDX를 실행할 필요가 없습니다.
OpenTelemetry Demo 배포(선택 사항)
이 단계는 선택 사항이며, 모니터링할 기존 파드가 없는 경우에 사용합니다. Kubernetes 환경에 이미 배포된 서비스가 있다면 이 단계는 건너뛸 수 있지만, 이 데모에는 트레이스와 세션 리플레이 데이터를 생성하는 계측된 마이크로서비스가 포함되어 있어 ClickStack의 모든 기능을 살펴볼 수 있습니다.다음은 관측성 테스트 및 계측 시연에 맞게 조정된 ClickStack 포크의 OpenTelemetry Demo Application 스택을 Kubernetes 클러스터에 배포하는 과정입니다. 여기에는 백엔드 마이크로서비스, 부하 생성기, 텔레메트리 파이프라인, 지원 인프라(Kafka, Redis 등), 그리고 ClickStack과의 SDK 통합이 포함됩니다.모든 서비스는otel-demo 네임스페이스에 배포됩니다. 각 배포에는 다음이 포함됩니다.- 트레이스, 메트릭, 로그를 위한 OTel 및 ClickStack SDKS를 사용한 자동 계측.
- 모든 서비스는 계측 데이터를
my-hyperdx-hdx-oss-v2-otel-collectorOpenTelemetry Collector(배포되지 않음)로 전송합니다. - 환경 변수
OTEL_RESOURCE_ATTRIBUTES를 통해 로그, 메트릭, 트레이스를 연관시킬 수 있도록 하는 리소스 태그 전달.
Running 상태인지 확인하십시오.데모 아키텍처
ClickStack 배포
Helm 차트가 설치되면 클러스터에 ClickStack을 배포할 수 있습니다. Kubernetes 환경 내에서 ClickHouse와 HyperDX를 포함한 모든 구성 요소를 실행할 수도 있고, collector만 배포한 뒤 ClickHouse와 HyperDX UI는 Managed ClickStack을 사용할 수도 있습니다.ClickStack Open Source (자가 관리형)
ClickStack Open Source (자가 관리형)
다음 명령은 OTel 데모를 배포하지 않는 경우, 적절한 네임스페이스를 선택하도록 이 값을 수정할 수 있습니다.
otel-demo 네임스페이스에 ClickStack을 설치합니다. helm 차트는 다음 구성 요소를 배포합니다.- ClickHouse 인스턴스
- HyperDX
- ClickStack 배포판의 OTel collector
- HyperDX 애플리케이션 상태를 저장하기 위한 MongoDB
Kubernetes 클러스터 구성에 맞게
storageClassName을 조정해야 할 수 있습니다.Managed ClickStack
Managed ClickStack
Managed ClickStack을 사용하려는 경우 ClickStack을 배포하고 포함된 ClickHouse를 비활성화할 수 있습니다.
현재 이 차트는 항상 HyperDX와 MongoDB를 모두 배포합니다. 이러한 구성 요소는 대체 액세스 경로를 제공하지만 ClickHouse Cloud 인증과 통합되지는 않습니다. 이 배포 모델에서 이러한 구성 요소는 배포된 OTel collector를 통해 데이터를 수집하는 데 필요한 보안 수집 키에 대한 액세스를 제공하는 관리자용이며, 최종 사용자에게 노출해서는 안 됩니다.
Running 상태인지 확인하세요. Managed ClickStack을 사용하는 경우 ClickHouse는 표시되지 않습니다.HyperDX UI에 접속하기
Managed ClickStack을 사용하는 경우에도 Kubernetes 클러스터에 배포된 로컬 HyperDX 인스턴스는 여전히 필요합니다. 이 인스턴스는 HyperDX에 번들로 포함된 OpAMP 서버가 관리하는 수집 키를 제공하며, 배포된 OTel collector를 통해 수집을 안전하게 수행할 수 있도록 합니다. 이 기능은 현재 Managed ClickStack에서는 사용할 수 없습니다.
ClusterIP를 사용하며, 기본적으로 외부에 노출되지 않습니다.HyperDX UI에 접속하려면 3000번 포트에서 로컬 8080번 포트로 포트 포워딩하십시오.수집 API key 가져오기
ClickStack collector가 배포한 OTel collector로의 수집은 수집 키로 보호됩니다.Team Settings로 이동한 다음 API Keys 섹션에서 Ingestion API Key를 복사하세요. 이 API key는 OpenTelemetry collector를 통한 데이터 수집을 안전하게 보호합니다.API Key용 Kubernetes 시크릿 생성
수집 API Key를 담은 새 Kubernetes 시크릿과 ClickStack Helm 차트로 배포된 OTel collector의 위치를 포함하는 구성 맵을 생성합니다. 이후 구성 요소는 이를 사용하여 ClickStack Helm 차트로 배포된 collector로 데이터를 수집할 수 있습니다:OpenTelemetry Helm 저장소 추가
Kubernetes 메트릭을 수집하기 위해 표준 OTel collector를 배포하고, 앞서 생성한 수집 API key를 사용해 데이터를 ClickStack collector로 안전하게 전송하도록 구성합니다.이를 위해 OpenTelemetry Helm 저장소를 설치해야 합니다:Kubernetes collector 컴포넌트 배포
클러스터 자체와 각 노드에서 로그와 메트릭을 수집하려면, 각각 별도의 매니페스트를 사용하는 두 개의 OpenTelemetry Collector를 배포해야 합니다. 제공되는 두 매니페스트인k8s_deployment.yaml과 k8s_daemonset.yaml은 함께 동작하여 Kubernetes 클러스터의 포괄적인 텔레메트리 데이터를 수집합니다.-
k8s_deployment.yaml은 클러스터 전반의 이벤트와 메타데이터를 수집하는 단일 OpenTelemetry Collector 인스턴스를 배포합니다. 이 collector는 Kubernetes 이벤트와 클러스터 메트릭을 수집하고, 파드 레이블과 어노테이션을 사용해 텔레메트리 데이터를 보강합니다. 중복 데이터를 방지하기 위해 이 collector는 단일 레플리카를 사용하는 독립형 배포로 실행됩니다. -
k8s_daemonset.yaml은 클러스터의 모든 노드에서 실행되는 데몬셋 기반 collector를 배포합니다.kubeletstats,hostmetrics, Kubernetes Attribute Processor와 같은 구성 요소를 사용해 노드 수준 및 파드 수준 메트릭과 컨테이너 로그를 수집합니다. 이러한 collector는 로그에 메타데이터를 추가해 보강하고, OTLP exporter를 사용해 HyperDX로 전송합니다.
k8s_deployment.yaml
k8s_deployment.yaml
k8s_daemonset.yaml
k8s_daemonset.yaml
HyperDX에서 Kubernetes 데이터 살펴보기
Kubernetes에 배포한 인스턴스 또는 Managed ClickStack을 통해 HyperDX UI로 이동합니다.Managed ClickStack
Managed ClickStack
Managed ClickStack을 사용하는 경우 ClickHouse Cloud 서비스에 로그인한 다음, 왼쪽 메뉴에서 “ClickStack”을 선택하면 됩니다. 자동으로 인증되므로 별도 사용자를 생성할 필요가 없습니다.로그, 메트릭, 트레이스용 데이터 소스가 미리 생성되어 있습니다.
ClickStack Open Source
ClickStack Open Source
로컬에 배포된 HyperDX에 액세스하려면 다음 로컬 명령으로 포트 포워딩한 후 http://localhost:8080에서 HyperDX에 접속할 수 있습니다.
프로덕션 환경의 ClickStack프로덕션 환경에서 Managed ClickStack을 사용하지 않는 경우, TLS가 적용된 인그레스를 사용하는 것이 좋습니다. 예시는 다음과 같습니다.
/kubernetes의 전용 대시보드로 이동하십시오. 예: http://localhost:8080/kubernetes.Pods, Nodes, Namespaces 각 탭에 데이터가 표시되어야 합니다.