KeepAlived : Notificação e tracking scripts

Neste post será apresentado como habilitar um script de transição no Keepalived.

Keepalived é uma ferramenta que garante a alta disponibilidade dos serviços configurados, no link abaixo é apresentado a solução.

http://fajlinux.com.br/high-availability/configurando-keepalived-no-redhat-6-7/

O script baseado na resposta de saída, 0 pra erro e 1 para ok .

vrrp_script my_script {
  script       "/usr/local/bin/script_check.sh"
  interval 2   # Checagem a cada 2 segundos
  fall 2       # Executado quando recebe 2 falhas
  rise 2       # Executado quando recebe 2 sucessos
}

Script executado durante a transição de serviço

  •   $1 = “GROUP” or “INSTANCE”
  • $2 = name of group or instance
  • $3 = target state of transition (“MASTER”, “BACKUP”, “FAULT”)

Em nosso exemplo estamos utilizando o serviço do Apache no RHEL

#!/bin/bash
TYPE=$1
NAME=$2
STATE=$3

case $STATE in
        "MASTER") /etc/init.d/httpd start
                  exit 0
                  ;;
        "BACKUP") /etc/init.d/httpd stop
                  exit 0
                  ;;
        "FAULT")  /etc/init.d/httpd stop
                  exit 0
                  ;;
        *)        echo "unknown state"
                  exit 1
                  ;;
esac

Exemplo aplicado diretamente no arquivo keepalived.conf

global_defs {
# Keepalived process identifier
 lvs_id apache_KA
}

vrrp_script my_script {
  script       "/usr/local/bin/script_check.sh"
  interval 2   # Checagem a cada 2 segundos
  fall 2       # Executado quando recebe 2 falhas
  rise 2       # Executado quando recebe 2 sucessos
}



vrrp_instance SERVER-01 {
        interface eth0 
        state MASTER
        virtual_router_id 51
        priority 100
        authentication {
            auth_type PASS
            auth_pass Add-Your-Password-Here
        }
        virtual_ipaddress {
                192.168.1.100/24
        }
}

track_script {
   my_script
  }

Referências

https://docs.oracle.com/cd/E37670_01/E41138/html/section_hxz_zdw_pr.html

Translate »