Я настраиваю 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>
}
}