我们正在努力对运行apache2的亚马逊ec2 web服务器进行负载平衡。 在我们获得更好的日志系统之前,我们希望每个实例都将其服务器日志写入共享卷(使用sshfs atm共享)
我们遇到的问题是,如果两个实例写入相同的共享日志文件(/shared-volume/access.log),我们的某些日志由于缺lesssshfs的文件locking而遭到破坏
由于我们希望实例彼此相同,所以我们认为的短期解决scheme是将apache日志logging到/shared/log/apache2/[instance-ip]-access.log
这可能吗?
试过这个和其他变种,但似乎日志文件总是静态解释。
CustomLog /shared/log/apache2/%{SERVER_ADDR}-access.log "%h %l %u %t \"%r\" %>s %b %D"
这似乎工作,有没有什么缺点?
CustomLog "|cat >> /shared/log/apache2/`hostname`-access.log" "%h %l %u %t \"%r\" %>s %b %D"
是否有可能将解释转移一步,也许是挂载命令? Bash将把“$ HOSTNAME”变成主机名。 而不是logging到/ shared / log / apache2 /,logging到/ shared / log,但确保/ shared / log实际上是ssh-host:/var/log/apache/$HOSTNAME/ 。 这样你可以保持你的configuration相同。