Логсташ | ConfigurationError :message=>Ожидается одно из [ \\t\\r\\n], \#\, \input\, \filter\, \output\ в строке 1, столбце 1 (байт 1)

Я получаю сообщение об ошибке конфигурации при запуске Logstash. Я использую версию 7.5.1. Тот же файл конфигурации работал раньше. Мне пришлось настроить тайник ELK на другой виртуальной машине, поскольку старая виртуальная машина была выведена из эксплуатации, и здесь я столкнулся с этой ошибкой.

Я создаю экземпляр logstash, используя -

logstash-7.5.1\bin\logstash -f logstash-config.conf

.

Файл конфигурации —

#config file

input{
jdbc{
jdbc_driver_library=>"C:\software\ojdbc7.jar"
jdbc_driver_class=>"Java::oracle.jdbc.driver.OracleDriver"
jdbc_connection_string=>"jdbc:oracle:thin:@<host>:1528:TSTIM"
jdbc_user=>"UName"
jdbc_password=>"PWD"
statement=>"SELECT * from TABLE where run_id > 4500"
}
}

output{
elasticsearch{
hosts=>"http://localhost:9200"
index=>"run_id"
document_type=>"TABLEname"
document_id=>"run_id"
user=>"elastic"
password=>"changeme"
}
stdout{
codec=>rubydebug
}
}

.

Ошибка –

C:\software>logstash-7.5.1\bin\logstash -f logstash-config.conf
Thread.exclusive is deprecated, use Thread::Mutex
Sending Logstash logs to C:/software/logstash-7.5.1/logs which is now configured via log4j2.properties
[2020-01-08T05:04:33,207][WARN ][logstash.config.source.multilocal] Ignoring the 'pipelines.yml' file because modules or command line options are specified
[2020-01-08T05:04:33,426][INFO ][logstash.runner ] Starting Logstash {"logstash.version"=>"7.5.1"}
[2020-01-08T05:04:34,869][ERROR][logstash.agent ] Failed to execute action 
{:action=>LogStash::PipelineAction::Create/pipeline_id:main,
:exception=>"LogStash::ConfigurationError",
:message=>"Expected one of [ \t\r\n], "#", "input", "filter", "output" at line 1, column 1 (byte 1)", 
:backtrace=>[
"C:/software/logstash-7.5.1/logstash-core/lib/logstash/compiler.rb:41:in compile_imperative'",
"C:/software/logstash-7.5.1/logstash-core/lib/logstash/compiler.rb:49:in compile_graph'",
"C:/software/logstash-7.5.1/logstash-core/lib/logstash/compiler.rb:11:in block in compile_sources'",
"org/jruby/RubyArray.java:2584:in map'",
"C:/software/logstash-7.5.1/logstash-core/lib/logstash/compiler.rb:10:in compile_sources'", 
"org/logstash/execution/AbstractPipelineExt.java:156:in initialize'",
"org/logstash/execution/JavaBasePipelineExt.java:47:in initialize'", 
"C:/software/logstash-7.5.1/logstash-core/lib/logstash/java_pipeline.rb:27:in initialize'", 
"C:/software/logstash-7.5.1/logstash-core/lib/logstash/pipeline_action/create.rb:36:in execute'", 
"C:/software/logstash-7.5.1/logstash-core/lib/logstash/agent.rb:326:in block in converge_state'"
]}
[2020-01-08T05:04:35,510][INFO ][logstash.agent ] Successfully started Logstash API endpoint {:port=>9600}
[2020-01-08T05:04:40,325][INFO ][logstash.runner ] Logstash shut down.

введите здесь описание изображения


person Shreyas SG    schedule 08.01.2020    source источник


Ответы (3)


Виноват. В файле конфигурации были плохие символы. Я просто должен был сделать уборку. Ручной ввод того же содержимого конфигурации в другой файл сработал.

person Shreyas SG    schedule 08.01.2020
comment
какие плохие персонажи? Я сам как бы застрял с этой проблемой. - person Pedro Rodrigues; 20.09.2020
comment
Ввод содержимого с нуля работал у меня на компьютере с Windows. Вы можете использовать команды sed или dos2unix, чтобы очистить файл с помощью системы unix, а затем поместить его. - person Shreyas SG; 21.09.2020
comment
Спасибо. моя проблема была немного другой. У меня только Linux, поэтому dos2unix не поможет. Оказывается, у вас не может быть комментариев в файле YAML. Тупой меня. Сообщение все еще довольно загадочное. - person Pedro Rodrigues; 21.09.2020

Я столкнулся с той же проблемой в Windows, используя Notepad++.

Мое решение - сохранить конфигурацию в UTF-8 without BOM и Unix format (LF).

person Sergey Nemchinov    schedule 01.12.2020

У меня такая же проблема, когда копируешь/вставляешь некоторые строки в мой конфигурационный файл с веб-страницы. Причина в том, что в начале строки есть непечатаемые символы, кроме табуляции или пробела. Вы можете увидеть разницу между хорошими и плохими строками, если выделите все содержимое файла в VS Code.

Я заменил плохие символы на пробелы, и проблема была решена.

person Roman Z    schedule 19.02.2021