Filebeat 指定したindex名で登録されない

お世話になります。

現在、Filebeat→Elasticsearch(Ingest node)の疎通を試しています。

バージョン…各7.3

◆実現したいこと
・Filebeat.ymlに定義したindex名で登録
・Filebeat.ymlに定義したingest nodeの処理を実施

◆設定値

filebeat.yml

#=========================== Filebeat inputs =============================

filebeat.inputs:

- type: log
 tags: ["access"]
 enabled: true
 paths:
   - /var/log/squid/access*.log

- type: log
 tags: ["cache"]
 enabled: true
 paths:
  - /var/log/*.log
  
#==================== Elasticsearch template setting ==========================

setup.template.name: "squid"
setup.template.pattern: "squid*"
setup.template.settings:
  index.number_of_shards: 5

#-------------------------- Elasticsearch output ------------------------------

output.elasticsearch:
   hosts: ["XX.XXX.XXX.XXX:9200"]

  # Optional protocol and basic auth credentials.
  #protocol: "https"
   username: "elastic"
   password: "XXX"

   pipelines:
     - pipeline: "squid_access"
       when.equals:
         tags[0]: "access"
     - pipeline: "squid_cache"
       when.equals:
         tags[0]: "cache"

   indices:
     - index: "squid_access"
        when.equals:
          tags[0]: "access"
     - index: "squid_cache"
        when.equals:
          tags[0]: "cache"

   setup.ilm.rollover_alias: "squid"

◆ご質問

上記設定値にてFilebeatのinput path「/var/log/*.log」にログを格納したところ、
indexは登録されましたが以下の結果となりました。

・index名が「filebeat-7.4.0-2019.10.03-000001」とならない
→tags「cache」のデータのため、index名は「squid_cache」になる想定でした

・登録されたデータがingest nodeの処理を通っていない
→pipeline: "squid_cache"にてKV Proccesorを定義しているのですが処理結果が設定されていない

https://www.elastic.co/guide/en/beats/filebeat/current/elasticsearch-output.html
上記のindexを参照し以下の項目を設定する必要があると認識しています。

setup.template.name
setup.template.pattern
setup.ilm.rollover_alias(ILMが有効になっているため)

設定値に誤り・不足はありますでしょうか。
指定したindex名とならない原因が分かりましたら教えてください。

tags[0]のequalsではなくcontainsで書いた場合ですと、動かしてみたところ問題なさそうに見えます。

when.equalsのところをcontainsにし、tags[0]をtagsに変更しただけです。

output.elasticsearch:
  hosts: ["localhost:9200"]

 # (中略)

  pipelines:
    - pipeline: "squid_access"
      when.contains:
        tags: "access"
    - pipeline: "squid_cache"
      when.contains:
        tags: "cache"

  indices:
    - index: "squid_access"
      when.contains:
        tags: "access"
    - index: "squid_cache"
      when.contains:
        tags: "cache"

  setup.ilm.rollover_alias: "squid"

Index名やPipelineの実行が期待通りとならない件については、これで確認いただけるのではないかと思います。
お試しください。

返信が遅れ失礼しました。

回答頂きありがとうございます。

when.equalsのところをcontainsにし、tags[0]をtagsに変更しただけです。
→上記にて試したところうまくいきました。

大変助かりました。ありがとうございました。

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