SplunkでCustom Datamodelを作ってリンク分析 by Sigbay

はじめに
---
- リンク分析とは？
    - **リンク分析とは、電話通話、FAX 通話、メールなど 2 者(または 1 対多)の間に発生する通信データの頻度に注目し、n者間のつながりをグラフによってビジュアル化することで、互いに関係を持っている特定グループを発見する方法である。**
    - 参考記事：[リンク分析](https://econo.twinkle.cc/marketing/link_analysis.php#:~:text=%E3%83%AA%E3%83%B3%E3%82%AF%E5%88%86%E6%9E%90%E3%81%A8%E3%81%AF%E3%80%81%E9%9B%BB%E8%A9%B1,%E7%99%BA%E8%A6%8B%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95%E3%81%A7%E3%81%82%E3%82%8B%E3%80%82)
- SplunkのAppにも色々なリンク分析用の可視化appがあります
    - [Force Directed App For Splunk](https://splunkbase.splunk.com/app/3767/)
![スクリーンショット 2020-11-30 13.10.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/185759/187a8d31-b70d-7a81-1e5f-ff8353af7357.png)
    - [Network Diagram Viz](https://splunkbase.splunk.com/app/4438/)
![スクリーンショット 2020-11-30 13.16.21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/185759/eb8dde4e-ab19-2467-1eac-e2a8766ffe2e.png)
- そんな中、.con20のとあるセッションで最新のリンク分析appの紹介がありましたのでそれを試してみた話です。
    - [SEC1164C - Fraud, the Missing Link](https://conf.splunk.com/files/2020/slides/SEC1164C.pdf)


Sigbay Appとは
---
- SplunkパートナーのSibgay社が作成して無償で提供しているappです。
![スクリーンショット 2020-11-30 13.18.58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/185759/7d90c0c3-215b-5f7c-a393-9691d556ac80.png)
- Sigbay Link Analysis は、**技術者ではないビジネスユーザーが大量の複雑なデータから実用的な洞察を得ることを可能にします。**という可視化のappです。
- Appの特徴
    - 高速分析を実現するために[DMA（データモデルアクセラレーション）](https://qiita.com/odorusatoshi/items/932ade381d40644b3009)のデータを対象にしている
    - マウスクリックしながらピボット調査ができます
    - Appの利用は**無償！**

 
使い方
---

### Sigbay appのダウンロード＆インストール
- Splunk baseの以下リンクからSigbay社のサイトに飛んでアカウント登録してダウンロードします。
    - https://splunkbase.splunk.com/app/5126/
![スクリーンショット 2020-11-30 13.41.26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/185759/d6638d4d-9e90-8254-08ad-589dbf4cbc4d.png)

- ダウンロードしたAppをSplunkにインストール


### Sigbay appで読むデータの準備（カスタムDMAの作成）
- Sigbayを使う時はDMA必須です。なのでカスタムDMAを用意します。
    - 今回の対象データはstream:httpです。
        - このときの[記事](https://qiita.com/odorusatoshi/items/40a0bf66d8078e1f6b35)で用意したデータを利用

- まずDMAを1から作成
    - [設定] - [データモデル]のページに移動
- 新しいデータモデルを以下のように作成

![スクリーンショット 2020-11-30 14.03.20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/185759/807738a4-8f8a-538d-2348-8384da176159.png)

- ポイントは[データセット]から[ルートイベント]を選択

![スクリーンショット 2020-11-30 14.06.26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/185759/e1011e7e-0e94-505b-2df5-22b921258853.png)

- データセットの名前とIDは適当に、ポイントは制約に**DMA化したいデータ**の検索を入力すること
    - **この例の場合、不要なデータをDMA化したくないのでstream:http内のuri_path=*loginかつuser=*が含まれるデータに絞り込んでいます。**

![スクリーンショット 2020-11-30 14.05.24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/185759/f9154800-a03f-36cb-a0a8-2bbab90310ff.png)

- 初期設定状態は最低限のフィールドしか認識していませんので、DMA化したいフィールドを追加していきます。
![スクリーンショット 2020-11-30 14.11.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/185759/b22ea2fe-b7aa-3e3e-3570-fbf4e7f3794c.png)

- [フィールドの追加] - [自動抽出]にてフィールドを選択していきます

![スクリーンショット 2020-11-30 14.12.34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/185759/b96bf870-05e0-2179-b34d-163baf4e5b18.png)

-  DMAに含めたいフィールドをクリックしていき保存します

![スクリーンショット 2020-11-30 14.12.28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/185759/5a15598a-6815-1f79-5084-6ce46ba4d839.png)


- 権限を他のappからも参照できるように設定しておきます

![スクリーンショット 2020-11-30 14.17.17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/185759/747f83ca-d22a-82ac-5d85-1b55f27a52a8.png)


- データモデルをAcceleration（高速化)していきます！

![スクリーンショット 2020-11-30 14.15.24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/185759/330033cd-c92e-eed2-3324-0aa202c59299.png)


- [高速化]にcheckをいれて、サマリー範囲を任意の期間に指定して保存

![スクリーンショット 2020-11-30 14.18.51.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/185759/d67105fc-b9b9-7227-f2b7-5e7c7e7217d2.png)

- 高速化処理が走り出すとデータモデル設定画面から**稲妻**アイコンが黄色くなります。

![スクリーンショット 2020-11-30 14.20.45.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/185759/63d37074-a763-ef3e-87e7-6368661ab1a0.png)

- 高速化のステータスが100.00%完了になったらDMAが完成していることになります。

- SPLコマンドでcheckしてみましょう

```SPL:
|tstats count from datamodel=webauth by webauth.src webauth.http_user_agent webauth.url
```

![スクリーンショット 2020-11-30 14.24.59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/185759/b71ae9d5-fa27-8ae1-99b0-c55ea9aebb5e.png)

- これでSigbayで分析するデータの準備が整いました。

### Sigbay appで可視化
- ちゃんとした使い方はappのダウンロード時に提供されるガイドとyoutube動画を見てみてください。

- まず|makeresultsコマンドの実行結果をもとにパネルをダッシュボードに組み込みます（ダミーサーチが必要な模様）
![スクリーンショット 2020-11-30 14.29.12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/185759/e5d80f4f-7a16-8eeb-cc5f-66af0634fc8c.png)

- 該当パネルを編集し、作成したデータモデル、データセット、フィールド、Aggregatesを指定していきます

 ![スクリーンショット 2020-11-30 14.30.35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/185759/900f250f-d69d-b4f0-9f1d-d26157dec31e.png)

- スルスルっとフィールドが見えてきました！

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/185759/fbf7fa13-e7e5-e893-5ce7-745911bc5dc1.png)


- srcフィールドの気になる値をマウスでクリックすると、紐づくuser,password,action,http_user_agentがリンクされてハイライトされました

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/185759/65558d56-cacf-7619-ff52-2f5bec6743ee.png)

- 今度はuserのadminをクリックしてみます
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/185759/777d2b1d-eca3-54de-5876-3fe38282fcd1.png)

- adminを使ってアクセスしてきたsrcがハイライトされてピボット調査ができます！


コメント
---
- おしゃれなスパイダーネットよりもおそらく実用的
    - 大容量のデータポイントになっても表示が崩れることがない
- DMA必須なのでこの記事を参考にDMAに慣れてください！