Я пытаюсь разобрать многострочный ввод системного журнала во Fluentd. Пример журнала выглядит так -
"737 <14>1 2018-04-27T17:32:55.401896+00:00 CMB.V02G-dev-digital-billing.fluenddemoservice 598c519b-a092-431a-a8bb-a834f259b0d2 [APP/PROC/WEB/0] - - 2018-04-27 17:32:55.401 INFO 14 --- [nio-8080-exec-5] c.v.f.f.controller.DemoController : {\"application\":\"myFios\",\"logType\":\"OperationalMetrics\",\"uniqueId\":\"vzid\",\"sessionId\":\"1221354410\",\"transactionId\":\"qwedfg45678789\",\"deviceId\":\"ajkrtyghyu\",\"api\":\"API\",\"status\":\"S\",\"failureMessage\":\"\",\"failureCode\":\"\",\"responseTime\":\"10\",\"osType\":\"android\",\"osVersion\":\"1.1\",\"deviceModel\":\"Chrome\",\"appVersion\":\"5.4.3.2\",\"createDate\":\"2018-04-17 14:43:13.046\",\"instance\":\"1\",\"dataCenter\":\"Tampa\",\"customerType\":\"C\",\"apiGroup\":\"\",\"apiBackend\":\"SSP\",\"apiVersion\":\"v2\",\"data\":\"{\\\"key\\\":\\\"value\\\"}\"}"
Моя конечная цель - извлечь JSON из этого журнала.
Я использовал онлайн-редактор регулярных выражений, чтобы создать регулярное выражение, и я могу добиться этого с помощью этого регулярного выражения
{\ "приложения (. *) \"}
Но Fluend не понимает этого регулярного выражения. он жалуется, что регулярное выражение недействительно. Пожалуйста, помогите мне, что я должен сделать, чтобы Fluend понимал опцию (? S).
Ниже моя конфигурация FLuend
@type tcp
tag cf.app # required
<parse>
@type regexp
expression /{\\"application(.*)\"}/
multiline true
</parse>
port 5140 # optional. 5170 by default
bind 0.0.0.0 # optional. 0.0.0.0 by default
Спасибо,
Манодж