首页 > 解决方案 > 如何在 filebeat.yaml 中取出重复的配置

问题描述

例如,我在 filebeat 中有一个输入列表

- path: /xxx/xx.log
  enabled: true
  type: log
  fields:
    topic: topic_1

- path: /xxx/ss.log
  enabled: true
  type: log
  fields:
    topic: topic_2

那么我可以将重复的配置作为参考变量吗?例如

- path: /xxx/xx.log
  ${vars}
  fields:
    topic: topic_1

- path: /xxx/ss.log
  ${vars}
  fields:
    topic: topic_2

标签: yamlelastic-stackfilebeatelk

解决方案


您可以使用 YAML 的继承:您的第一个输入用作模型,其他输入可以覆盖参数。

- &default-log
  path: /xxx/xx.log
  enabled: true
  type: log
  fields:
    topic: topic_1

- <<: *default-log
  path: /xxx/ss.log
  fields:
    topic: topic_2

AFAIK 无法定义“抽象”默认值,这意味着您&default-log应该是您的输入之一(而不仅仅是抽象模型)。

(使用YAMLlint验证的 YAML 语法)


推荐阅读