Поскольку вы запускаете filebeat, у вас уже есть модуль, который обрабатывает журналы nginx filebeat модуль nginx
Таким образом, вам не понадобится logstash для обработки журналов, и вам нужно всего лишь указать вывод непосредственно наasticsearch.
Но, поскольку вы обрабатываете несколько путей с разными журналами и поскольку эластичный стек не позволяет иметь несколько выходных форм (logstash +asticserach), вы можете настроить logstash на обработку только тех журналов, которые не пришли из nginx. Таким образом, и используя модуль (который поставляется с примерами панелей мониторинга), ваши журналы будут делать:
Filebeat -> Logstash (от входного плагина к выходному плагину - без какой-либо фильтрации) -> Elasticsearch
Если вы действительно хотите обрабатывать журналы самостоятельно, у вас хороший путь к завершению. Но прямо сейчас все ваши журналы обрабатываются по шаблону Grok. Так что, возможно, проблема в вашем шаблоне, который обрабатывает журналы из nginx, а не из nginx таким же образом. Вы можете отфильтровать логи в плагине фильтра, примерно так:
#if you are using the module
filter {
if [fileset][module] == "nginx" {
}
}
если нет, пожалуйста, проверьте различные доступные примеры на logstash docs
Еще одна вещь, которую вы можете попробовать, это добавить это к вам фильтр. Таким образом, если произойдет сбой в работе grok, вы увидите журнал в kibana, но с тегом сбоя «_grok_parse_error_nginx_error».
grok {
patterns_dir => "/etc/logstash/patterns"
match => { "message" => "%{NGINXACCESS}" }
tag_on_failure => [ "_grok_parse_error_nginx_error" ]
}