filebeat將日誌傳送到kafka不同分割槽的方法

流螢燈發表於2020-12-03

版本

filebeat 7.10.0

方法

現在filebeat.yml檔案中只會有一個outputs生效,因此不能配置多個outputs傳送到不同的地方,但是可以通過’%{}'引用引數的方法動態的設定傳送目標。


通過fields引數設定kafka的topic,如下配置檔案所示:

# ============================== Filebeat inputs ===============================
filebeat.inputs:

# Each - is an input. Most options can be set at the input level, so
# you can use different inputs for various configurations.
# Below are the input specific configurations.
# ======== 傳送到first topic========
- type: log
  enabled: true
  paths:
    - e:\Lab\Logs\new.log
  fields:
    kafka_topic: first
# ======== 傳送到second topic========
- type: log
  enabled: true
  paths:
    - e:\Lab\Logs\new1.log
  fields:
    kafka_topic: second

# ---------------------------- kafka Output----------------------------
output.kafka:
  # initial brokers for reading cluster metadata hosts是string陣列型別,支援多個kafka例項地址(此處不是配置zookeeper地址)
  hosts: ["139.XXXXX:9092"]

  # 在這裡通過引用fields來指定目標topic
  topic: '%{[fields.kafka_topic]}'
  version: 0.11.0.0
  compression: gzip
  max_message_bytes: 1000000
  codec.format:
    string: '%{[message]}'

相關文章