Мы работаем над балансировкой нагрузки на наших веб-серверах amazon ec2, на которых работает apache2. Пока мы не получим лучшую систему журналов, мы хотели бы, чтобы каждый экземпляр просто записывал журналы своего сервера на общий том (общий с использованием sshfs atm)
Проблема, с которой мы столкнулись, заключается в том, что если два экземпляра записывают в один и тот же общий файл журнала (/shared-volume/access.log), некоторые из наших журналов затираются из-за отсутствия блокировки файлов sshfs
Поскольку мы хотим, чтобы экземпляры были идентичны друг другу, краткосрочное решение, о котором мы думали, заключалось в том, чтобы иметь журнал apache в /shared/log/apache2/[instance-ippting-access.log
Это возможно?
Пробовал этот и другие варианты, но кажется, что лог-файл всегда интерпретируется статически.
CustomLog /shared/log/apache2/%{SERVER_ADDR}-access.log "%h %l %u %t \"%r\" %>s %b %D"
Можно ли было бы переместить интерпретацию на шаг назад, например, к команде mount? Bash превратит "$ HOSTNAME" в имя хоста. Вместо входа в / shared / log / apache2 / войдите в / shared / log, но убедитесь, что / shared / log действительно ssh-host:/var/log/apache/$HOSTNAME/
. Таким образом вы сможете сохранить идентичные конфигурации.
Кажется, это действительно работает, есть ли недостатки?
CustomLog "|cat >> /shared/log/apache2/`hostname`-access.log" "%h %l %u %t \"%r\" %>s %b %D"