ProbeDeck は、ClickHouse サーバーの健全性を確認し、system テーブルを調査して SQL を実行するための iOS/iPadOS クライアントです。デバイスのネットワーク経由または SSH 踏み台サーバー経由で ClickHouse HTTP インターフェイスに接続でき、リレーサーバーは不要です。
始める前に
- App StoreからProbeDeckをインストールします。
- iOSまたはiPadOS 17.0以降を使用します。
- ネットワーク、VPN、または SSH踏み台サーバー経由で、デバイスからClickHouseのHTTPまたはHTTPSエンドポイントに到達できるようにします。
- クエリ対象のデータベースにアクセスできるClickHouseユーザーを作成します。
- 監視に必要な
systemテーブルに対するSELECT権限をユーザーに付与します。
| ProbeDeck | ClickHouse Cloud | セルフホストClickHouse | 注記 |
|---|---|---|---|
| 1.1.7以降 | 現在のサービス | 最小サーバーバージョンの固定なし | HTTP(S)インターフェイスを使用します。接続をテストし、各監視セクションがサーバーバージョンおよび付与されている権限で利用可能であることを確認してください。 |
一部の監視セクションは、任意のログテーブルや新しいシステムテーブルに依存しています。たとえば、
ProbeDeckが設定済みのメモリ制限の取得に使用するsystem.server_settingsには、ClickHouse
23.3以降が必要です。ログソースが使用不可の場合、ProbeDeckは該当するセクションを制限付きとして表示します。
仕組み
- ProbeDeck は ClickHouse の HTTP(S) エンドポイントに SQL リクエストを送信します。
- 設定済みの ClickHouse ユーザーを使用して、
systemテーブルから監視データを読み取ります。 - アプリはデバイス上にクエリ結果と監視ビューを表示します。デバイスからエンドポイントへの直接経路がない場合は、SSH 踏み台サーバー経由で 同じ HTTP(S) 接続を中継できます。
ClickHouse Cloud への接続
サービスの接続情報を確認する
ClickHouse Cloud console でサービスを開き、Connect を選択して HTTPS を選択します。
HTTP(S) で ClickHouse に接続するには、次の情報が必要です。
| Parameter(s) | Description |
|---|---|
HOST and PORT |
通常、TLS を使用する場合のポートは 8443、TLS を使用しない場合は 8123 です。 |
DATABASE NAME |
デフォルトでは default という名前のデータベースがあります。接続先のデータベース名を使用してください。 |
USERNAME and PASSWORD |
デフォルトのユーザー名は default です。用途に応じたユーザー名を使用してください。 |
ClickHouse Cloud サービスの詳細は、ClickHouse Cloud コンソールで確認できます。 サービスを選択し、Connect をクリックします。

HTTPS を選択します。接続情報は curl コマンドの例として表示されます。

セルフマネージド ClickHouse を使用している場合、接続情報は ClickHouse 管理者によって設定されます。
ProbeDeck に接続を追加する
- Connections 画面で + をタップします。
- 接続名と、
https://を除いたホストを入力します。 - Port を
8443に設定し、TLS をオンにします。 - Connect ダイアログに表示されるデータベースのユーザー名とパスワードを入力します。データベース名は 任意です。
- Test Connection をタップします。接続テストに成功すると、ProbeDeck にサーバーバージョンと往復時間が表示されます。
- Save をタップします。
ProbeDeck は、これらのデータベース認証情報を使用して、サービスエンドポイントへの SQL リクエストを認証します。 ClickHouse Cloud では、Cloud API およびクエリ API エンドポイントに対して、API Keys ページの組織レベルのキーを使用します。 ProbeDeck の SQL 接続フローでは、これらのキーは使用しません。

