条件でequalsを指定した時にエラー発生

filebeat.ymlにて、タグを使用してpipelinesを設定しようとしています。

以下のように、条件を「conains」にすると正常にfilebeatが起動します。

=========================================================
#-------------------------- Elasticsearch output ------------------------------
output.elasticsearch:
pipelines:
- pipeline: "squid_accessES"
when.contains:
tags: "access"

- pipeline: "2squid_accessES"
  when.contains:
    tags: "test"

=========================================================

しかし、条件を「when.equals:」にすると、起動時に以下のようなエラーが発生します。

filebeat: 2019-09-19T10:47:17.489+0900#011WARN#011[conditions]#011conditions/equals.go:100#011unexpected type string in equals condition as it accepts only integers, strings, or booleans.

条件は数値か文字列しか許容しない旨のエラーに見えるのですが、条件として文字列を設定しており、containsの時は正常に動作するため、エラーの原因が分かりません。
理由について、ご教示いただけないでしょうか

https://www.elastic.co/guide/en/beats/filebeat/7.3/defining-processors.html#condition-equals

"The condition accepts only an integer or a string value."とあります。
tagsは配列だと思うので、エラーになっているのかと。

ご回答ありがとうございます。以下の指定方法で解決しました。

pipelines:
- pipeline: "squid_accessES"
when.equals:
tags[0]: "access"

- pipeline: "2squid_accessES"
  when.equals:
    tags[0]: "test"

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