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]]