セルフホストの ClickHouse に接続する
HTTP エンドポイントを選択する
デフォルトの暗号化されていない HTTP インターフェイスには、ポート 8123 を使用します。HTTPS を使用する場合は、TLS を有効にし、
サーバーに設定されているポートを使用します。一般的には 8443 が使用されます。
接続を追加してテストする
- Connections 画面で、+ をタップします。
- URL スキームを含めずにサーバーのホスト名を入力します。
- HTTP(S) ポートと TLS オプションを設定します。
- ClickHouse のユーザー名、パスワード、および任意のデータベースを入力します。
- Test Connection をタップし、次に Save をタップします。
ローカルネットワーク上のサーバーの場合、iOS からローカルネットワークへのアクセス許可を求められることがあります。エンドポイントに社内ネットワーク経由でのみ到達できる場合は、先にデバイスを VPN に接続してください。
SSH 踏み台サーバー経由で接続する
接続フォームで SSH Tunnel を有効にし、以下を入力します。
- 踏み台サーバーのホスト名と SSH ポート (デフォルトは
22) 。 - SSH ユーザー名。
- SSH パスワードまたは秘密鍵。
ProbeDeck は、踏み台サーバーから Server セクションで指定した ClickHouse ホストおよび HTTP(S)
ポートへの SSH direct-tcpip チャネルを開きます。初回接続時には、踏み台サーバーの SHA-256 ホストキー
フィンガープリントを受け入れる前に、サーバー管理者から取得した値と照合してください。
認証と TLS を設定する
ProbeDeck は、データベースのユーザー名とパスワードを X-ClickHouse-User および
X-ClickHouse-Key リクエストヘッダーで送信します。認証情報を URL に含めることはありません。
相互 TLS を使用するには、TLS Client Certificate を有効にし、クライアント証明書と秘密鍵を含む
PKCS#12 (.p12) ファイルをインポートして、そのパスフレーズを入力します。
セルフホストのエンドポイントが自己署名証明書またはプライベート CA が発行した証明書を提示した場合、 ProbeDeck は SHA-256 フィンガープリント、発行者、subject、有効期間を表示します。受け入れる前に、 フィンガープリントをサーバー管理者から提供された値と照合してください。ProbeDeck はこの判断をその 接続に紐付けます。証明書が変更されると、確認するまで接続は停止します。
ProbeDeck は、接続のシークレットとインポートした鍵素材をデバイス上の iOS Keychain に保存します。
ClickHouse を監視する
保存した接続を開き、監視を選択します。ダッシュボードには、次のログソースの概要が表示されます。
| 項目 | ClickHouse ログソース |
|---|---|
| 実行中のクエリ、経過時間、メモリ使用量、読み取り行数 | system.processes |
| レプリケーションの状態とキュー | system.replicas, system.replication_queue |
| ディスク、パーツ、マージ | system.disks, system.parts, system.merges |
| ミューテーション | system.mutations |
| メモリとサーバーメトリクス | system.metrics, system.asynchronous_metrics, system.server_settings |
| クエリレートとディスクレートの履歴 | system.metric_log, system.asynchronous_metric_log |

実行中のクエリをタップすると、アクティブなクエリを経過時間順にソートし、メモリ使用量と読み取り行数を確認できます。

UK property price dataset をクエリする
この例では、UK property price datasetを使用します。
データセットを uk_price_paid にロードしたら、次の操作を行います。
- 接続を開き、Data を選択します。
- SQL エディタを開きます。
- 範囲が限定された読み取り専用クエリを実行します。
SELECT
town,
count() AS sales,
round(avg(price)) AS average_price
FROM uk_price_paid
GROUP BY town
ORDER BY sales DESC
LIMIT 10結果には、取引件数と平均価格を含む10の町が表示されます。
既知の制限事項
- ProbeDeck は iOS および iPadOS 17.0 以降で動作します。
- 無料ユーザーが保存できる接続は一度に 1 つです。削除すると枠が空きます。ProbeDeck Pro では 保存済み接続を無制限に利用できます。
- ネイティブプロトコルではなく、ClickHouse の HTTP(S) インターフェイスをサポートしています。
- ProbeDeck は SQL の結果を 200 行単位で読み込み、各リクエストは最大 10,000 行に制限されます。大規模な
テーブルでは、絞り込み条件を指定した
WHERE句とLIMITを使用してください。 - 監視で確認できる情報は、ClickHouse ユーザーの権限と任意のログテーブルによって異なります。
- デバイスからエンドポイントへの経路が、ネットワーク、VPN、または組み込みの SSH トンネル経由で確保されている必要があります。
- 監視と読み取り専用 SQL にアプリ内課金は必要ありません。
KILL QUERY、KILL MUTATION、 書き込みおよび DDL ステートメント、その他の運用操作には ProbeDeck Pro が必要です。
トラブルシューティング
認証に失敗しました
データベースのユーザー名とパスワードを再度コピーしてください。ClickHouse Cloud サービスエンドポイントには、サービスの Connect ダイアログに表示される データベース認証情報を使用します。ClickHouse Cloud API Keys ページにある組織レベルの キーは使用しないでください。
接続が拒否された、またはタイムアウトしました
デバイスからホストおよび HTTP(S) ポートに到達できることを確認してください。Cloud IP アクセスリスト、VPN、
ファイアウォール、ポートマッピングを確認してください。ネイティブプロトコルのポート 9000 または 9440 は使用しないでください。
監視で権限が制限されていると表示される
ClickHouse ユーザーに、必要な system テーブルの一部またはすべてを読み取る権限がありません。サーバー管理者に、
使用予定の監視領域に必要な最小限の SELECT 権限の付与を依頼し、その後再接続してください。
TLS フィンガープリントが変更された
新しいフィンガープリントを受け入れる前に、サーバー管理者に証明書のローテーションを確認してもらってください。予期しない変更は、別の エンドポイントや TLS インターセプト経路を示している可能性があります。
次のステップ
- 製品固有の詳細については、ProbeDeck のウェブサイトを参照してください。
- サーバー設定については、ClickHouse HTTP インターフェイスのドキュメントを参照してください。