как вставить поля в журнал с помощью плагина fluentd - PullRequest
0 голосов
/ 29 сентября 2019

Я настраиваю fluentd для пересылки журнала на сервер ELK и хочу вставить некоторые поля в запись журнала, как я могу это реализовать?

Я знаю, что существует плагин с именем 'record_transformer',Я могу вставить простой ключ: формат значения, но я хочу вставить некоторый блок json с uuid, путем к файлу журнала и т. Д.

Например, перед тем, как сообщение журнала будет

{
  "app": "default",
  "logger": "org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor",
  "level": "INFO",
  "class": "org.springframework.scheduling.concurrent.ExecutorConfigurationSupport",
  "method": "shutdown",
  "file": "ExecutorConfigurationSupport.java",
  "line": 208,
  "thread": "Thread-7",
  "message": "Shutting down ExecutorService"
}

И я хочу вставить ниже json в журнал, uuid должен быть сгенерирован и уникален, смещение должно быть номером строки позиции файла журнала

{
"agent": {
"id": "{uuid}"
},
"log": {
"file": {
"path": "/path/to/log/file"
},
"offset": <log file line number>
}
}

конечный результат должен быть:

{
  "app": "default",
  "logger": "org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor",
  "level": "INFO",
  "class": "org.springframework.scheduling.concurrent.ExecutorConfigurationSupport",
  "method": "shutdown",
  "file": "ExecutorConfigurationSupport.java",
  "line": 208,
  "thread": "Thread-7",
  "message": "Shutting down ExecutorService",
  "agent": {
    "id": "{uuid}"
  },
  "log": {
    "file": {
      "path": "/path/to/log/file"
    },
    "offset": <log file line number>
  }
}
...