概要
コンポーザブルプロトコルの設定
protocolsタグで示されます。
プロトコルレイヤーの設定
protocols セクションに新しい基本モジュールを追加します。
plain_http- 別のレイヤーから参照できる名前type- データ処理のために生成されるプロトコルハンドラーを示します。 事前定義されたプロトコルハンドラーとして、以下を使用できます。tcp- ClickHouseネイティブプロトコルハンドラーhttp- HTTP ClickHouseプロトコルハンドラーtls- TLS暗号化レイヤーproxy1- PROXYv1レイヤーmysql- MySQL互換プロトコルハンドラーpostgres- PostgreSQL互換プロトコルハンドラーprometheus- Prometheusプロトコルハンドラーinterserver- ClickHouseのinterserverハンドラー
gRPC プロトコルハンドラーは コンポーザブルプロトコル では実装されていません<port> と省略可能な <host> タグで表されます。
たとえば、先ほど追加した HTTP レイヤーにエンドポイントを設定するには、
次のように設定を変更します。
<host> タグが省略されている場合は、ルート設定の <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接続はクラスターのsecretと初期ユーザーによって認証され、デフォルトのセッションユーザーを使用することはありません。
追加のレイヤーパラメータを指定する
privateKeyFile) と証明書ファイル (certificateFile) を次のように指定できます。