개요
Composable protocols 구성하기
protocols 태그로 지정됩니다:
프로토콜 레이어 구성
protocols 섹션에 새 기본 모듈을 추가하면 됩니다:
plain_http- 다른 레이어에서 참조할 수 있는 이름type- 데이터를 처리하기 위해 인스턴스화되는 프로토콜 처리기를 나타냅니다. 다음과 같은 미리 정의된 프로토콜 처리기가 있습니다:tcp- 네이티브 ClickHouse 프로토콜 처리기http- HTTP ClickHouse 프로토콜 처리기tls- TLS 암호화 레이어proxy1- PROXYv1 레이어mysql- MySQL 호환 프로토콜 처리기postgres- PostgreSQL 호환 프로토콜 처리기prometheus- Prometheus 프로토콜 처리기interserver- ClickHouse interserver 처리기
gRPC 프로토콜 처리기는 Composable protocols에 구현되어 있지 않습니다<port>와 선택적 <host> 태그로 표시합니다.
예를 들어, 앞서 추가한 HTTP 레이어에서 엔드포인트를 구성하려면
구성을 다음과 같이 수정할 수 있습니다.
<host> 태그가 생략되면 최상위 config의 <listen_host>가
사용됩니다.
레이어 시퀀스 구성
<impl> 태그를 사용해 다른 모듈을 참조하는 방식으로 정의합니다. 예를 들어, plain_http 모듈 위에 TLS 레이어를 구성하려면 구성을 다음과 같이 더 수정할 수 있습니다:
레이어에 엔드포인트 추가하기
추가 엔드포인트 정의
<type> 태그를 생략해 정의할 수 있습니다. 예를 들어,
plain_http 모듈에 대해 다음과 같이 another_http 엔드포인트를 정의할 수 있습니다:
엔드포인트별 사용자 지정 HTTP 처리기
type=http 프로토콜 항목은 동일한 <http_handlers>
구성을 사용합니다. <handlers> 태그를 추가해 다른 구성 섹션을
가리키도록 설정하면 이를 재정의할 수 있습니다. 이렇게 하면 각 HTTP 포트가
서로 다른 HTTP 라우팅 규칙 집합을 제공할 수 있습니다.
예를 들어, 포트 8124에서 자체 처리기를 사용하는 대체 HTTP API를 실행하려면:
<http_handlers> 규칙을 사용하고,
포트 8124에 대한 요청은 <http_handlers_alt> 규칙을 사용합니다. <handlers>를
생략하면 엔드포인트는 기본 <http_handlers>로 대체됩니다.
사용자 지정 처리기 섹션은
<http_handlers>와 동일한
포맷을 따릅니다.
사용자 지정 처리기 섹션의 변경 사항은 구성 다시 로드 시 감지되며, 해당
엔드포인트는 자동으로 다시 시작됩니다.
엔드포인트별 기본 세션 사용자
user 매개변수 없이 전송된 HTTP 요청 또는 사용자 이름이 비어 있는 네이티브 프로토콜 Hello 패킷) 서버는 기본 세션 사용자로 인증합니다. 기본 세션 사용자는 기본값이 default인 default_session_user 서버 설정입니다.
<default_session_user> 태그를 사용하면 단일 엔드포인트에 대해 이 설정을 재정의할 수 있습니다. 이를 통해 서로 다른 수신 포트에서 서로 다른 익명 사용자를 처리할 수 있습니다:
readonly_user로 인증됩니다. 사용자 이름을 명시적으로 지정하는 클라이언트에는 영향을 주지 않습니다.
태그는 엔드포인트의 모듈에서 참조된 (impl)
모듈을 향해 조회되며, 엔드포인트에 가장 가까운 값이 적용됩니다. 이 설정은 tcp, http,
mysql, postgres 프로토콜 처리기와 요청을 인증하는 prometheus 처리기
(remote_write, remote_read, query, api_v1)에 적용됩니다. 메트릭 노출 엔드포인트(Keeper 메트릭 전용 엔드포인트 포함)는
인증 없이 제공되며 이 설정을 무시합니다. 고정 사용자가 설정된 처리기(http_handlers 규칙의 handler
내 user 키 또는 prometheus.handlers 규칙의 handler 내 user 키)는 구성된 사용자로 인증되고 이 설정도 무시합니다. 특히
비어 있는 default_session_user로 인해 이러한 처리기가 거부되지는 않습니다. 이 설정은
interserver 프로토콜과 함께 사용할 수 없습니다. interserver 연결은 클러스터
시크릿과 초기 사용자로 인증되며 기본 세션 사용자를 사용하지 않습니다.
추가 레이어 매개변수 지정
privateKeyFile)와 인증서 파일(certificateFile)을
다음과 같이 지정할 수 있습니다: