如果重新启动日志记录实例,Nginx无法将日志发送到远程系统日志

时间:2019-02-14 15:32:29

标签: nginx kubernetes logstash

我正在使用kubernetes集群,其中有一个Nginx实例和一个ELK stak来收集集群日志。

为了将其日志输出到我的logstash容器,我对nginx进行了以下配置:

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容器关闭或重新启动,则会出现此问题。如果发生这种情况,即使在logstash启动并再次运行后,nginxs也会停止将其日志发送到我的logstash。

让它再次工作的唯一方法是重启我的nginx。

nginx是否具有处理此类情况的机制?我的配置中缺少什么吗?我觉得这应该是开箱即用的,并且我犯了一些错误。

谢谢

1 个答案:

答案 0 :(得分:0)

我建议您使用fluentd或filebeat之类的日志收集工具来获取nginx的日志。 因此,即使logstash实例失败,您的nginx也将继续正常运行而无需重新启动它。

您可以选择将日志收集工具部署为Nginx容器旁的辅助工具,也可以选择使用守护程序从群集内所有Pod收集日志。