Logstash: использовать номер строки файла журнала в качестве document_id - PullRequest
0 голосов
/ 07 октября 2018

Я хочу установить document_id Logstash для номера строки файла журнала, как показано ниже: (К вашему сведению, зачем мне это нужно, показано здесь )

elasticsearch { 
    host => yourEsHost
    cluster => "yourCluster"
    index => "logstash-%{+YYYY.MM.dd}"
    document_id => "%{lineNumber}"
} 

Например, если файл журнала:

64.242.88.10 - - [07/Mar/2004:16:10:02 -0800] "GET /mailman/listinfo/hsdivision HTTP/1.1" 200 6291
64.242.88.10 - - [07/Mar/2004:16:11:58 -0800] "GET /twiki/bin/view/TWiki/WikiSyntax HTTP/1.1" 200 7352
64.242.88.10 - - [07/Mar/2004:16:20:55 -0800] "GET /twiki/bin/view/Main/DCCAndPostFix HTTP/1.1" 200 5253

Я хочу, чтобы document_id из 3 документов было 0, 1, 2 соответственно.

В моем сценарии один ElasticsearchИндекс генерируется только из одного файла журнала.Это гарантирует, что такие document_id не будут дублироваться внутри одного индекса.

Есть ли способ достичь этого?Спасибо.

1 Ответ

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

Согласно ответу здесь: https://discuss.elastic.co/t/get-line-number-of-the-log-file-line-being-processed/40960, пока невозможно.Но есть открытый вопрос о: https://github.com/logstash-plugins/logstash-input-file/issues/7. Так что это может быть возможно в будущей версии.Чтобы узнать, как изменить плагин ввода файла или написать свой собственный плагин ввода.

...