Разделить сообщение с помощью Grok - PullRequest
0 голосов
/ 17 сентября 2018

У меня есть журналы в формате:

2018-09-17 15:24:34;Count of files in error folder in;C:\Scripts\FOLDER\SUBFOLDER\error;1

Я хочу указать в отдельном поле путь к папке и номер после.Как и

dirTEST=C:\Scripts\FOLDER\SUBFOLDER\
count.of.error.filesTEST=1

или

dir=C:\Scripts\FOLDER\SUBFOLDER\
count.of.error.files=1

Я использую этот шаблон grok в конфигурации logstash:

if  "TestLogs" in [tags] {
    grok{
    match => { "message" => "%{DATE:date_in_log}%{SPACE}%{TIME:time.in.log};%{DATA:message.text.log};%{WINPATH:dir};%{INT:count.of.error.files}" }
    add_field => { "dirTEST" => "%{dir}" } 
    add_field => { "count.of.error.filesTEST" => "%{count.of.error.files}" }
    }

}

Нет ошибок в журналах logstash.

Но в Кибане я получаю обычный лог без новых полей.enter image description here

1 Ответ

0 голосов
/ 20 сентября 2018

Несколько заметок здесь.Прежде всего, нужно сказать, что решение, кажется, делает то, что вы ожидаете, поэтому, вероятно, проблема в том, что ваш шаблон индекса не был обновлен новыми полями.Для этого в Kibana вы можете перейти в Management -> Kibana -> Index Patterns и обновить список полей в верхнем правом углу (рядом с кнопкой удаления Index Pattern).

Во-вторых, вы должны принятьучтите, что использование точек для разделения терминов приводит к тому, что структурированные данные выглядят так:

{
  "date_in_log": "18-09-17",
  "count": {
    "of": {
      "error": {
        "files": "1"
      }
    }
  },
  "time": {
    "in": {
     "log": "15:24:34"
    }
  },
  "message": {
    "text": {
      "log": "Count of files in error folder in"
    }
  },
  "dir": "C:\\Scripts\\FOLDER\\SUBFOLDER\\error"
}

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

...