# NESTされたフィールドに対するwhitelistの適用について

**URL:** <https://discuss.elastic.co/t/nest-whitelist/306282>\
**Category:** 日本語による質問・議論はこちら\
**Created:** [June 3, 2022, 5:14am UTC](https://discuss.elastic.co/t/nest-whitelist/306282 "2022-06-03T05:14:11Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![t-nakata](https://avatars.discourse-cdn.com/v4/letter/t/8491ac/32.png) [@t-nakata](https://discuss.elastic.co/u/t-nakata)\
**Post date:** [June 3, 2022, 5:14am UTC](https://discuss.elastic.co/t/nest-whitelist/306282/1 "2022-06-03T05:14:11Z")

</div>

下記のようなドキュメントをlogstashにて解析し、Elasticsearchに連携しています。

```auto
～省略～
"timestamp_log": "2022-06-03T09:01:28.000+09:00",
"awsRegion": "us-east-1",
"requestParameters": {
  "template": false,
  "resourceId": "5tfEXAMPLE",
  "restApiId": "3rbEXAMPLE"
～省略～
}

```

ネストされたフィールドrequestParameters.resourceIdのみをElasticsearchに連携したい場合、rubyフィルターで実現可能でしょうか？もしくは他に実現方法があればご教示いただけますと幸いです。  
pruneフィルターはネストされたフィールドには対応していない認識なので、rubyフィルターで代用できないかと思っております

---

<div class="post-metadata">

**Author:** ![Yos](https://avatars.discourse-cdn.com/v4/letter/y/ed8c4c/32.png) [@Yos](https://discuss.elastic.co/u/Yos)\
**Post date:** [June 3, 2022, 5:23am UTC](https://discuss.elastic.co/t/nest-whitelist/306282/2 "2022-06-03T05:23:27Z")

</div>

@t-nakata さん

> [@Logstash prune nested fields](https://discuss.elastic.co/t/logstash-prune-nested-fields/218984):
>
> HI TEAM, I am using ELK version 7.0. Facing an issue with prune filter. I need to blacklist exact nested fields coming from filebeat. When i tried with below format, prune is unable to blacklist host.architecture field. Example: prune { blacklist\_names =\> ["^[host][architecture]$" ] } Regards, GR.

が参考になりませんでしょうか？

これを参考に私もネストフィールドの一部を削除したりしています。

---

<div class="post-metadata">

**Author:** ![t-nakata](https://avatars.discourse-cdn.com/v4/letter/t/8491ac/32.png) [@t-nakata](https://discuss.elastic.co/u/t-nakata)\
**Post date:** [June 3, 2022, 5:28am UTC](https://discuss.elastic.co/t/nest-whitelist/306282/3 "2022-06-03T05:28:34Z")

</div>

ご回答ありがとうございます。頂いたページは私も見たのですが、これは指定したフィールドを削除する処理になるかと思います。(pruneフィルターのblacklist相当)  
今回扱うドキュメントはJSON形式となっており、事前に存在しうるフィールドの抽出が困難なため、指定したフィールドのみを連携する処理としたい(pruneフィルターのwhitelist相当)ので、このページとは処理が異なると思っており、こちらに投稿させて頂きました

---

<div class="post-metadata">

**Author:** ![Yos](https://avatars.discourse-cdn.com/v4/letter/y/ed8c4c/32.png) [@Yos](https://discuss.elastic.co/u/Yos)\
**Post date:** [June 3, 2022, 6:02am UTC](https://discuss.elastic.co/t/nest-whitelist/306282/4 "2022-06-03T06:02:50Z")

</div>

そういう事情があるんですね。

[requestParameters][resourceId]をネストではない新たなフィールドにコピーし、  
その新たなフィールドをwhitelistにし、pruneで新たなフィールド以外を削除する  
のではダメでしょうか？(すみません、試してはおりません)

```auto
mutate{
  copy => {
    "[requestParameters][resourceId]" => "NewField"
  }
}

prune{
  whitelist_names => ["^NewField$"]
}

```

---

<div class="post-metadata">

**Author:** ![t-nakata](https://avatars.discourse-cdn.com/v4/letter/t/8491ac/32.png) [@t-nakata](https://discuss.elastic.co/u/t-nakata)\
**Post date:** [June 3, 2022, 7:08am UTC](https://discuss.elastic.co/t/nest-whitelist/306282/5 "2022-06-03T07:08:06Z")

</div>

ありがとうございます。可能であればネストされたフィールド構造は維持したいと考えております。  
下記によるとrubyでも実現できる旨の記載があるので、問い合わせさせて頂きました。頂いた方式も視野に入れつつ検討しようと思います

> [@Prune filter plugin - How whitelist a nested field?](https://discuss.elastic.co/t/prune-filter-plugin-how-whitelist-a-nested-field/255720):
>
> Documentation at has this example and it mentions that it would allow only "msg" through. filter { prune { whitelist\_names =\> ["^msg$"] } } If I have a single record that has "source" =\> { "bytes" =\> 172, "ip" =\> "192.168.56.105", "port" =\> 38996 }, ..... "server" =\> { "bytes" =\> 2400, "ip" =\> "192.168.56.102", "port" =\> 9200 }, Notice how both have the "ip" field. How would I go about on…

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [July 1, 2022, 7:08am UTC](https://discuss.elastic.co/t/nest-whitelist/306282/6 "2022-07-01T07:08:22Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
