SplunkをClickHouseに接続する
Splunkは、セキュリティと可観測性のための人気技術です。また、強力な検索およびダッシュボードエンジンでもあります。異なるユースケースに対処するための数百のSplunkアプリが存在します。
特にClickHouseに関しては、Splunk DB Connect Appを利用しており、高性能なClickHouse JDBCドライバとの簡単な統合を通じてClickHouse内のテーブルを直接クエリできます。
この統合の理想的なユースケースは、ClickHouseをNetFlow、AvroまたはProtobufバイナリデータ、DNS、VPCフローログ、そしてSplunkで検索しダッシュボードを作成できる他のOTELログなどの大規模データソースに使用している場合です。このアプローチを使用することにより、データはSplunkのインデックスレイヤに取り込まれず、ClickHouseから直接クエリされます。他の可視化統合(例えば、MetabaseやSuperset)と同様です。
目的
このガイドでは、ClickHouse JDBCドライバを使用してClickHouseをSplunkに接続します。ローカルのSplunk Enterpriseバージョンをインストールしますが、データをインデックスすることはありません。代わりに、DB Connectクエリエンジンを通じて検索機能を使用します。
このガイドを通じて、ClickHouseに接続されたダッシュボードを次のように作成できるようになります:

このガイドでは、ニューヨーク市タクシーデータセットを使用します。他にも私たちのドキュメントから使用できるデータセットが多数あります。
前提条件
始める前に次のものが必要です:
- 検索ヘッド機能を使用するための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
.
DB Connect AppがSplunk Enterpriseにインストールされていることを確認してください。Splunk Web UIのアプリセクションで見つけることができます:
- Splunk Webにログインし、Apps > Find More Appsに移動
- 検索ボックスを使用してDB Connectを探す
- Splunk DB Connectの隣にある緑の「インストール」ボタンをクリック
- 「Splunkを再起動」をクリック
DB Connect Appのインストールに問題がある場合は、このリンクを参照して追加の指示を確認してください。
DB Connect Appがインストールされていることを確認したら、java_home
パスをDB Connect Appの設定 -> 設定に追加し、保存をクリックしてリセットします。

ClickHouse用JDBCを構成する
ClickHouse JDBCドライバをDB Connect Driversフォルダーにダウンロードします。
次に、ClickHouse JDBCドライバのクラス詳細を追加するために、 $SPLUNK_HOME/etc/apps/splunk_app_db_connect/default/db_connection_types.conf
の接続タイプ設定を編集する必要があります。
ファイルに次のスタンザを追加します:
$SPLUNK_HOME/bin/splunk restart
を使用してSplunkを再起動します。
DB Connect Appに戻り、設定 > 設定 > ドライバに移動します。ClickHouseの隣に緑のチェックマークが表示されるはずです:

Splunk検索をClickHouseに接続する
DB Connect App設定 -> データベース -> 身元に移動:ClickHouseのための身元を作成します。
設定 -> データベース -> 接続からClickHouseへの新しい接続を作成し、「新しい接続」を選択します。

ClickHouseホストの詳細を追加し、「SSLを有効にする」がチェックされていることを確認します:

接続を保存した後、成功裏にClickHouseに接続できました!
エラーが表示された場合は、ClickHouse Cloud IPアクセスリストにSplunkインスタンスのIPアドレスを追加したことを確認してください。詳細については、ドキュメントを参照してください。
SQLクエリを実行する
すべてが機能するかテストするために、SQLクエリを実行します。
DB Connect AppのDataLabセクションのSQLエクスプローラーで接続詳細を選択します。このデモでは trips
テーブルを使用します:

trips
テーブルのすべてのレコードのカウントを返すSQLクエリを実行します:

クエリが成功すれば、結果が表示されるはずです。
ダッシュボードを作成する
SQLと強力なSplunk処理言語(SPL)の組み合わせを活用したダッシュボードを作成しましょう。
進める前に、最初にSPLの保護を無効化する必要があります。
最も頻繁にピックアップされる上位10の近隣地域を示す次のクエリを実行します:
作成された列グラフを表示するために視覚化タブを選択します:

「名前を付けて保存」をクリックし、ダッシュボードに保存することでダッシュボードを作成します。
乗客数に基づく平均運賃を示す別のクエリを追加しましょう。
今回は、棒グラフ視覚化を作成し、前のダッシュボードに保存します。

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

時系列データ
Splunkには、ダッシュボードが時系列データの可視化とプレゼンテーションに使用できる数百の組み込み関数があります。この例では、SQL + SPLを組み合わせて、Splunkで時系列データと連携できるクエリを作成します。
詳細を学ぶ
Splunk DB Connectやダッシュボードの作り方に関する詳細情報を見つけたい場合は、Splunkのドキュメントをご覧ください。