Здравствуйте (я надеюсь, что мой английский не подведет), я хочу отфильтровать json-сообщение в logstash, чтобы использовать json (все теги) в "message" в качестве поля в kibana.
Как настроить фильтр в logstash, чтобы включить все json в «сообщение» вasticsearch, чтобы они отображались в кибане как поля?
Я использую log4j2 в своем приложении для вывода сообщения на консоль с помощью jsonlayout, затем с помощью docker gelf для вывода в logstash, затем для эластичного поиска для отображения в kibana (это требование), так как мне нужно threadcontext и информация о Docker-контейнере.
Это мой полный логин в кибане
{
"_index": "logstash-2019.04.30-000001",
"_type": "_doc",
"_id": "YRagb2oBpwGypU5SDzwG",
"_version": 1,
"_score": null,
"_source": {
"@version": "1",
"command": "/WildFlyUser.sh",
"@timestamp": "2019-04-30T19:02:01.550Z",
"type": "gelf",
"message": "\u001b[0m\u001b[0m19:02:01,549 INFO [stdout] (default task-1) {\"thread\":\"default task-1\",\"level\":\"DEBUG\",\"loggerName\":\"com.corporation.app.configuration.LoggerInterceptor\",\"message\":\"thread=INI\",\"endOfBatch\":false,\"loggerFqcn\":\"org.apache.logging.log4j.spi.AbstractLogger\",\"instant\":{\"epochSecond\":1556650921,\"nanoOfSecond\":548899000},\"contextMap\":{\"path\":\"/appAPI/v2/operation/a661e1c6-01df-4fb6-bf35-0b07fc429f5d\",\"threadId\":\"54419181-ce43-4d06-b9f1-564e5092183d\",\"userIp\":\"127.17.0.1\"},\"threadId\":204,\"threadPriority\":5}\r",
"created": "2019-04-30T18:54:09.6802872Z",
"tag": "14cb73fd827b",
"version": "1.1",
"source_host": "172.17.0.1",
"container_id": "14cb73fd827b5d0dc0c9a991131f55b43a302539364bfc2b7fa0cd4431855ebf",
"image_id": "sha256:6af0623e35cedc362aadd875d2232d113be73fda3b1cb6dcd09b12d41cdadc70",
"host": "linuxkit-00155d0cba2d",
"image_name": "corporation/appapi:2.1",
"container_name": "appapi",
"level": 6
},
"fields": {
"created": [
"2019-04-30T18:54:09.680Z"
],
"@timestamp": [
"2019-04-30T19:02:01.550Z"
]
},
"sort": [
1556650921550
]
}
это json в "сообщении", я хочу включить все поля:
{
"thread": "default task-1",
"level": "DEBUG",
"loggerName": "com.corporation.app.configuration.LoggerInterceptor",
"message": "thread=INI",
"endOfBatch": false,
"loggerFqcn": "org.apache.logging.log4j.spi.AbstractLogger",
"instant": {
"epochSecond": 1556650921,
"nanoOfSecond": 548899000
},
"contextMap": {
"path": "/appAPI/v2/operation/a661e1c6-01df-4fb6-bf35-0b07fc429f5d",
"threadId": "54419181-ce43-4d06-b9f1-564e5092183d",
"userIp": "127.17.0.1"
},
"threadId": 204,
"threadPriority": 5
}
Спасибо