Установка и настройка keepalived
Описание пакета
Пакет keepalived это open source программное обеспечение, предназначенное для обеспечения функций высокой надежности (high availabilitty) и балансировки нагрузки (load-balancing). За первую функцию отвечает реализация протокола VRRP, а вторая основывается на модуле ядра Linux Vitrual Server (IPVS). Keepalived не разрабатывается сотрудниками Eltex и не включает доработок, за исключением конфигурации. Keepalived используется для организации резервирования контроллеров SoftWLC, при этом используется только функционал VRRP.
Установка keepalived
Для установки пакета необходимо загрузить его на сервер и выполнить следующую команду (установка должна производиться от имени суперпользователя root):
root@master:/# apt update root@master:/# apt install keepalived
После установки необходимо добавить демона Keepalived в автозагрузку и запустить его:
root@master:/# systemctl enable keepalived root@master:/# systemctl start keepalived
Конфигурация keepalived
Конфигурация keepalived состоит из следующих файлов:
Файл | Описание |
---|---|
/etc/keepalived/keepalived.conf | главный файл конфигурации сервиса |
/etc/keepalived/check_ping.sh | скрипт проверки состояния службы EMS |
/etc/keepalived/keep_notify.sh | скрипт, который выполняется при смене состояния (при переходе в MASTER, BACKUP, FAULT) |
/etc/keepalived/mongo_switch.js | скрипт перевода члена replicaSet MongoDB в состояние, соответствующее состоянию VRRP |
Основной файл конфигурации
Листинг основного файла конфигурации по умолчанию
где
- <interface> - наименование сетевого интерфейса;
- <virtual_ip> - виртуальный ip-адрес (с указанием префикса);
- <ip_server1> - ip-адрес другого сервера;
Тест-скрипт
В текущей реализации в качестве тестового скрипта предлагается использовать следующий:
где <default_gw_ip> - шлюз по умолчанию для этого сервера.
Скрипт пингует шлюз по умолчанию и возвращает код результата. Таким образом, при успешном выполнении скрипта гарантируется, что SoftWLC достижим для внешних клиентов.
Конфигурация смены роли
При смене состояния сервера выполняется скрипт keep_notify.sh
где <mysql_user> и <mysql_password> - логин и пароль от БД MySQL.
Скрипт смены мастера replicaSet MongoDB.
Выделение лога в отдельный файл
По умолчанию keepalived
записывает лог в файл /var/log/syslog
. Для удобства отладки, мониторинга и контроля работы keepalived можно настроить ведение собственного, отдельного лог-файла. Ниже приведен пример настройки rsyslog
:
nano -w /etc/rsyslog.d/10-keepalived.conf if $programname contains 'Keepalived' then /var/log/keepalived.log if $programname contains 'Keepalived' then ~
Затем нужно перезапустить rsyslog командой:
root@swlc01-server:/# service rsyslog restart
Теперь сообщения от демона keepalived попадут только в лог-файл /var/log/keepalived.log
и не попадут в /var/log/syslog
.
Способ запуска/остановки keepalived
Для запуска сервиса воспользуйтесь командой:
service keepalived start
Ответ об успешном запуске будет такой:
keepalived start/running, process 2471
Остановка сервиса:
root@master:/# service keepalived stop
Ответ системы:
keepalived stop/waiting
Проверить состояние сервиса можно командой:
root@master:/# service keepalived status
Ответ:
keepalived start/running, process 2809