шаблон grok для захвата тела ответа в журналах доступа nginx

#elasticsearch #nginx #logstash #logstash-grok #grok

#elasticsearch #nginx #logstash #logstash-grok #grok

Вопрос:

Мы пытаемся захватить приведенный ниже фрагмент журнала, используя resp_body:"%{DATA:resp_body}" , но он захватывает только '{' то, что мы хотели бы, чтобы он захватывал до конца двойные кавычки. Пожалуйста, помогите достичь этого?

resp_body:"{"responseCode":0,"responseMessage":"Success","totalOrders":10,"totalPages":1,"currentPage":1,"order":[{"order_no":"NYK-56395463-0544196","eretailOrderNo":"NAH43103202","masterOrderNo":"NAH43103202","status":"Shipped complete","remarks":"","grandtotal":"2822.600","createAtStoreDate":"10/11/2020 23:19:04","shippingpkgcount":"2","itemcount":"10.000","shippingaddress":"chapra ..sahebganj..sonarpatti Landmark: near libas mart","mobileno":"8789932063","is_giftwrap":"no","giftwrap_msg":"","giftwrap_charges":"0.000","cancel_date":"","udf1":null,"udf2":null,"udf3":null,"udf4":"COD","udf5":"10","udf6":null,"udf7":null,"udf8":null,"udf9":null,"udf10":null,"pickupLocation":"","extFulFillmentLocCode":"","shipdetail":[{"qty":"1","transporter":"Delhivery Surface","transporterstatusremark":"Handover to co-located facility","transporterstatus":"INTRANSIT","shipdate":"13/11/2020 08:42:05","updated_date":"18/11/2020 07:50:13","delivereddate":"","refereceNo":"NBL320254620","wh_Loccode":"NBL","wh_Locname""

Ответ №1:

Вы должны использовать GREEDYDATA вместо DATA , чтобы сопоставить полную строку перед последней кавычкой. Используйте следующее:

 resp_body:"%{GREEDYDATA:resp_body}"