Difference between revisions of "Keepalived"

From UVOO Tech Wiki
Jump to navigation Jump to search
(Created page with "https://nutss.wordpress.com/2019/07/12/high-availability-support-keepalived-and-nginx-on-ubuntu-debian/")
 
 
(6 intermediate revisions by the same user not shown)
Line 1: Line 1:
https://nutss.wordpress.com/2019/07/12/high-availability-support-keepalived-and-nginx-on-ubuntu-debian/
+
# Refs
 +
- https://github.com/acassen/keepalived/blob/master/keepalived/etc/keepalived/keepalived.conf.in-
 +
- https://nutss.wordpress.com/2019/07/12/high-availability-support-keepalived-and-nginx-on-ubuntu-debian/
 +
- https://askubuntu.com/questions/1312333/keepalived-not-working-on-20-04
 +
- https://www.ibm.com/docs/en/elm/6.0.5?topic=SSYMRC_6.0.5/com.ibm.jazz.install.doc/topics/t_setup_haproxy_ha.html
 +
 
 +
 
 +
```
 +
apt update && apt install keepalived
 +
sudo useradd -r -s /bin/false keepalived_script
 +
```
 +
 
 +
/etc/keepalived/keepalived.conf
 +
```
 +
global_defs {
 +
    notification_email {
 +
        sysadmin@example.com
 +
        failover@example.com
 +
    }
 +
    # notification_email_from no-reply@example.com
 +
    # smtp_server 192.168.200.1
 +
    # smtp_connect_timeout 30
 +
    # vrrp_strict  # Breaks auth_type PASS restriction - https://askubuntu.com/questions/1312333/keepalived-not-working-on-20-04
 +
    router_id ADC_DEV
 +
    vrrp_skip_check_adv_addr
 +
    vrrp_garp_interval .001
 +
    vrrp_gna_interval .001
 +
    enable_script_security
 +
    script_user nobody
 +
}
 +
 
 +
 
 +
vrrp_script chk_ipaddr {
 +
    script "/usr/bin/ping -c 1 172.16.0.1"
 +
    interval 2
 +
    weight 2
 +
}
 +
 
 +
 
 +
vrrp_script chk_nginx {
 +
    script "/usr/bin/pgrep '^nginx$'"
 +
    interval 2
 +
    weight 2
 +
}
 +
 
 +
 
 +
vrrp_instance VI_1 {
 +
    state MASTER
 +
    interface eth0
 +
    virtual_router_id 51
 +
    priority 100
 +
    advert_int 1
 +
    authentication {
 +
        auth_type PASS
 +
        auth_pass 1111
 +
    }
 +
    virtual_ipaddress {
 +
        192.168.200.16
 +
        192.168.200.17
 +
        192.168.200.18
 +
    }
 +
    track_script {
 +
        chk_ipaddr
 +
        chk_nginx
 +
    }
 +
}
 +
```
 +
 
 +
Logs
 +
```
 +
systemctl status keepalived
 +
journalctl -f
 +
```
 +
 
 +
capture multicast traffic
 +
```
 +
sudo tcpdump -npi eth0 net 224
 +
16:10:05.472897 IP 172.16.0.167 > 224.0.0.18: VRRPv2, Advertisement, vrid 51, prio 100, authtype none, intvl 1s, length 28
 +
```
 +
```

Latest revision as of 17:58, 26 July 2022

Refs

apt update && apt install keepalived
sudo useradd -r -s /bin/false keepalived_script

/etc/keepalived/keepalived.conf

global_defs {
    notification_email {
        sysadmin@example.com
        failover@example.com
    }
    # notification_email_from no-reply@example.com
    # smtp_server 192.168.200.1
    # smtp_connect_timeout 30
    # vrrp_strict  # Breaks auth_type PASS restriction - https://askubuntu.com/questions/1312333/keepalived-not-working-on-20-04
    router_id ADC_DEV
    vrrp_skip_check_adv_addr
    vrrp_garp_interval .001
    vrrp_gna_interval .001
    enable_script_security
    script_user nobody
}


vrrp_script chk_ipaddr {
    script "/usr/bin/ping -c 1 172.16.0.1"
    interval 2
    weight 2
}


vrrp_script chk_nginx {
    script "/usr/bin/pgrep '^nginx$'"
    interval 2
    weight 2
}


vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.200.16
        192.168.200.17
        192.168.200.18
    }
    track_script {
        chk_ipaddr
        chk_nginx
    }
}

Logs

systemctl status keepalived
journalctl -f

capture multicast traffic

sudo tcpdump -npi eth0 net 224
16:10:05.472897 IP 172.16.0.167 > 224.0.0.18: VRRPv2, Advertisement, vrid 51, prio 100, authtype none, intvl 1s, length 28

```