SplunkをClickHouseに接続する
Splunkは、セキュリティとオブザーバビリティのための人気のある技術です。また、強力な検索とダッシュボードエンジンでもあります。さまざまなユースケースに対応する数百のSplunkアプリがあります。
特にClickHouseの場合、非常に高性能なClickHouse JDBCドライバを使用して、ClickHouse内のテーブルを直接クエリできるシンプルな統合を提供するSplunk DB Connect Appを活用しています。
この統合の理想的なユースケースは、NetFlow、AvroまたはProtobufバイナリデータ、DNS、VPCフローログ、その他のOTELログといった大規模なデータソースにClickHouseを使用している時です。データはSplunkのインデックス層には取り込まれず、MetabaseやSupersetなどの他のビジュアライゼーション統合と同様に、ClickHouseから直接クエリされます。
目的
このガイドでは、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がインストールされていることを確認したら、DB Connect AppのConfiguration -> Settingsにjava_homeパスを追加し、保存してリセットをクリックします。

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に移動し、Configuration > Settings > Driversに移動します。ClickHouseの横に緑のチェックマークが表示されるはずです:

Splunk検索をClickHouseに接続する
DB Connect App Configuration -> Databases -> Identitiesに移動し、ClickHouse用のアイデンティティを作成します。
Configuration -> Databases -> ConnectionsからClickHouseへの新しい接続を作成し、「新しい接続」を選択します。

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

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

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

クエリが成功すれば、結果が表示されるはずです。
ダッシュボードを作成する
SQLと強力なSplunk Processing Language (SPL)を組み合わせたダッシュボードを作成しましょう。
続行する前に、最初にSPL保護を無効にする必要があります。
最も頻繁にピックアップされる上位10の地域を示す以下のクエリを実行します:
ビジュアライゼーションタブを選択して作成されたカラムチャートを表示します:

「名前を付けて保存」>「ダッシュボードに保存」をクリックしてダッシュボードを作成します。
乗客数に基づいて平均料金を示す別のクエリを追加します。
今回はバー チャートビジュアライゼーションを作成し、以前のダッシュボードに保存します。

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

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