Вопрос или проблема
Я совсем недавно обновил свой вторичный балансировщик нагрузки до Ubuntu 20.04. Однако служба keepalived перестала работать. Вот журналы, когда я пытаюсь остановить, запустить и проверить статус службы:
root@xxxxx:/etc/keepalived# systemctl stop keepalived
root@xxxxx:/etc/keepalived# systemctl start keepalived
root@xxxxx:/etc/keepalived# systemctl status keepalived
● keepalived.service - Keepalive Daemon (LVS и VRRP)
Loaded: загружено (/lib/systemd/system/keepalived.service; включено; предустановленные параметры поставщика: включено)
Active: неактивен (мертв) с Thu 2024-12-12 14:05:38 NZDT; 2с назад
Process: 3047 ExecStart=/usr/sbin/keepalived --dont-fork $DAEMON_ARGS (код=вышел, статус=0/УСПЕХ)
Main PID: 3047 (код=вышел, статус=0/УСПЕХ)
Dec 12 14:05:38 xxxxx systemd[1]: Запуск демона Keepalive (LVS и VRRP) завершился успешно.
Dec 12 14:05:38 xxxxx Keepalived[3047]: Запуск Keepalived v2.0.19 (19/10,2019)
Dec 12 14:05:38 xxxxx Keepalived[3047]: ПРЕДУПРЕЖДЕНИЕ - keepalived был собран для более новой версии Linux 5.4.166, работает на Linux 5.4.0-200-generic #220-Ubuntu SMP Fri Sep 27 13:19:16 UTC 2024
Dec 12 14:05:38 xxxxx systemd[1]: keepalived.service: Успешно.
Dec 12 14:05:38 xxxxx Keepalived[3047]: Командная строка: '/usr/sbin/keepalived' '--dont-fork'
Dec 12 14:05:38 xxxxx Keepalived[3047]: Открытие файла '/etc/keepalived/keepalived.conf'.
Dec 12 14:05:38 xxxxx Keepalived[3047]: Запуск дочернего процесса VRRP, pid=3048
Dec 12 14:05:38 xxxxx Keepalived[3047]: Keepalived_vrrp завершился с постоянной ошибкой CONFIG. Завершение
Dec 12 14:05:38 xxxxx Keepalived[3047]: Остановка Keepalived v2.0.19 (19/10,2019)
Из системных журналов:
Dec 12 14:05:38 xxxxx Keepalived[3047]: Запуск дочернего процесса VRRP, pid=3048
Dec 12 14:05:38 xxxxx Keepalived_vrrp[3048]: Регистрация отражателя netlink ядра
Dec 12 14:05:38 xxxxx Keepalived_vrrp[3048]: Регистрация канала команд netlink ядра
Dec 12 14:05:38 xxxxx Keepalived_vrrp[3048]: Открытие файла '/etc/keepalived/keepalived.conf'.
Dec 12 14:05:38 xxxxx Keepalived_vrrp[3048]: ПРЕДУПРЕЖДЕНИЕ - пользователь по умолчанию 'keepalived_script' для выполнения скрипта не существует - пожалуйста, создайте.
Dec 12 14:05:38 xxxxx Keepalived_vrrp[3048]: (строка 70) Интерфейс по умолчанию eth0 не существует для статического адреса 10.xxx.x.10/24.
Dec 12 14:05:38 xxxxx Keepalived_vrrp[3048]: (строка 71) Интерфейс по умолчанию eth0 не существует для статического адреса 10.xxx.x.11/24.
Dec 12 14:05:38 xxxxx Keepalived_vrrp[3048]: Указан несуществующий интерфейс в конфигурации
Dec 12 14:05:38 xxxxx Keepalived_vrrp[3048]: Остановлен
Dec 12 14:05:38 xxxxx Keepalived[3047]: Keepalived_vrrp завершился с постоянной ошибкой CONFIG. Завершение
Dec 12 14:05:38 xxxxx Keepalived[3047]: Остановка Keepalived v2.0.19 (19/10,2019)
Единственный интерфейс, который у нас есть, – это ens192, и он настроен таким образом в /etc/keepalived/keepalived.conf, eth0 отсутствует в файле.
Вот ссылка на рабочий интерфейс:
root@xxxxx:/etc/keepalived# ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
link/ether 00:50:56:01:01:ab brd ff:ff:ff:ff:ff:ff
Буду признателен за любые предложения.
Ответ или решение
Проблема с запуском сервиса Keepalived после обновления Ubuntu с 18.04 LTS до 20.04 LTS может возникнуть по нескольким причинам. Ниже приведены шаги по диагностике и устранению неполадок, чтобы восстановить функциональность Keepalived.
1. Проверка конфигурационного файла
Согласно предоставленным логам, Keepalived завершает работу с ошибками, связанными с конфигурацией. В частности, сообщения указывают на то, что в конфигурационном файле /etc/keepalived/keepalived.conf
указаны интерфейсы, которых не существует. Чтобы устранить эту проблему, выполните следующие шаги:
-
Откройте файл конфигурации на редактирование:
nano /etc/keepalived/keepalived.conf
-
Убедитесь, что в конфигурации используется корректное имя сетевого интерфейса. В вашем случае, согласно команде
ip link show
, единственным доступным интерфейсом являетсяens192
. Убедитесь, что все указания наeth0
были заменены наens192
:Пример:
interface ens192
-
Сохраните измененный файл и выйдите из редактора.
2. Проверка наличия пользователя
В логах также присутствует предупреждение о том, что пользователь для выполнения скриптов keepalived_script
не существует. Это может быть исправлено следующим образом:
-
Создайте пользователя, используя следующую команду:
adduser --system --group --no-create-home keepalived_script
-
Если вы не используете скрипты, вы можете проигнорировать это предупреждение, но добавление пользователя является хорошей практикой для избежания возможных проблем.
3. Проверка зависимостей
После обновления системы могут возникать проблемы с зависимостями. Убедитесь, что все необходимые пакеты и библиотеки установлены:
apt update
apt install --reinstall keepalived
4. Проверка конфигурации сети
Убедитесь, что интерфейса ens192
действительно назначены IP-адреса, используемые в конфигурации Keepalived. Проверьте настройки сети:
ip addr show ens192
Убедитесь, что IP-адреса, указанные в конфигурации Keepalived, соответствуют IP-адресам, назначенным интерфейсу.
5. Запуск Keepalived
После внесения всех изменений, попробуйте снова запустить сервис:
systemctl start keepalived
systemctl status keepalived
Обратите внимание на вывод команды status
для выявления возможных новых ошибок. Если сервис все еще не запускается, проверьте системные журналы:
journalctl -u keepalived.service
Заключение
Соблюдение вышеуказанных шагов должно помочь в диагностике и устранении проблемы с запуском Keepalived после обновления до Ubuntu 20.04. Если все еще возникают сложности, стоит проверить документацию Keepalived и обновления Ubuntu для выявления изменений, которые могут повлиять на вашу конфигурацию.