Keepalived ist eine Software um Hochverfügbarkeit in Linux Umgebungen zu gewährleisten. Keepalived verwendet u.a [[VRRP]] ([[https://docs.linuxfabrik.ch/software/keepalived.html#vrrp-advertisement]])
{{vrrp.jpeg}}
=====Installation=====
Um Prozesse etc. zu überwachen braucht man mind. Version 2.0, die muss man selbst kompilieren.
sudo apt install -y keepalived
Die Konfig liegt unter
/etc/keepalived/keepalived.conf
====Selbst Kompilieren====
===Ubuntu===
Das Github Repo verwendet autoconf.
sudo apt install build-essential libssl-dev libnl-3-dev libnl-genl-3-dev autoconf automake libtool
git clone https://github.com/acassen/keepalived.git
cd keepalived
./autogen.sh
./configure
make
sudo make install
sudo keepalived -v
Service Unit anlegen!!!
sudo nano /etc/systemd/system/keepalived.service
[Unit]
Description=Keepalived Daemon
After=network.target
[Service]
Type=simple
# Log nach Stdout (neeee)
# ExecStart=/usr/local/sbin/keepalived --dont-fork --log-console
# Log nach syslog
ExecStart=/usr/local/sbin/keepalived --dont-fork
Restart=always
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reexec
sudo systemctl daemon-reload
sudo systemctl enable keepalived
sudo systemctl start keepalived
===Alma Linux 8===
dnf install -y gcc make openssl-devel libnl3-devel autoconf automake libtool git
git clone https://github.com/acassen/keepalived.git
cd keepalived
./autogen.sh
./configure
make
sudo make install
Im Idealfall wird ein Systemd File automatisch erstellt.
sudo nano /etc/systemd/system/keepalived.service
[Unit]
Description=Keepalived Daemon
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
ExecStart=/usr/local/sbin/keepalived --dont-fork --log-console
ExecReload=/bin/kill -HUP $MAINPID
Restart=always
[Install]
WantedBy=multi-user.target
=====Konfiguration=====
^ Option ^ Beschreibung ^
| **vrrp_instance VI_1** | Definiert eine [[VRRP]]-Gruppe (Virtual Router Redundancy Protocol). Alle Server, die zur gleichen Gruppe gehören, müssen denselben Namen und dieselbe `virtual_router_id` haben. |
| **state** | Startzustand dieser Instanz. Mögliche Werte: **MASTER** (aktiv) oder **BACKUP** (passiv). Der tatsächliche Zustand kann sich zur Laufzeit ändern. |
| **interface** | Netzwerkinterface, über das VRRP-Kommunikation läuft (z. B. `eth0`, `ens160`). |
| **virtual_router_id** | Eindeutige Gruppen-ID zwischen 1–255. Alle Server in derselben VRRP-Gruppe müssen dieselbe ID verwenden. |
| **priority** | Priorität dieses Knotens (1–255, Standard = 100). Höherer Wert = höhere Wahrscheinlichkeit, Master zu werden. |
| **advert_int** | Zeitintervall in Sekunden, wie oft der Master VRRP-Announcements sendet (Standard = 1 s). Kleinere Werte = schnellere Umschaltung. |
| **authentication** | Abschnitt für Authentifizierung zwischen den VRRP-Knoten. |
| **auth_type** | Authentifizierungsmethode. Meist **PASS** (Klartext-Passwort). Alternativ: **AH** (IPSec-ähnliche Authentifizierung, selten genutzt). |
| **auth_pass** | Gemeinsames Passwort für alle Knoten dieser VRRP-Instanz. Nur die ersten 8 Zeichen werden verwendet. Muss auf allen Servern identisch sein. |
| **virtual_ipaddress** | Eine oder mehrere virtuelle IP-Adressen (VIPs), die im Masterzustand auf das Interface gebunden werden. Beim Wechsel zu BACKUP werden sie wieder entfernt. |
====Master====
vrrp_instance VI_1 {
state MASTER
interface ens160
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass geheim
}
virtual_ipaddress {
172.21.0.166
}
}
====Backup====
vrrp_instance VI_1 {
state BACKUP
interface ens160
virtual_router_id 51
priority 90
advert_int 1
authentication {
auth_type PASS
auth_pass geheim
}
virtual_ipaddress {
172.21.0.166
}
}
=====Health=====
Man kann Prozesse, Dateien, Interfaces und eigene Scripte "tracken".
====Prozesse====
Siehe [[https://docs.linuxfabrik.ch/software/keepalived.html#prozesse-mit-keepalived-tracken]].
Funktioniert erst ab Version 2.0! Muss man selber kompilieren.
====Dateien====
Siehe [[https://docs.linuxfabrik.ch/software/keepalived.html#dateien-mit-keepalived-tracken]]
====Interfaces====
Siehe [[https://docs.linuxfabrik.ch/software/keepalived.html#interfaces-mit-keepalived-tracken]]
====Scripts====
Siehe [[https://docs.linuxfabrik.ch/software/keepalived.html#scripts-mit-keepalived-tracken]]
====Notifications====
* [[https://docs.linuxfabrik.ch/software/keepalived.html#notifications]]