Чтение XML-файла через Grok Exporter - PullRequest
0 голосов
/ 26 сентября 2018

Я использую Grok exporter для поиска строк ошибок.Я могу сделать это с файлами .log.Однако всякий раз, когда я пытаюсь использовать то же самое с файлами XML, я не получаю желаемого результата.

**

  • Например: -

Ниже мой файл журнала: -

  2016/07/30 14:37:03 alice 1.5
    30.07.2016 14:37:33 Adam 2.5
    30.07.2016 14:43:02 bob 3.5
    30.07.2016 14:45:59 Bill 4.5
    31.07.2018 14:45:59 Baren 5.5
    30.07.2018 14:45:59 Joe 6.5
    30.07.2018 14:45:59 Right 7.5
    30.07.2018 14:45:59 Jess 8.5
    30-07-2018 14:45:59 Nathan 9.5
    30.07.2018 15:45:59 Suzi 10.5

Файл конфигурации Grok: -

    input:
        type: file
        path: ./example/example.log
        readall: true
    grok:
        patterns_dir: ./patterns
    metrics:
        - type: counter
          name: grok_example_lines_total
          help: Example counter metric with labels.
          match: '%{DATE} %{TIME} %{USER} %{NUMBER}'
    server:
        host: localhost
        port: 9144

Вывод: -

    # TYPE grok_exporter_lines_total counter
    grok_exporter_lines_total{status="ignored"} 1
    grok_exporter_lines_total{status="matched"} 9

То же самое, когда я пытаюсьчтобы сделать для XML-файла, все строки игнорируются.Код XML: -

   <Cat>Exception</Cat>
          <DateTime>2017-02-17T21:12:44.4677331-02:00</DateTime>

Файл конфигурации Grok: -

input:
    type: file
    path: ./example/example.xml
    readall: true
grok:
    patterns_dir: ./patterns
metrics:
    - type: counter
      name: grok_example_lines_total
      help: Example counter metric with labels.
      match: '%{TIMESTAMP_ISO8601}'
server:
    host: localhost
    port: 9144

В отладчике Grok выражение grok соответствует 2017-02-17T21: 12: 44.4677331-02: 00,однако в метриках все строки игнорируются. Вывод: -

# TYPE grok_exporter_lines_total counter
grok_exporter_lines_total{status="ignored"} 5
grok_exporter_lines_total{status="matched"} 0

**

1 Ответ

0 голосов
/ 23 октября 2018

К сожалению, grok_exporter не поддерживает захват нескольких строк, говорит создатель grok_exporter на fstab / grok_exporter # 46

grok_exporter не поддерживает многострочные шаблоны,Причина в том, что grok_exporter обрабатывает файл журнала построчно.Всякий раз, когда новая строка записывается в файл журнала, шаблоны применяются только к новой строке, а показатели обновляются соответствующим образом.Я не думаю, что существует простой способ поддержки многострочных шаблонов, потому что это будет означать, что если новая строка записывается в файл журнала, весь файл должен быть повторно обработан.

Logstash - это альтернатива, которая имеет несколько плагинов для кодеков.

https://www.elastic.co/guide/en/logstash/current/plugins-codecs-multiline.html#plugins-codecs-multiline

...