Я задал этот вопрос в Stack Overflow, затем я сообщил, что serverfault будет более подходящим, прошу прощения, если кто-то наткнется на эти две проблемы.
Итак, в настоящее время я перестраиваю свою веб-платформу с одной машины на кластер машин, и я буду использовать для этого балансировку нагрузки Apache, но у меня есть два вопроса, на которые мне нужен хороший ответ, прежде чем продолжить. Я погуглил и искал здесь, в SF, но ничего хорошего не нашел.
Моя установка будет представлять собой одну машину Debian, на которой будет запущен сервер балансировки нагрузки Apache (то есть Apache с mod_proxy), а затем любое количество «подчиненных» машин, которые являются участниками балансировки. Все это VPS внутри машины VMWare, поэтому настройка новых ведомых устройств по мере необходимости будет тривиальной.
Лог-файлы Первый вопрос - это файлы журналов. Чтобы устранить неполадки на моей платформе, мне иногда нужно анализировать файлы журналов, как журналы доступа, так и журналы ошибок, из Apache. Когда нагрузка распределяется равномерно (т.е. я не знаю, буду ли я вообще использовать липкую балансировку, любой хост, вероятно, сможет обработать любой запрос в любое время), то же самое будут и файлы журнала для каждого подчиненного экземпляра Apache. Есть ли способ объединить эти жить, что означает, что мой анализатор журнала в реальном времени мог видеть файлы журнала со всех хостов? Я, конечно, понимаю, что сделать это, когда файлы находятся на нескольких хостах, будет сложно, так есть ли способ убедиться, что все файлы журналов хранятся на одном сервере?
Я сам думаю о двух вещах, но буду очень признателен за ваш вклад.
syslogd Первый - это syslogd, в котором несколько хостов могут писать на один хост для ведения журнала. Проблема в том, что в моей текущей настройке каждый виртуальный хост в apache имеет свой собственный файл журнала. Хотя, вероятно, это можно было бы как-то исправить. В основном я использую это для устранения неполадок, а не для ведения отдельных журналов для каждого хоста (хотя, если бы обе цели могли быть достигнуты, это, безусловно, было бы бонусом).
NFS Моя следующая мысль была о NFS, т.е. наличии общего ресурса NFS в локальной сети, где каждое ведомое устройство может записывать в один и тот же файл журнала. Я собираюсь пойти дальше и предположить, что это будет сложно, поскольку ведомое устройство 1 откроет файл журнала, а затем ведомое устройство 2 не сможет писать в него.
Как я уже сказал, ваш вклад очень признателен, так как я чувствую, что застрял в том, как решить эту проблему.
Файлы конфигурации Это вообще другое дело. Каждое ведомое устройство будет отвечать на каждый запрос, как если бы оно действовало как один сервер. В этом вся идея. Но как насчет внесения изменений в файлы конфигурации apache, добавления виртуальных хостов, настройки других параметров? Что, если у меня будет десять рабов или пятьдесят? Есть ли способ убедиться, что все эти ведомые устройства всегда синхронизированы? Я уже использую экспорт NFS, чтобы убедиться, что все они имеют одинаковые файлы, но следует ли использовать тот же подход с файлами конфигурации? Или мне следует использовать их как некую форму репозитория, а затем использовать rsync, чтобы скопировать их на подчиненные устройства? Одна из проблем заключается в том, что я создал интерфейс на своей веб-платформе, который редактирует эти файлы конфигурации (а именно файл с виртуальными хостами), и, поскольку это действие будет выполняться на одном из подчиненных устройств, самая последняя копия этого файла потенциально может быть на одном рабе.
Я понимаю, что это был длинный и содержательный пост, и прошу прощения. Я просто хотел убедиться, что все параметры моей проблемы были выражены.
Я надеюсь, что кто-то может мне помочь, как и вы раньше! Заранее спасибо!
rsync
с участием incrond
.