자체 관리 모니터링
자체 관리 모니터링 (Self-managed monitoring)
자체 관리/OSS ClickHouse의 모니터링 및 옵저버빌리티 기능을 프로덕션 배포 관점에서 소개하는 가이드예요.
출처: 문서
본문
이 가이드는 ClickHouse 오픈소스를 평가하는 엔터프라이즈 팀에게 프로덕션 배포용 모니터링 및 옵저버빌리티 기능에 대한 종합적인 정보를 제공해요. 엔터프라이즈 고객은 종종 기본 제공 모니터링 기능, Datadog와 AWS CloudWatch 같은 도구를 포함한 기존 옵저버빌리티 스택과의 통합, 그리고 ClickHouse 모니터링이 자체 호스팅 배포와 어떻게 비교되는지에 대해 묻곤 해요.
Prometheus 기반 통합 아키텍처
ClickHouse는 배포 모델에 따라 서로 다른 엔드포인트를 통해 Prometheus 호환 메트릭을 노출하며, 각각 뚜렷한 운영 특성을 가져요:
자체 관리/OSS ClickHouse ClickHouse 서버의 표준 /metrics 엔드포인트를 통해 접근 가능한 직접 서버 Prometheus 엔드포인트. 이 접근 방식은 다음을 제공해요:
- 완전한 메트릭 노출: 내장 필터링 없이 사용 가능한 ClickHouse 메트릭의 전체 범위
- 실시간 메트릭: 스크랩될 때 시스템 테이블에서 직접 생성
직접 시스템 접근 프로덕션 시스템 테이블을 조회해서 모니터링 부하를 추가하고 비용 절약 유휴 상태를 방지해요.
통합 예시
외부 통합을 통해 조직은 기존 모니터링 워크플로를 유지하고, 친숙한 도구에 대한 기존 팀 전문성을 활용하며, 현재 프로세스를 중단하거나 상당한 재교육 투자를 요구하지 않고 ClickHouse 모니터링을 더 넓은 인프라 옵저버빌리티와 통합할 수 있어요. 팀은 기존 경고 규칙과 에스컬레이션 절차를 ClickHouse 메트릭에 적용하면서, 통합된 옵저버빌리티 플랫폼 내에서 데이터베이스 성능을 애플리케이션 및 인프라 상태와 상관시킬 수 있어요. 이 접근 방식은 현재 모니터링 설정의 ROI를 극대화하고 통합 대시보드와 친숙한 도구 인터페이스를 통해 더 빠른 문제 해결을 가능하게 해요.
Grafana Cloud 모니터링
Grafana는 직접 플러그인 통합과 Prometheus 기반 접근 방식 모두를 통해 ClickHouse 모니터링을 제공해요. Prometheus 엔드포인트 통합은 기존 Grafana Cloud 인프라 내 시각화를 가능하게 하면서 모니터링과 프로덕션 워크로드 사이의 운영 분리를 유지해요. 구성 지침은 Grafana의 ClickHouse 문서를 참고하세요.
Datadog 모니터링
Datadog는 서비스 유휴 동작을 존중하면서 적절한 클라우드 서비스 모니터링을 제공할 전용 API 통합을 개발 중이에요. 그 사이 팀은 운영 분리와 비용 효율적 모니터링을 위해 ClickHouse Prometheus 엔드포인트를 통한 OpenMetrics 통합 접근 방식을 사용할 수 있어요. 구성 지침은 Datadog의 Prometheus 및 OpenMetrics 통합 문서를 참고하세요.
ClickStack
ClickStack은 ClickHouse가 스토리지 엔진인 심층 시스템 분석과 디버깅을 위한 ClickHouse의 권장 옵저버빌리티 솔루션이며, 로그, 메트릭, 트레이스를 위한 통합 플랫폼을 제공해요. 이 접근 방식은 ClickHouse 인스턴스 내부의 시스템 테이블에 직접 연결하는 ClickStack UI인 HyperDX에 의존해요. HyperDX는 Selects, Inserts, Infrastructure 탭이 있는 ClickHouse 중심 대시보드를 제공해요. 팀은 Lucene 또는 SQL 구문으로 시스템 테이블과 로그를 검색하고, Chart Explorer로 커스텀 시각화를 만들어 상세 시스템 분석을 할 수 있어요. 이 접근 방식은 실시간 프로덕션 경고보다 복잡한 문제 디버깅, 성능 분석, 심층 시스템 인트로스펙션에 이상적이에요.
HyperDX가 시스템 테이블을 직접 조회하므로 이 접근 방식은 유휴 서비스를 깨운다는 점에 유의하세요.
ClickStack 배포 옵션
- Helm: Kubernetes 기반 디버깅 환경에 권장.
values.yaml을 통한 환경별 구성, 리소스 한도, 확장을 허용해요. - Docker Compose: 각 컴포넌트(ClickHouse, HyperDX, OTel collector, MongoDB)를 개별적으로 배포해요.
- HyperDX Only: 독립 실행형 HyperDX 컨테이너.
완전한 배포 옵션과 아키텍처 세부 사항은 ClickStack 문서와 데이터 수집 가이드를 참고하세요.
직접 Grafana 플러그인 통합
Grafana용 ClickHouse 데이터 소스 플러그인은 시스템 테이블을 사용해 ClickHouse에서 데이터를 직접 시각화하고 탐색할 수 있게 해줘요. 이 접근 방식은 성능 모니터링과 상세 시스템 분석용 커스텀 대시보드 생성에 잘 작동해요. 플러그인 설치와 구성 세부 사항은 ClickHouse 데이터 소스 플러그인을 참고하세요. 사전 구축된 대시보드와 경고 규칙이 있는 Prometheus-Grafana mix-in을 사용한 완전한 모니터링 설정은 새 Prometheus-Grafana mix-in으로 ClickHouse 모니터링하기를 참고하세요.
직접 Datadog 통합
Datadog는 에이전트용 ClickHouse Monitoring 플러그인을 제공하며, 이는 시스템 테이블을 직접 조회해요. 이 통합은 clusterAllReplicas 기능을 통한 클러스터 인지를 포함한 종합적인 데이터베이스 모니터링을 제공해요.
이 통합은 비용 최적화 유휴 동작과의 비호환성 및 클라우드 프록시 계층의 운영 제한 때문에 ClickHouse Cloud 배포에는 권장되지 않아요.
시스템 테이블 직접 사용
ClickHouse 시스템 테이블, 특히 system.query_log에 연결해 직접 조회함으로써 심층 쿼리 성능 분석을 수행할 수 있어요. SQL 콘솔이나 clickhouse client를 사용해 팀은 느린 쿼리를 식별하고, 리소스 사용을 분석하고, 조직 전체의 사용 패턴을 추적할 수 있어요. 쿼리 성능 분석 시스템 테이블 쿼리 로그를 사용해 Query Performance Analysis를 수행할 수 있어요. 예시 쿼리: 모든 클러스터 레플리카에서 가장 오래 실행된 상위 5개 쿼리 찾기:
SELECT
type,
event_time,
query_duration_ms,
query,
read_rows,
tables
FROM clusterAllReplicas(default, system.query_log)
WHERE event_time >= (now() - toIntervalMinute(60)) AND type='QueryFinish'
ORDER BY query_duration_ms DESC
LIMIT 5
FORMAT VERTICAL
커뮤니티 모니터링 솔루션
ClickHouse 커뮤니티는 인기 있는 옵저버빌리티 스택과 통합되는 종합적인 모니터링 솔루션을 개발했어요. ClickHouse Monitoring은 사전 구축된 대시보드가 있는 완전한 모니터링 설정을 제공해요. 이 오픈소스 프로젝트는 확립된 모범 사례와 검증된 대시보드 구성으로 ClickHouse 모니터링을 구현하려는 팀에게 빠른 시작 접근 방식을 제공해요.
다른 직접 데이터베이스 모니터링 접근 방식과 마찬가지로, 이 솔루션은 ClickHouse 시스템 테이블을 직접 조회해서 인스턴스가 유휴 상태가 되는 것을 막고 비용 최적화에 영향을 미쳐요.