Задать вопрос
@pavellll

Почему Keepalived vrrp_script не устанавливает fault state?

Добрый день. Есть кластер из двух виртуальных (vmawre) машин с ОС Centos 7.1.

На обоих хостах установлен keepalived и haproxy, настроен общий виртуальны адрес. При выключении одного хоста из сети, все работает отлично, виртуальны адрес переезжает на бэкап хост, и возвращается, когда мастер появляется в сети.

Дальше написал скрипт, запущен ли haproxy, так вот при завершении процесса, виртуальны адрес не переезжает.

[root@cks-hatest1 keepalived]# tail /var/log/messages
Nov 30 10:35:24 cks-hatest1 Keepalived_vrrp[5891]: VRRP_Script(ha_check) failed
Nov 30 10:35:33 cks-hatest1 systemd: Started HAProxy Load Balancer.
Nov 30 10:35:45 cks-hatest1 systemd: Stopping HAProxy Load Balancer...
Nov 30 10:35:45 cks-hatest1 systemd: Stopped HAProxy Load Balancer.
Nov 30 10:35:46 cks-hatest1 Keepalived_vrrp[5891]: VRRP_Script(ha_check) succeeded


Судя по логам, скрипт отрабатывает, но дальше ничего не происходит.

Вот конфигурация хостов:

vrrp_script ha_check {
script "/etc/keepalived/haproxy_check"
interval 2
weight 21
}

vrrp_instance VI_1 {
state MASTER
interface eno16777984
virtual_router_id 151
priority 101
advert_int 1
authentication {
auth_type PASS
auth_pass 11111
}
virtual_ipaddress {
10.0.100.233
}
smtp_alert
track_script {
ha_check
}
}


2nd node:

vrrp_script ha_check {
script "/etc/keepalived/haproxy_check"
interval 2
fall 2
rise 2
timeout 1
weight 2
}

vrrp_instance VI_1 {
state BACKUP
interface eno16777984
virtual_router_id 151
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 11111
}
virtual_ipaddress {
10.0.100.233
}
smtp_alert
track_script {
ha_check
}


Скрипт:
cat /etc/keepalived/haproxy_check
systemctl status haproxy | grep "inactive"


Пробовал писать killall -0 haproxy - без разницы. В логах пишет successed/failed но ничего не происходит. В логах бэкап сервера - пусто.

tcpdump ничего не показывает кроме мультикастов.

Работа скрипта:
[root@cks-hatest1 ~]# systemctl start haproxy
[root@cks-hatest1 ~]# /etc/keepalived/haproxy_check
[root@cks-hatest1 ~]# systemctl stop haproxy
[root@cks-hatest1 ~]# /etc/keepalived/haproxy_check
Active: inactive (dead)


keepalived запущен c -D -d

Подскажите, куда копать?
Заранее благодарен
  • Вопрос задан
  • 2193 просмотра
Подписаться 1 Оценить Комментировать
Решения вопроса 1
@pavellll Автор вопроса
Проблема в Selinux на backup сервере.
audit.log:

type=AVC msg=audit(1450360594.423:2215): avc: denied { open } for pid=10927 comm="sh" path="/usr/bin/systemctl" dev="dm-0" ino=33559177 scontext=system_u:system_r:keepalived_t:s0 tcontext=system_u:object_r:systemd_systemctl_exec_t:s0 tclass=file
type=SYSCALL msg=audit(1450360594.423:2215): arch=c000003e syscall=2 success=no exit=-13 a0=9ee1f0 a1=0 a2=43 a3=8 items=0 ppid=10926 pid=10927 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=4294967295 comm="sh" exe="/usr/bin/bash" subj=system_u:system_r:keepalived_t:s0 key=(null)


Я пытался использовать audit2allow чтобы пофиксить, но пока не вышло
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы