Конфигурация вывода текстового файла logstash

Эй, у меня есть текстовый файл, содержащий много строк, каждая строка содержит 3 значения, разделенные пробелом:

username email hash
username email hash
username email hash
username email hash
username email hash

я попытался проиндексировать список с помощью logstash, используя эту конфигурацию:

    input {
        file {
                path => "/path/to/your/file.log"
                start_position => beginning
                sincedb_path => "/dev/null"
        }
}
filter {
        grok {
                match => {"message" => "%{WORD:username} %{WORD:email} %{WORD:hash}" }
        }
}
output {
        elasticsearch {
                hosts => ["localhost:9200"]
        }
}

моя проблема в том, что logstash индексирует это так:

        {
  "_index": "logstash-2017.06.01",
  "_type": "logs",
  "_id": "AVxinqK5XRvft8kN7Q6M",
  "_version": 1,
  "_score": null,
  "_source": {
    "path": "C:/Users/user/Desktop/user/log.txt",
    "@timestamp": "2017-06-01T07:46:22.488Z",
    "@version": "1",
    "host": "DESKTOP-FNGSJ6C",
    "message": "username email password",
    "tags": [
      "_grokparsefailure"
    ]
  },
  "fields": {
    "@timestamp": [
      1496303182488
    ]
  },
  "sort": [
    1496303182488
  ]
}

и я хочу, чтобы это было так:

        {
  "_index": "logstash-2017.06.01",
  "_type": "db",
  "_id": "AVxinqK5XRvft8kN7Q6M",
  "_version": 1,
  "_score": null,
  "_source": {
    "username": "Marlb0ro",
    "email": "[email protected]",
    "hash": "123456",
}

что я могу сделать, чтобы изменить его? любая помощь будет принята


person Marlb0ro    schedule 01.06.2017    source источник


Ответы (2)


Возникает ошибка синтаксического анализа, когда я пытаюсь протестировать ваш grok в http://grokconstructor.appspot.com. Поскольку разделителем является пробел, я попытался использовать NOTSPACE для имени пользователя и электронной почты:

%{NOTSPACE:username} %{NOTSPACE:email} %{WORD:hash}
person Yee    schedule 09.08.2017
comment
Извини, GhostCat, это была честная ошибка. Я должен был дать ответ, но я нажал комментарий. Я отредактировал его. :) - person Yee; 10.08.2017
comment
Да, сейчас выглядит намного лучше. - person GhostCat; 10.08.2017

Я почти уверен, что ваш парсер grok не будет работать. Поскольку шаблон «Word» не будет соответствовать хэшу или адресу электронной почты.

Вы можете проверить их предварительно определенные шаблоны на их странице github (здесь)

Существует шаблон «EMAILADDRESS», и для хеша я бы использовал «Имя пользователя».

person HauLuk    schedule 23.10.2017