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

скрипт отслеживания не работает после обновления keepalived

Недавно я обновил свой кластер поддержки активности с версии 1.2.10 до 1.2.13. Я заметил, что мой скрипт отслеживания, который в основном просто пингует другую систему, больше не работает. Я использую простой сценарий bash и возвращаю 0, если все в порядке и приемник подключен к сети, и 1, если приемник недоступен.
Если сценарий возвращает 1, кластер меняется, и другой маршрутизатор становится активным, в противном случае все в порядке.
keepalived.conf:

global_defs {
   router_id r_id
}

vrrp_script chk_myscript {
    script       "/etc/keepalived/chk_available.sh"
    interval 4   # check every 4 seconds
    fall 2       # require 2 failures for KO
    }

vrrp_instance r_id {
    state MASTER
    interface enp0s3
    virtual_router_id 10
    priority 101
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass password
    }
    virtual_ipaddress {
        10.0.25.3/24 dev enp0s3
    }
   track_script {
        chk_myscript
    }
}

Сценарий:

#!/bin/sh
ping_return()
{
    ping -c2 8.8.8.8 > /dev/null  #it's just an example ip
    if [ $? -eq 0 ]
    then
          return 0
    else
          return 1
    fi
 }
 ping_return

После запуска keepalived сообщения журнала сказали мне следующее:

VRRP sockpool: [ifindex(2), proto(112), unicast(0), fd(10,11)]
ROUTER keepalived_vrrp[2800]: Using LinkWatch kernel netlink reflector...
ROUTER keepalived_vrrp[2801]: VRRP_Instance(INSTANCE) NOW in FAULT state

Я уже читал журнал изменений, потому что думал, что смогу получить некоторую полезную информацию. Но ничего полезного не было (по крайней мере, для такого новичка, как я).

Мой вопрос сейчас:
Почему функция поддержки активности не работает, как в предыдущей версии, и что мне нужно сделать, чтобы она снова заработала?

SELinux запрещает выполнение пользовательского сценария.

chcon -t keepalived_unconfined_script_exec_t /etc/keepalived/chk_available.sh