> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-mintlify-fbfa8bee.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Splunk ダッシュボードを ClickHouse に接続

# Splunk と ClickHouse を接続する

export const ClickHouseSupportedBadge = () => {
  return <div className="ClickHouseSupportedBadge">
            <div className="ClickHouseSupportedIcon">
                <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
                    <path d="M1.30762 1.39073C1.30762 1.3103 1.37465 1.22986 1.46849 1.22986H2.64824C2.72868 1.22986 2.80912 1.29689 2.80912 1.39073V14.4886C2.80912 14.5691 2.74209 14.6495 2.64824 14.6495H1.46849C1.38805 14.6495 1.30762 14.5825 1.30762 14.4886V1.39073Z" fill="currentColor" />
                    <path d="M4.2832 1.39073C4.2832 1.3103 4.35023 1.22986 4.44408 1.22986H5.62383C5.70427 1.22986 5.7847 1.29689 5.7847 1.39073V14.4886C5.7847 14.5691 5.71767 14.6495 5.62383 14.6495H4.44408C4.36364 14.6495 4.2832 14.5825 4.2832 14.4886V1.39073Z" fill="currentColor" />
                    <path d="M7.25977 1.39073C7.25977 1.3103 7.3268 1.22986 7.42064 1.22986H8.60039C8.68083 1.22986 8.76127 1.29689 8.76127 1.39073V14.4886C8.76127 14.5691 8.69423 14.6495 8.60039 14.6495H7.42064C7.3402 14.6495 7.25977 14.5825 7.25977 14.4886V1.39073Z" fill="currentColor" />
                    <path d="M10.2354 1.39073C10.2354 1.3103 10.3024 1.22986 10.3962 1.22986H11.576C11.6564 1.22986 11.7369 1.29689 11.7369 1.39073V14.4886C11.7369 14.5691 11.6698 14.6495 11.576 14.6495H10.3962C10.3158 14.6495 10.2354 14.5825 10.2354 14.4886V1.39073Z" fill="currentColor" />
                    <path d="M13.2256 6.6057C13.2256 6.52526 13.2926 6.44482 13.3865 6.44482H14.5662C14.6466 6.44482 14.7271 6.51186 14.7271 6.6057V9.27354C14.7271 9.35398 14.6601 9.43442 14.5662 9.43442H13.3865C13.306 9.43442 13.2256 9.36739 13.2256 9.27354V6.6057Z" fill="currentColor" />
                </svg>
            </div>
            ClickHouse対応
        </div>;
};

export const Image = ({img, alt, size}) => {
  return <Frame>
      <img src={img} alt={alt} />
    </Frame>;
};

<Tip>
  ClickHouse の audit logs を Splunk に保存したい場合は、["Storing ClickHouse Cloud Audit logs into Splunk"](/ja/integrations/connectors/data-integrations/integrations/splunk) ガイドを参照してください。
</Tip>

Splunk は、セキュリティとオブザーバビリティの分野で広く利用されている技術です。また、強力な検索およびダッシュボード作成エンジンでもあります。さまざまなユースケースに対応する Splunk アプリが数多く提供されています。

