Как получить конкретные логи в контроллере - PullRequest
0 голосов
/ 14 июня 2019

Я развернул Analytics-Agent с агентом машины на сервере и настроил шаблон для получения журналов приложений.Я могу видеть журналы в пользовательском интерфейсе контроллера.Я хочу отправлять только журналы level = ERROR на контроллер.Как этого достичь?

Файл задания


version: 2
enabled: true
source:
    type: file
    path: /data/nifi/logs
    nameGlob: nifi-app.log
    startAtEnd: true

fields:
   sourceType: nifi

grok:
  patterns:
    - '%{TIMESTAMP_ISO8601:timestamp} %{LOGLEVEL:level} \[%{DATA:thread}\] %{DATA:class} %{GREEDYDATA:message}'

eventTimestamp:
   pattern: "yyyy-MM-dd HH:mm:ss,SSS"

Пример журнала

2019-05-20 17:59:31,409 ERROR [Timer-Driven Process Thread-22] o.a.nifi.processors.standard.ListSFTP ListSFTP[id=282914ca-f485-32ff-8ba9-93236a9de836] Failed to perform listing on remote host due to java.io.IOException: Failed to obtain connection to remote host due to com.jcraft.jsch.JSchException: Auth fail: {}

1 Ответ

0 голосов
/ 16 июля 2019

Если вам не важно получить уровень как поле, попробуйте этот шаблон grok, который соответствует только линиям ERROR.

% {TIMESTAMP_ISO8601: отметка времени} ОШИБКА [% {ДАННЫЕ: нить}]% {ДАННЫЕ: класс}% {GREEDYDATA: сообщение}

...