IngestAction使って基本的にS3全保管しつつ、Splunkに必要なデータだけ送ってお得に済ます

# はじめに
- Splunkは安くない
- データには「高い価値で少量のデータ」、「低い価値で大量のデータ」が存在する
- でも、Splunkのスキーマオンザフライ技術はスゴイから、可能な限りデータはSplunkにもいれておきたい
- このニーズを解決するために製品の標準機能として生まれてきた[IngestAction](https://www.youtube.com/watch?v=-bEyHdMLbkA)**
** 元々はHWFなどを使ってCLIで[設定](https://docs.splunk.com/Documentation/Splunk/9.1.0/Data/Anonymizedata#Anonymize_data_with_a_regular_expression_transform)して実現していた機能がGUIでも設定できるようになった

# やりたいこと
- 今回は以下要件を実現する設定を入れてみる

**1. SysmonデータをすべてS3に保管**
**2. 特定イベントIDだけをフィルタして、それ以外のイベントIDをSplunkにindex**

![スクリーンショット 2023-08-30 17.39.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/185759/34d7729d-5878-7914-9ad3-c0306c22ab0b.png)


# How to

#### AWS側の準備

- S3バケットを作成（sysmon-all）
![スクリーンショット 2023-08-30 15.20.48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/185759/851f70a6-8c9e-e09f-ee4d-f5d39bd8fc4b.png)

- IAM RollかKeyでアクセスできるようにIAMから設定
    - IAMポリシー作成し、IAMロールにアタッチ
![スクリーンショット 2023-08-30 15.40.20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/185759/407630e5-bf57-2518-e9ea-f5419825a15a.png)


    - IAMロールをIAMユーザーに紐づけて、アクセスキー＆シークレットキーを確認
![スクリーンショット 2023-08-30 15.36.38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/185759/a322e39f-68da-2439-5d1c-65a461916620.png)


#### Splunk側の準備
- SplunkのSingleインスタンス（SH兼IDX）を用意

- [取り込みアクション]から設定

![スクリーンショット 2023-08-30 15.42.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/185759/2064e0a4-2774-14c9-7026-8b257cbe7f44.png)

- Ingest Action用のDestinationを設定

![スクリーンショット 2023-08-30 15.43.42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/185759/37cb0cbb-4160-95f8-9fc7-2d380698cfdf.png)

- Destination Titleは適当に、S3 Buket NameとS3 Endpointを設定

![スクリーンショット 2023-08-30 15.44.45.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/185759/7943f4aa-2097-0597-6700-ec568314175e.png)

-　IAMユーザーのアクセスキーとシークレットキーをここで設定し、テスト接続を実施

![スクリーンショット 2023-08-30 15.44.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/185759/b29a48b7-0c6c-d7a8-6ffb-b77c769f3e99.png)

- 「成功」したら、S3にテストデータが作成されればOK

![スクリーンショット 2023-08-30 15.45.51.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/185759/d8879d28-ab24-d8a8-7dd9-04a2c666f80b.png)

- 続いてIngest Action用のRuleを設定

![スクリーンショット 2023-08-30 15.46.25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/185759/a09f19a2-6bc2-f435-61f7-73b77c5764c5.png)

- Indexed Dataを選べば、今後indexされるデータを対象にルールが適用されることになります。すでに取り込み済みのデータは対象にはなりません

![スクリーンショット 2023-08-30 15.50.12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/185759/77415491-c670-68c6-b054-d1f52b3b06e0.png)

- まず「1. SysmonデータをすべてS3に保管」を実現するために、条件（なし）＝すべて、データの送り先に先程作成したS3宛先の設定を選びます

![スクリーンショット 2023-08-30 15.50.21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/185759/94706247-dd81-7380-00c4-a6045acabacb.png)

- 続いて「2. 特定イベントIDだけをフィルタして、それ以外のイベントIDをSplunkにindex」を作成します。
    - **_rawデータを対象にして、「<EventID>3」に該当するものをフィルタします**


![スクリーンショット 2023-08-30 15.58.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/185759/ceceb0b5-10e0-32ba-8eaf-125ee299fa81.png)

- 保存。と同時にIngestActionルールは開始されます。

![スクリーンショット 2023-08-30 15.51.20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/185759/9511c9fd-c2c7-8f39-d133-c9407cba78c0.png)



# 結果

- S3に届いているデータを確認
![スクリーンショット 2023-08-30 15.54.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/185759/fe11a13b-cafa-222d-12e6-1a6b44a0d1e5.png)

- 日付のディレクトリを下ります。 ログが圧縮して保存されています

![スクリーンショット 2023-08-30 15.55.17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/185759/775e0f9f-d8a5-5d92-0e6d-72f98b892628.png)

-　圧縮解凍すると、<EventID>3に一致するデータも保管されています

![スクリーンショット 2023-08-30 16.06.19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/185759/8e8a6fde-9148-3e66-b010-a84d21db039e.png)


- Splunkにindexされたデータを確認
    - 見事に<EventID>3に一致するデータだけindexされていません。それ以外はindexされています

![スクリーンショット 2023-08-30 17.03.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/185759/40f30ecd-cda8-b55c-a826-c2436afe90ae.png)


## ポイント

- ルールの設定の仕方が不安でしたが、そんなときに参考になったのは以下のsplunk lanternサイトでした
    - [Sampling data with ingest actions for data reduction](https://lantern.splunk.com/Splunk_Platform/Product_Tips/Data_Management/Sampling_data_with_ingest_actions_for_data_reduction)