Я следил за этим руководством о том, как использовать стек 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:inexecute'", "/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 и поможет разобраться в моей ошибке?
Спасибо