我正在使用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是否具有处理此类情况的机制?我的配置中缺少什么吗?我觉得这应该是开箱即用的,并且我犯了一些错误。
谢谢
答案 0 :(得分:0)
我建议您使用fluentd或filebeat之类的日志收集工具来获取nginx的日志。 因此,即使logstash实例失败,您的nginx也将继续正常运行而无需重新启动它。
您可以选择将日志收集工具部署为Nginx容器旁的辅助工具,也可以选择使用守护程序从群集内所有Pod收集日志。