Linux 使用magento bitnami堆栈中的rsyslog旋转清漆日志

Linux 使用magento bitnami堆栈中的rsyslog旋转清漆日志,linux,amazon-web-services,magento,varnish,rsyslog,Linux,Amazon Web Services,Magento,Varnish,Rsyslog,我创建了一个ec2实例,上面有Magento Bitnami堆栈(ami-04A541D64DBB377E)。我使用了命令 varnishncsa-a-w/path/to/varnish/logs/mylog.log-D 将日志保存到一个文件中,并使用cloudwatch代理对其进行监控,将日志推送到cloudwatch,这样就可以正常工作(实际上,varnish是由bitnami脚本作为服务bitnami的一个子单元来启动的) 现在,当文件/path/to/varnish/logs/mylo

我创建了一个ec2实例,上面有Magento Bitnami堆栈(ami-04A541D64DBB377E)。我使用了命令

varnishncsa-a-w/path/to/varnish/logs/mylog.log-D
将日志保存到一个文件中,并使用cloudwatch代理对其进行监控,将日志推送到cloudwatch,这样就可以正常工作(实际上,varnish是由bitnami脚本作为服务bitnami的一个子单元来启动的)

现在,当文件/path/to/varnish/logs/mylog.log达到某个文件大小(例如10MB)时,我需要旋转日志

在系统上使用rsyslog

我试图使用rsyslog doc中的这个指南来实现这一点,从字面上复制它并更改文件的路径

结果是我得到了两个文件(/path/to/varnish/logs/mylog.log和/path/to/varnish/logs/mylog.log.1),其中所有日志都进入第二个文件(也超过了指定的文件大小)


我错在哪里?

出现问题的原因是,在文件系统上移动文件描述符后,Varnish仍然打开文件描述符

除非您可以告诉程序在移动后直接重新启动日志记录(使用SIGHUP或systemctl restart varnish之类的工具),否则您必须使用另一种方法进行旋转,而不是移动当时写入的文件