Ошибка Logstash: агент - не удалось выполнить действие

Я следил за этим руководством о том, как использовать стек ELK для журналов nginx. Я создал nginx.conf, чтобы настроить получение журналов, но когда я набираю: bin/logstash -f /etc/logstash/conf.d/nginx.conf

Я получаю такую ​​ошибку:

[ОШИБКА] 2020-11-13 14: 59: 15.254 Агент [Converge PipelineAction :: Create] - Не удалось выполнить действие {: action = ›LogStash :: PipelineAction :: Create / pipeline_id: main,: exception =› LogStash :: ConfigurationError,: message = ›Ожидается одно из [A-Za-z0-9_-], [\ t \ r \ n], #, =› в строке 9, столбце 8 (байт 135) после ввода {\ n \ t \ n файл {\ n путь = ›[/var/log/nginx/access.log, /var/log/nginx/error.log] ]\n
type =› nginx \ n} \ n filter {\ n \ n grok,: backtrace = ›[/ usr / share / logstash / logstash-core / lib / logstash / compiler.rb: 32: в compile_imperative'", "org/logstash/execution/AbstractPipelineExt.java:184:in initialize ', org / logstash / execution / JavaBasePipelineExt.java: 69: в initialize'", "/usr/share/logstash/logstash-core/lib/logstash/java_pipeline.rb:47:in initialize' , /usr/share/logstash/logstash-core/lib/logstash/pipeline_action/create.rb:52:in execute'", "/usr/share/logstash/logstash-core/lib/logstash/agent.rb:365:in block в converge_state ']} и вот мой файл nginx.conf:

input{
    
   file{
   path => ["/var/log/nginx/access.log" , "/var/log/nginx/error.log"]
   type => "nginx"
   }
   filter{
   
   grok{
    match => ["message" , "%{COMBINEDAPACHELOG}+%{GREEDYDATA:extra_fields}"]
    overwrite => ["message"]
   }
   mutate{
    convert => ["response","integer"]
    convert => ["bytes","integer"]
    convert => ["responsetime","float"]
   }
   geoip{
    source => "clientip"
    target => "geoip"
    add_tag => ["nginx-geoip"]
   }
   date {
    match ⁼> ["timestamp" , "dd/MMM/YYYY:HH:mm:ss Z"]
    remove_field => ["timestamp"]
   }
   useragent {
   source => "agent"
   } 
   }

output{
 elasticsearch {
  hosts => ["localhost:9200"]
  index => "nginx-%{+yyyy.MM.dd}"
  document_type => "nginx_logs"
 }
}

}

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

Спасибо


person Nisrine Hafi    schedule 13.11.2020    source источник


Ответы (1)


Вам не хватает символа}, чтобы закрыть раздел ввода. Вставьте его перед ключевым словом фильтра.

Также удалите последний} в файле.

person Badger    schedule 13.11.2020
comment
Спасибо, я думал, что фильтр находится внутри ввода - person Nisrine Hafi; 15.11.2020