Переходы с поддержкой активности не происходят, как ожидалось

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

Мастер узел:

vrrp_script chk_splunkd {
    script "pidof splunkd"
    interval 2
    fall 2
    rise 2
}

vrrp_instance VI_1 {
    interface eth0
    state MASTER
    advert_int 1
    virtual_router_id 51
    priority 200
    nopreempt
    smtp_alert
    authentication {
            auth_type PASS
            auth_pass passme
    }
    virtual_ipaddress {
            10.126.246.245
    }
    track_script {
            chk_splunkd
    }
    notify_master /etc/keepalived/scripts/master.sh
    notify_backup /etc/keepalived/scripts/stop_service.sh
    notify_fault /etc/keepalived/scripts/stop_service.sh
}

Резервный узел:

vrrp_script chk_splunkd {
    script "pidof splunkd"
    interval 2
    fall 2
    rise 2
}
vrrp_instance VI_1 {
    interface eth0
    state BACKUP
    advert_int 1
    virtual_router_id 51
    priority 100
    nopreempt
    smtp_alert
    authentication {
            auth_type PASS
            auth_pass passme
    }

    virtual_ipaddress {
           10.126.246.245
    }
    track_script {
            chk_splunkd
    }
    notify_master /etc/keepalived/scripts/master.sh
    notify_backup /etc/keepalived/scripts/stop_service.sh
    notify_fault /etc/keepalived/scripts/stop_service.sh
}

Тем не менее, я обнаружил, что даже когда один узел переходит в состояние отказа и прекращает отправку рекламных объявлений VRRP, другой узел не переходит автоматически в основное состояние. Когда я пытался отслеживать рекламные пакеты VRRP с помощью tcpdump -vv -i eth0 vrrp Я обнаружил, что даже после того, как реклама одного узла останавливается, другой узел не начинает автоматически отправлять рекламные объявления, указывающие, что теперь он стал главным.

Пожалуйста, помогите мне узнать, что мне не хватает.

Спасибо,

Keerthana

1 ответ

Решение

Проблема заключалась в том, что во время запуска, когда один узел стал главным, другой перешел в режим отказа из-за pidof splunkd Команда, которая вернет 1, так как мой сервис Spunk должен быть включен только на главном узле. После того, как я отредактировал скрипт notify, чтобы записать текущее состояние во внешний файл и прочитать состояние, которое необходимо выполнить в моих скриптах notify, все стало работать нормально.

Другие вопросы по тегам