Nginx не может отправить журналы в удаленный системный журнал, если экземпляр журнала перезапущен - PullRequest
0 голосов
/ 14 февраля 2019

Я работаю с кластером kubernetes, где у меня есть экземпляр Nginx и стек ELK для сбора журналов кластера.

У меня есть следующая конфигурация для nginx для вывода его журналов в мой контейнер logstash:

access_log syslog:server=qa-logstash.monitoring.svc:5046,tag=nginx_access main;
error_log syslog:server=qa-logstash.monitoring.svc:5046,tag=nginx_error info;

Эта конфигурация, кажется, в порядке, потому что, когда я запускаю свой nginx, журналы правильно отправляются на мой logstash.

Проблема возникает, если дляпо какой-то причине контейнер logstash выходит из строя или перезапускается.Если это произойдет, nginxs прекратит отправку своих журналов в мой logstash, даже после того, как logstash снова заработает.

Единственный способ заставить его работать снова, это перезапустить мой nginx.

Есть ли в nginx механизм для обработки подобных случаев?Я что-то упустил в моей конфигурации?Я чувствую, что это должно работать из коробки, и я допустил некоторую ошибку с моей стороны.

Спасибо

1 Ответ

0 голосов
/ 14 февраля 2019

Я рекомендую вам использовать инструмент сбора журналов, такой как fluentd или filebeat, чтобы получить логи вашего nginx. Таким образом, даже в случае сбоя экземпляра logstash ваш nginx продолжит работать без перезапуска.

Вы можете развернуть инструмент сбора журналов в качестве коляски рядом с контейнером nginx илииспользование набора демонов для сбора журналов со всех модулей внутри кластера.

...