Splunk を ClickHouse に接続する
ClickHouse の監査ログを Splunk に保存したい場合は、「ClickHouse Cloud の監査ログを Splunk に保存する」ガイドに従ってください。
Splunk は、セキュリティとオブザーバビリティの分野で広く利用されているプラットフォームであり、強力な検索およびダッシュボードエンジンでもあります。さまざまなユースケースに対応する何百もの Splunk アプリが提供されています。
ClickHouse 向けには、Splunk DB Connect App を利用します。これは高性能な ClickHouse JDBC ドライバーとシンプルに連携し、ClickHouse 内のテーブルを直接クエリできます。
この連携の代表的なユースケースは、NetFlow、Avro や Protobuf のバイナリデータ、DNS、VPC フローログ、その他の OTel ログなどの大規模データソースに ClickHouse を利用し、それらを Splunk 上でチームと共有して検索やダッシュボード作成を行う場合です。このアプローチでは、データは Splunk のインデックス層に取り込まれず、Metabase や Superset などの他の可視化ツール連携と同様に、ClickHouse から直接クエリされます。
目的
このガイドでは、ClickHouse JDBC ドライバーを使用して ClickHouse を Splunk に接続します。ローカル環境に Splunk Enterprise をインストールしますが、データのインデックス作成は行いません。その代わりに、DB Connect のクエリエンジン経由で検索機能を使用します。
このガイドに従うことで、次のように ClickHouse に接続されたダッシュボードを作成できるようになります。

このガイドでは New York City Taxi データセット を使用します。ドキュメントには、利用できる他の多くのデータセットもあります。
前提条件
開始する前に、次のものが必要です:
- サーチヘッド機能を使用するための Splunk Enterprise
- OS またはコンテナ上にインストールされた、Java Runtime Environment (JRE) の要件を満たす環境
- Splunk DB Connect
- Splunk Enterprise を実行している OS インスタンスへの管理者権限または SSH アクセス
- ClickHouse の接続情報(ClickHouse Cloud を使用している場合はこちらを参照)
Splunk Enterprise で DB Connect をインストールして設定する
まず、Splunk Enterprise インスタンスに Java Runtime Environment をインストールする必要があります。Docker を使用している場合は、microdnf install java-11-openjdk コマンドを実行します。
java_home のパスを控えておきます: java -XshowSettings:properties -version。
Splunk Enterprise に DB Connect App がインストールされていることを確認します。これは Splunk Web UI の Apps セクションで確認できます:
- Splunk Web にログインし、Apps > Find More Apps に移動する
- 検索ボックスで DB Connect を検索する
- Splunk DB Connect の横にある緑色の「Install」ボタンをクリックする
- 「Restart Splunk」をクリックする
DB Connect App のインストールで問題が発生している場合は、追加の手順については このリンク を参照してください。
DB Connect App がインストールされていることを確認したら、[Configuration] -> [Settings] で DB Connect App に java_home のパスを追加し、「Save」をクリックしてから「Reset」を実行します。

ClickHouse 向けに JDBC を設定する
ClickHouse JDBC driver をダウンロードし、次のような DB Connect Drivers フォルダに配置します:
その後、ClickHouse JDBC Driver クラスの詳細を追加するために、$SPLUNK_HOME/etc/apps/splunk_app_db_connect/default/db_connection_types.conf の接続タイプ設定を編集する必要があります。
次のセクションをファイルに追加します:
$SPLUNK_HOME/bin/splunk restart コマンドを実行して Splunk を再起動します。
DB Connect App に戻り、Configuration > Settings > Drivers に移動します。ClickHouse の横に緑色のチェックマークが表示されているはずです。

Splunk の検索を ClickHouse に接続する
DB Connect App の Configuration から Databases -> Identities に移動し、ClickHouse 用の Identity を作成します。
Configuration -> Databases -> Connections から ClickHouse への新しい Connection を作成し、"New Connection" を選択します。

ClickHouse ホストの情報を入力し、"Enable SSL" にチェックが入っていることを確認します。

接続を保存すると、Splunk から ClickHouse への接続が正常に完了します。
エラーが発生した場合は、Splunk インスタンスの IP アドレスを ClickHouse Cloud の IP Access List に追加しているか確認してください。詳細は ドキュメント を参照してください。
SQL クエリを実行する
ここでは、すべてが正しく動作していることを確認するために SQL クエリを実行します。
DB Connect App の DataLab セクションにある SQL Explorer で、接続先を選択します。このデモでは trips テーブルを使用します。

trips テーブルに対して、テーブル内の全レコード数を返す SQL クエリを実行します。

クエリが成功すると、結果が表示されます。
ダッシュボードを作成する
SQL と強力な Splunk Processing Language (SPL) を組み合わせて活用するダッシュボードを作成します。
先に進む前に、まず Deactivate DPL Safeguards に従って SPL のセーフガードを無効化しておく必要があります。
次のクエリを実行して、最も頻繁にピックアップが行われている上位 10 の地区を表示します。
作成された縦棒グラフを表示するには、[Visualization] タブを選択します。

次に、[Save As] > [Save to a Dashboard] をクリックして、ダッシュボードを作成します。
続いて、乗客数に基づく平均運賃を表示する別のクエリを追加します。
今回は、棒グラフの可視化を作成し、先ほどのダッシュボードに保存しましょう。

最後に、乗客数と走行距離の相関関係を示すクエリをもう 1 つ追加します。
最終的なダッシュボードは以下のようになります。

時系列データ
Splunk には、ダッシュボードで時系列データの可視化や表示に利用できる組み込み関数が数百用意されています。ここでは、SQL と SPL を組み合わせて、Splunk で時系列データを扱えるクエリを作成する例を示します。
さらに詳しく知る
Splunk DB Connect およびダッシュボードの作成方法の詳細については、Splunk ドキュメントを参照してください。