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

このガイドでは、New York City Taxi datasetを使用しています。他にも当社のドキュメントから使用できるデータセットが多数あります。
前提条件
始める前に、次のものが必要です:
- 検索ヘッド機能を使用するためのSplunk Enterprise
- OSまたはコンテナにJAVAランタイム環境 (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の隣にある緑の「Install」ボタンをクリック
- 「Restart Splunk」をクリック
DB Connect Appのインストールで問題が発生した場合は、こちらのリンクを参照して追加の指示を確認してください。
DB Connect Appがインストールされていることを確認したら、java_homeパスをDB Connect AppのConfiguration -> Settingsに追加し、保存してからリセットします。

ClickHouseのためにJDBCを構成する
ClickHouse JDBCドライバーをDB Connect Driversフォルダーにダウンロードします。例:
次に、$SPLUNK_HOME/etc/apps/splunk_app_db_connect/default/db_connection_types.conf
で接続タイプの構成を編集し、ClickHouse JDBCドライバーのクラス詳細を追加する必要があります。
ファイルに次のスタンザを追加します:
$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への新しい接続を作成し、「New Connection」を選択します。

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

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

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

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

「Save As > Save to a Dashboard」をクリックしてダッシュボードを作成します。
乗客数に基づく平均運賃を示す別のクエリを追加しましょう。
今回は、棒グラフの視覚化を作成して以前のダッシュボードに保存します。

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

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