ClickHouse/docs/ja/integrations/data-visualization/splunk-and-clickhouse.md
2024-11-18 11:58:58 +09:00

179 lines
9.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
sidebar_label: Splunk
sidebar_position: 198
slug: /ja/integrations/splunk
keywords: [splunk, integration, data visualization]
description: SplunkダッシュボードをClickHouseに接続する
---
# SplunkをClickHouseに接続する
Splunkはセキュリティと可観測性のための人気のある技術です。また、強力な検索エンジンとダッシュボーディングエンジンでもあります。さまざまなユースケースに対応するための数百のSplunkアプリが利用可能です。
ClickHouseに特化した利用として、[Splunk DB Connect App](https://splunkbase.splunk.com/app/2686)を活用し、ClickHouse JDBCドライバーを使ってClickHouseのテーブルを直接クエリします。
この統合の理想的なユースケースは、ClickHouseをnetflow、AvroまたはProtobufバイナリデータ、DNS、VPCフローログ、その他のOTELログのような大規模データソースのために使用している場合です。これらのデータはSplunk上で検索やダッシュボード作成を行うためにチームと共有できます。このアプローチを使用することで、データはSplunkのインデックスレイヤーに取り込まれず、[Metabase](https://www.metabase.com/)や[Superset](https://superset.apache.org/)のような他のビジュアライゼーション統合と同様にClickHouseから直接クエリされます。
## 目標
このガイドでは、ClickHouse JDBCドライバーを使用してClickHouseをSplunkに接続します。ローカル版のSplunk Enterpriseをインストールしますが、データはインデックス化されません。代わりに、DB Connectクエリエンジンを通して検索機能を使用します。
このガイドを使用すると、ClickHouseに接続された以下のようなダッシュボードを作成できます
![Splunk 1](../images/splunk/splunk-1.png)
:::note
このガイドでは[ニューヨーク市タクシーデータセット](https://clickhouse.com/docs/ja/getting-started/example-datasets/nyc-taxi)を使用します。他にも使用可能なデータセットは[当社のドキュメント](http://localhost:3000/docs/en/getting-started/example-datasets)にあります。
:::
## 前提条件
開始する前に必要なもの:
- 検索ヘッド機能を使用するための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を使用している場合の詳細は[こちら](https://clickhouse.com/docs/ja/integrations/metabase#1-gather-your-connection-details)を参照)
## 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のインストールに問題がある場合は、[こちらのリンク](https://splunkbase.splunk.com/app/2686)を参照して追加の指示を得てください。
DB Connect Appがインストールされていることを確認したら、java_homeパスをConfiguration -> SettingsでDB Connect Appに追加し、保存をクリックしてリセットします。
![Splunk 2](../images/splunk/splunk-2.png)
## ClickHouse用のJDBCを設定する
[ClickHouse JDBCドライバー](https://github.com/ClickHouse/clickhouse-java)をDB Connect Driversフォルダにダウンロードします
```
$SPLUNK_HOME/etc/apps/splunk_app_db_connect/drivers
```
次に、ClickHouse JDBC Driverクラスの詳細を追加するために、`$SPLUNK_HOME/etc/apps/splunk_app_db_connect/default/db_connection_types.conf`ファイルで接続タイプの設定を編集する必要があります。
ファイルに次のセクションを追加します:
```
[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の横に緑色のチェックマークが表示されているはずです
![Splunk 3](../images/splunk/splunk-3.png)
## Splunk SearchをClickHouseに接続する
DB Connect App Configuration -> Databases -> Identitiesに移動し、ClickHouseのIDを作成します。
Configuration -> Databases -> ConnectionsからClickHouseへの新しい接続を作成し、「New Connection」を選択します。
<img width="100" style={{width: '250px'}} src={require('../images/splunk/splunk-4.png').default} class="image"/>
<br />
ClickHouseホストの詳細を追加し、「Enable SSL」にチェックを入れる
![Splunk 5](../images/splunk/splunk-5.png)
接続を保存した後、SplunkにClickHouseに正常に接続されます
:::note
エラーが発生した場合は、SplunkインスタンスのIPアドレスがClickHouse Cloud IPアクセスリストに追加されていることを確認してください。詳細は[こちらのドキュメント](https://clickhouse.com/docs/ja/cloud/security/setting-ip-filters)を参照ください。
:::
## SQLクエリを実行する
すべてが正常に動作するかテストするためにSQLクエリを実行します。
DB Connect AppのDataLabセクションからSQL Explorerで接続の詳細を選択します。このデモでは`trips`テーブルを使用します:
![Splunk 6](../images/splunk/splunk-6.png)
テーブル内のすべてのレコードのカウントを返すSQLクエリを`trips`テーブルで実行します:
![Splunk 7](../images/splunk/splunk-7.png)
クエリが成功した場合、結果が表示されるはずです。
## ダッシュボードを作成する
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
dbxquery query="SELECT pickup_ntaname, count(*) AS count
FROM default.trips GROUP BY pickup_ntaname
ORDER BY count DESC LIMIT 10;" connection="chc"
```
カラムチャートを作成するために可視化タブを選択します:
![Splunk 8](../images/splunk/splunk-8.png)
「Save As > Save to a Dashboard」をクリックしてダッシュボードを作成しましょう。
次に、乗客数に基づく平均料金を示すクエリを追加しましょう:
```sql
dbxquery query="SELECT passenger_count,avg(total_amount)
FROM default.trips GROUP BY passenger_count;" connection="chc"
```
今回は、バーチャートの可視化を作成し、以前のダッシュボードに保存します。
![Splunk 9](../images/splunk/splunk-9.png)
最後に、乗客数と旅行距離の相関を示すもう一つのクエリを追加します:
```sql
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"
```
最終的なダッシュボードは次のようになります:
![Splunk 10](../images/splunk/splunk-10.png)
## 時系列データ
Splunkには、ダッシュボードで時系列データの可視化とプレゼンテーションに使用できる数百の組み込み関数があります。この例では、時系列データで動作するクエリをSplunkで作成するために、SQL + SPLを組み合わせます。
```sql
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:
```
## 詳細を学ぶ
Splunk DB Connectおよびダッシュボード構築に関する詳細情報をお探しの場合、[Splunkのドキュメント](https://docs.splunk.com/Documentation)をご覧ください。