Fluentd не разбирает многострочные логи - PullRequest
0 голосов
/ 27 апреля 2018

Я пытаюсь разобрать многострочный ввод системного журнала во 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

Спасибо, Манодж

...