Difference between revisions of "Keepalived"
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
- 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
```