我使用一个kubernetes集群,其中我有一个Nginx实例和一个ELK来收集集群日志。
为了将它的日志输出到我的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容器关闭或重新启动,则会出现问题。如果发生这种情况,nginxs就会停止将其日志发送到我的logstash,,即使日志存储已经启动并再次运行。
让它再次工作的唯一方法是重新启动我的nginx。
nginx有处理这种案件的机制吗?我的配置中遗漏了什么吗?我觉得这件事应该开门见山,我在我的头上犯了一些错误。
谢谢
发布于 2019-02-14 15:47:20
我建议您使用一个日志收集工具,如fluentd或filebeat来获取您的nginx日志。因此,即使logstash实例失败,nginx也将继续正常工作,而无需重新启动它。
您可以选择将日志收集工具部署为与nginx容器并排的侧服务器,或者使用守护进程从集群中的所有荚收集日志。
https://stackoverflow.com/questions/54693921
复制相似问题