【Filebeat】s3のログ情報を取得する方法

お世話になります。

Filebeatのs3 inputについて質問です。
公式ドキュメント

s3にログをアップロード後、s3→SQS→Filebeatの疎通を実施しています。

Filebeatのymlにて、ログがアップロードされたs3のバケット名、ファイル名を取得する方法があれば教えてください。
取得理由:バケット名、ファイル名によりindex名を振り分けたいため情報が必要です。

SQSに格納されているメッセージには以下の情報が出力されています。
この情報を取得出来ればと考えております。

"bucket":{"name":"(s3のバケット名)"
"object":{"key":"(ログ名)",

御存知の方はお手数ですが返信をお願い致します。

https://www.elastic.co/guide/en/beats/filebeat/current/elasticsearch-output.html#index-option-es

たとえば、バケット名でindexを分けたいということであれば、上記の内容を参考にして以下のように書けるかと思います。

#-------------------------- Elasticsearch output ------------------------------
output.elasticsearch:
  # Array of hosts to connect to.
  hosts: ["localhost:9200"]
  index: "test-%{[aws.s3.bucket.name]}"

conditionsに書きたいということでしたら、例えばobject.keyではこのように書けるかと思います。

#-------------------------- Elasticsearch output ------------------------------
output.elasticsearch:
  # Array of hosts to connect to.
  hosts: ["localhost:9200"]
  index: "test-%{[aws.s3.bucket.name]}"
  indices:
    - index: "test-%{[aws.s3.bucket.name]}-aaaaa"
      when.contains:
        aws.s3.object.key: "hoge"
    - index: "test-%{[aws.s3.bucket.name]}-bbbbb"
      when.contains:
        aws.s3.object.key: "bar"

ご参考になれば幸いです

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

Filebeatにて以下変数名で情報を受け取ることができるのですね。

aws.s3.bucket.name
aws.s3.object.key

参考になりました。
ありがとうございました。

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