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

Получение пульса до отказа при сбое службы apache

В настоящее время у меня правильно настроено сердцебиение на сервере ubuntu linux, так что, если служба сердцебиения не обнаружена (либо потому, что сервер не работает, либо просто служба сердцебиения не работает), он падает на вторичный сервер, как описано в сообщении в блоге на мой сайт.

Итак, мы начинаем с начального состояния, apache на рабочем сервере умирает в промежуточном состоянии, затем apache на вторичном сервере запускается в конечном состоянии. В настоящее время, если apache выходит из строя, но сердцебиение не происходит, переключение не происходит. Кто-нибудь знает как это сделать?

Одно из возможных решений для мониторинга демонов с пульсом 1.x, которое я успешно использовал в производственной среде, - это наличие демона perl, который опрашивает список процессов с определенным интервалом и, если он не видит имя процесса, инициирует резервный пульс. Вы можете настроить пн для дублирования этой функции.

Heartbeat 2.x имеет встроенную поддержку этой функции и ocf_heartbeat_apache агент ресурсов позволит вам контролировать процесс.

Также примечательно, что сердцебиение находится в режиме только обслуживания и что Corosync должен преуспеть в этом.

По возможности я избегаю активного / пассивного подхода к обеспечению высокой доступности веб-серверов или серверов приложений. Это тратит впустую ресурсы, и зачастую его сложнее масштабировать по горизонтали. Есть ситуации, когда это неизбежно, но с Apache это случается редко.

Ваше веб-приложение должно будет совместно использовать состояние сеанса, что часто достигается путем сохранения сеансов либо в базе данных, либо в памяти. На этом этапе вы можете сбалансировать нагрузку для всех входящих подключений, используя такое решение, как LVS или Nginx. Конечно, ваш прокси-сервер и решение для балансировки нагрузки должны быть избыточными, чтобы предотвратить единую точку отказа. Для этого также можно использовать сердцебиение.