ClickHouse 向けには、[Splunk DB Connect App](https://splunkbase.splunk.com/app/2686) を利用します。これは、高性能な ClickHouse JDBCドライバー とシンプルに連携でき、ClickHouse のテーブルを直接クエリできます。

このインテグレーションが特に適しているのは、NetFlow、Avro や Protobuf のバイナリデータ、DNS、VPC フローログ、その他の OTel ログといった大規模なデータソースに ClickHouse を使用し、それらを Splunk 上でチームと共有しながら検索やダッシュボード作成を行うケースです。この方法では、データは Splunk の索引レイヤーに取り込まれず、[Metabase](https://www.metabase.com/) や [Superset](https://superset.apache.org/) などの可視化インテグレーションと同様に、ClickHouse に対して直接クエリされます。

<div id="goal">
  ## 目的​
</div>

このガイドでは、ClickHouse JDBCドライバーを使用して、ClickHouse を Splunk に接続します。Splunk Enterprise のローカル版をインストールしますが、データのインデックス化は行いません。代わりに、DB Connect のクエリエンジンを介して検索機能を使用します。

このガイドを使用すると、ClickHouse に接続された次のようなダッシュボードを作成できるようになります。

<Image img="https://mintcdn.com/private-7c7dfe99-mintlify-fbfa8bee/amY-JDMREAaO7mx6/images/integrations/splunk/splunk-1.png?fit=max&auto=format&n=amY-JDMREAaO7mx6&q=85&s=cf043796679473ddc60b4c6761da8e12" size="lg" border alt="NYC タクシーデータの可視化を表示する Splunk ダッシュボード" width="1600" height="879" data-path="images/integrations/splunk/splunk-1.png" />

<Note>
  このガイドでは、[New York City Taxi dataset](/ja/get-started/sample-datasets/nyc-taxi) を使用します。[ドキュメント](http://localhost:3000/docs/getting-started/example-datasets)には、ほかにも使用できるデータセットが多数あります。
</Note>

<div id="prerequisites">
  ## 前提条件
</div>

開始する前に、以下が必要です。

* search head 機能を使用するための Splunk Enterprise
* ご利用の OS またはコンテナーに、要件を満たす [Java Runtime Environment (JRE)](https://docs.splunk.com/Documentation/DBX/3.16.0/DeployDBX/Prerequisites) がインストールされていること
* [Splunk DB Connect](https://splunkbase.splunk.com/app/2686)
* Splunk Enterprise が稼働する OS インスタンスへの管理者権限または SSH アクセス
* ClickHouse の接続情報 (ClickHouse Cloud を使用している場合は [こちら](/ja/integrations/connectors/data-visualization/metabase-and-clickhouse#1-gather-your-connection-details) を参照)

<div id="install-and-configure-db-connect-on-splunk-enterprise">
  ## Splunk Enterprise に DB Connect をインストールして設定する
</div>

まず、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 の Apps セクションで確認できます。

* Splunk Web にログインし、Apps > Find More Apps に移動します
* 検索ボックスで DB Connect を検索します
* Splunk DB Connect の横にある緑色の「Install」ボタンをクリックします
* 「Restart Splunk」をクリックします

DB Connect App のインストールで問題が発生した場合は、追加の手順について [こちらのリンク](https://splunkbase.splunk.com/app/2686) を参照してください。

DB Connect App がインストールされていることを確認したら、Configuration -> Settings で DB Connect App に `java_home` のパスを追加し、save をクリックしてから reset をクリックします。

<Image img="https://mintcdn.com/private-7c7dfe99-mintlify-fbfa8bee/amY-JDMREAaO7mx6/images/integrations/splunk/splunk-2.png?fit=max&auto=format&n=amY-JDMREAaO7mx6&q=85&s=a410aebac7ae10316d65da6978a20b7d" size="md" border alt="Java Home の設定を表示する Splunk DB Connect の設定ページ" width="1600" height="548" data-path="images/integrations/splunk/splunk-2.png" />

<div id="configure-jdbc-for-clickhouse">
  ## ClickHouse 用の JDBC を設定する
</div>

[ClickHouse JDBCドライバー JAR ファイル](https://github.com/ClickHouse/clickhouse-java/releases/)をダウンロードし、以下の場所にある DB Connect Drivers フォルダーにコピーします。

```bash theme={null}
$SPLUNK_HOME/etc/apps/splunk_app_db_connect/drivers
```

DB Connect App で必要な依存関係をすべて利用できるようにするには、次のいずれかをダウンロードします。

```text theme={null}
- clickhouse-jdbc-<VERSION>-shaded-all.jar (if VERSION < 0.9.0)
- clickhouse-jdbc-<VERSION>-all-dependencies.jar (if VERSION >= 0.9.0)
```

次に、`$SPLUNK_HOME/etc/apps/splunk_app_db_connect/local/db_connection_types.conf` にある接続タイプ設定を編集し、ClickHouse JDBCドライバーのクラス詳細を追加する必要があります。`db_connection_types.conf` に次のスタンザを追加してください。

```text theme={null}
[ClickHouse]
displayName = ClickHouse
serviceClass = com.splunk.dbx2.DefaultDBX2JDBC
jdbcUrlFormat = jdbc:ch://<host>:<port>/<database>
jdbcUrlSSLFormat = jdbc:ch://<host>:<port>/<database>?ssl=true
jdbcDriverClass = com.clickhouse.jdbc.ClickHouseDriver
ui_default_catalog = $database$
```

`$SPLUNK_HOME/bin/splunk restart` を実行して Splunk を再起動します。

DB Connect App に戻り、Configuration > Settings > Drivers に移動します。ClickHouse の横に緑色のチェックマークが表示されているはずです。

<Image img="https://mintcdn.com/private-7c7dfe99-mintlify-fbfa8bee/amY-JDMREAaO7mx6/images/integrations/splunk/splunk-3.png?fit=max&auto=format&n=amY-JDMREAaO7mx6&q=85&s=9a8c87d2912b16866e1d90fa1a590928" size="lg" border alt="ClickHouse ドライバーが正常にインストールされていることを示す Splunk DB Connect のドライバーページ" width="1600" height="581" data-path="images/integrations/splunk/splunk-3.png" />

<div id="connect-splunk-search-to-clickhouse">
  ## Splunk Search を ClickHouse に接続する
</div>

DB Connect App の Configuration -> Databases -> Identities に移動し、ClickHouse 用の Identity を作成します。

Configuration -> Databases -> Connections に移動し、"New Connection" を選択して、ClickHouse への新しい接続を作成します。

<Image img="https://mintcdn.com/private-7c7dfe99-mintlify-fbfa8bee/amY-JDMREAaO7mx6/images/integrations/splunk/splunk-4.png?fit=max&auto=format&n=amY-JDMREAaO7mx6&q=85&s=137bdc35ade41a616ee76a5ea4d5ae14" size="sm" border alt="Splunk DB Connect の新規接続ボタン" width="764" height="1168" data-path="images/integrations/splunk/splunk-4.png" />

<br />

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

<Image img="https://mintcdn.com/private-7c7dfe99-mintlify-fbfa8bee/amY-JDMREAaO7mx6/images/integrations/splunk/splunk-5.png?fit=max&auto=format&n=amY-JDMREAaO7mx6&q=85&s=e81b8e8ce196e4f15193de14fdf04645" size="md" border alt="ClickHouse 用の Splunk 接続設定ページ" width="1254" height="990" data-path="images/integrations/splunk/splunk-5.png" />

接続を保存すると、ClickHouse と Splunk の接続は完了です。

<Note>
  エラーが発生した場合は、Splunk インスタンスの IP アドレスが ClickHouse Cloud の IP Access List に追加されていることを確認してください。詳しくは[ドキュメント](/ja/products/cloud/guides/security/connectivity/setting-ip-filters)を参照してください。
</Note>

<div id="run-a-sql-query">
  ## SQLクエリを実行する
</div>

次に、すべてが正しく動作していることを確認するため、SQLクエリを実行します。

DB Connect App の DataLab セクションにある SQL Explorer で接続情報を選択します。このデモでは `trips` テーブルを使用します。

<Image img="https://mintcdn.com/private-7c7dfe99-mintlify-fbfa8bee/amY-JDMREAaO7mx6/images/integrations/splunk/splunk-6.png?fit=max&auto=format&n=amY-JDMREAaO7mx6&q=85&s=bd2059ea0bd59ecc878c5fc222359895" size="md" border alt="ClickHouse への接続を選択している Splunk SQL Explorer" width="1600" height="866" data-path="images/integrations/splunk/splunk-6.png" />

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

<Image img="https://mintcdn.com/private-7c7dfe99-mintlify-fbfa8bee/amY-JDMREAaO7mx6/images/integrations/splunk/splunk-7.png?fit=max&auto=format&n=amY-JDMREAaO7mx6&q=85&s=042f016c0ca7d29e4e323242f6e5ef4b" size="md" border alt="trips テーブルのレコード数を表示する Splunk SQLクエリの実行" width="1344" height="684" data-path="images/integrations/splunk/splunk-7.png" />

クエリが正常に実行されると、結果が表示されます。

<div id="create-a-dashboard">
  ## ダッシュボードを作成する
</div>

SQL と強力な Splunk Processing Language (SPL) を組み合わせたダッシュボードを作成しましょう。

先に進む前に、まず [DPL Safeguards を無効にする](https://docs.splunk.com/Documentation/Splunk/9.2.1/Security/SPLsafeguards?ref=hk#Deactivate_SPL_safeguards) 必要があります。

次のクエリを実行して、乗車回数が最も多い地区の上位 10 件を表示します。

```sql theme={null}
dbxquery query="SELECT pickup_ntaname, count(*) AS count
FROM default.trips GROUP BY pickup_ntaname
ORDER BY count DESC LIMIT 10;" connection="chc"
```

作成したカラムチャートを表示するには、\[可視化] タブを選択します。

<Image img="https://mintcdn.com/private-7c7dfe99-mintlify-fbfa8bee/amY-JDMREAaO7mx6/images/integrations/splunk/splunk-8.png?fit=max&auto=format&n=amY-JDMREAaO7mx6&q=85&s=96c1088a2d468440608966436b75c79c" size="lg" border alt="上位 10 件の乗車地域を示す Splunk のカラムチャートの可視化" width="1600" height="789" data-path="images/integrations/splunk/splunk-8.png" />

次に、Save As > Save to a Dashboard をクリックしてダッシュボードを作成します。

乗客数に応じた平均運賃を表示する別のクエリを追加しましょう。

```sql theme={null}
dbxquery query="SELECT passenger_count,avg(total_amount)
FROM default.trips GROUP BY passenger_count;" connection="chc"
```

今回は、棒グラフの可視化を作成し、前のダッシュボードに保存しましょう。

<Image img="https://mintcdn.com/private-7c7dfe99-mintlify-fbfa8bee/amY-JDMREAaO7mx6/images/integrations/splunk/splunk-9.png?fit=max&auto=format&n=amY-JDMREAaO7mx6&q=85&s=e6d58efe62f076c9d38d1eb1685cf3d8" size="lg" border alt="乗客数ごとの平均運賃を示すSplunkの棒グラフ" width="1600" height="708" data-path="images/integrations/splunk/splunk-9.png" />

最後に、乗客数と移動距離の相関を示すクエリをもう1つ追加しましょう。

```sql theme={null}
dbxquery query="SELECT passenger_count, toYear(pickup_datetime) AS year,
round(trip_distance) AS distance, count(* FROM default.trips)
GROUP BY passenger_count, year, distance
ORDER BY year, count(*) DESC; " connection="chc"
```

完成したダッシュボードは次のようになります。

<Image img="https://mintcdn.com/private-7c7dfe99-mintlify-fbfa8bee/amY-JDMREAaO7mx6/images/integrations/splunk/splunk-10.png?fit=max&auto=format&n=amY-JDMREAaO7mx6&q=85&s=c7566ed866d15a2a2017b1befb44fa2e" size="lg" border alt="NYCのタクシーデータを複数の可視化で表示した完成版のSplunkダッシュボード" width="1600" height="734" data-path="images/integrations/splunk/splunk-10.png" />

<div id="time-series-data">
  ## 時系列データ
</div>

Splunk には、ダッシュボードで時系列データを可視化・表示するために使える組み込み関数が数百用意されています。この例では、SQL と SPL を組み合わせて、Splunk で時系列データを扱えるクエリを作成します

```sql theme={null}
dbxquery query="SELECT time, orig_h, duration
FROM "demo"."conn" WHERE time >= now() - interval 1 HOURS" connection="chc"
| eval time = strptime(time, "%Y-%m-%d %H:%M:%S.%3Q")
| eval _time=time
| timechart avg(duration) as duration by orig_h
| eval duration=round(duration/60)
| sort - duration:
```

<div id="learn-more">
  ## 詳細情報
</div>

Splunk DB Connect やダッシュボードの作成方法について詳しくは、[Splunk documentation](https://docs.splunk.com/Documentation)を参照してください。
