Как вложить json логи с Fluentd? - PullRequest
       20

Как вложить json логи с Fluentd?

0 голосов
/ 03 февраля 2020

Мне нужно преобразовать журнал следующим образом:

"key1": "os",

"key2": "linux",

"key3 ":" redhat "

To:

"Data": [{
    "header": [{
        "name": "some-app"
    }],
    "tags": {
      "key1": "os",
      "key2": "linux",
      "key3": "redhat"
 }]

Я пробовал record_transformer, но все еще не могу это сделать. Пожалуйста, кто-нибудь может помочь с этим?

Ответы [ 2 ]

0 голосов
/ 14 февраля 2020

Предположим, что это журнал kubernetes, вы можете попробовать это:

<filter **.kubernetes.**>
  @type record_transformer
  enable_ruby true
  <record>
    tags ${{key1: "os", key2: "linux", key3: "redhat", key4: "#{ENV['HOSTNAME']}", key5: record.dig("kubernetes", "namespace_name"))}}
  </record>
  remove_keys $.kubernetes, $.docker
</filter>

В вашем случае вам не нужны remove_keys, но его можно использовать для уменьшения размера журнала.

0 голосов
/ 13 февраля 2020

Не уверен, если кто-то ищет тот же ответ, в моем случае решено с помощью плагина JQ, который помог обработать большинство случаев изменений в формате журнала:

https://github.com/Gimi/fluent-plugin-jq

...