Назад | Перейти на главную страницу

Запись журнала Apache2 в файл, содержащий IP-адрес сервера

Мы работаем над балансировкой нагрузки на наших веб-серверах 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"