#elasticsearch #kibana #filebeat #elk #metricbeat
Вопрос:
мой документ выглядит так, и мне нужно получить доступ к журналу.уровень, который является вложенным полем. может ли кто-нибудь помочь мне, так как мне нужно условие для установки нового поля под названием statuscode, если войти.уровень=ошибка.
{ "docs": [ { "doc": { "_index": "filebeat-mycluster", "_type": "_doc", "_id": "Xdffefepodmlajddwq", "_source": { "messageinfo": { "log.origin": { "file.line": 131 }, "@timestamp": "2021-11-15T10:07:36.125Z", "service.name": "my-server", "ecs.version": "1.6.0", "log.level": "error", "message": "Failed" } } } ] }
Комментарии:
1.
messageinfo.log.level
2. Привет, это не сработало, мне пришлось использовать: ctx.messageinfo[‘log.level’] == ‘ошибка’
Ответ №1:
Просто вот так:
{ "set": { "if": "ctx.messageinfo['log.level'] == 'error'", "field": "statuscode", "value": "whatever" } }
Обратите внимание, что если бы ваше log.level
поле было правильно обведено точками, вы бы сделали это так:
{ "set": { "if": "ctx.messageinfo.log.level == 'error'", "field": "statuscode", "value": "whatever" } }
Комментарии:
1. Спасибо, что я поступил точно так же. Первый из них работал на меня. Второй попытался, но не получилось. Большое спасибо
2. Потрясающе, рад, что все получилось !!