#!/bin/bash # Dieses Skript installiert den zabbix-agent2 auf Debian 11/12 bzw. Ubuntu 22.04 # mittels wget und dpkg, passt die Konfigurationsdatei an und nimmt # folgende Parameter als Argumente entgegen: # 1. Zabbix-Server (IP oder Hostname) # 2. Hostname, der in der Konfiguration gesetzt werden soll # # Zusätzlich wird in der Konfigurationsdatei AllowKey=system.run[*] gesetzt # und das Paket apt-show-versions installiert. # # Verwendung: # ./install_zabbix_agent.sh # # Beispiel: # ./install_zabbix_agent.sh 192.168.1.100 MeinHost # Sicherstellen, dass das Skript als root ausgeführt wird. if [ "$EUID" -ne 0 ]; then echo "Bitte als root ausführen." exit 1 fi # Prüfen, ob beide Parameter übergeben wurden. if [ "$#" -ne 2 ]; then echo "Usage: $0 " exit 1 fi # Parameter übernehmen ZABBIX_SERVER="$1" ZABBIX_HOSTNAME="$2" # /etc/os-release einlesen if [ -f /etc/os-release ]; then . /etc/os-release else echo "/etc/os-release konnte nicht gefunden werden." exit 1 fi # Auswahl der Paket-URL basierend auf ID und VERSION_ID case "$ID" in debian) case "$VERSION_ID" in 11) echo "Gefunden: Debian 11" PKG_URL="https://repo.zabbix.com/zabbix/7.2/release/debian/pool/main/z/zabbix-release/zabbix-release_latest_7.2+debian11_all.deb" ;; 12) echo "Gefunden: Debian 12" PKG_URL="https://repo.zabbix.com/zabbix/7.2/release/debian/pool/main/z/zabbix-release/zabbix-release_latest_7.2+debian12_all.deb" ;; *) echo "Dieses Skript unterstützt nur Debian 11 und Debian 12." exit 1 ;; esac ;; ubuntu) if [ "$VERSION_ID" = "22.04" ]; then echo "Gefunden: Ubuntu 22.04" PKG_URL="https://repo.zabbix.com/zabbix/7.2/release/ubuntu/pool/main/z/zabbix-release/zabbix-release_latest_7.2+ubuntu22.04_all.deb" else echo "Dieses Skript unterstützt nur Ubuntu 22.04." exit 1 fi ;; *) echo "Dieses Skript unterstützt nur Debian 11, Debian 12 und Ubuntu 22.04." exit 1 ;; esac echo "Lade Zabbix-Release-Paket von: $PKG_URL" wget "$PKG_URL" -O /tmp/zabbix-release.deb if [ $? -ne 0 ]; then echo "Fehler beim Herunterladen des Pakets." exit 1 fi echo "Installiere das Zabbix-Release-Paket..." dpkg -i /tmp/zabbix-release.deb if [ $? -ne 0 ]; then echo "Fehler bei der Paketinstallation des Zabbix-Release. Fehlende Abhängigkeiten werden nun installiert..." apt-get install -f -y fi # Update der Paketlisten und Installation von apt-show-versions sowie zabbix-agent2 echo "Aktualisiere die Paketlisten und installiere apt-show-versions sowie zabbix-agent2..." apt update apt-get install -y apt-show-versions zabbix-agent2 # Konfigurationsdatei sichern und anpassen CONFIG_FILE="/etc/zabbix/zabbix_agent2.conf" if [ -f "$CONFIG_FILE" ]; then cp "$CONFIG_FILE" "${CONFIG_FILE}.bak" echo "Backup der Konfiguration wurde unter ${CONFIG_FILE}.bak erstellt." else echo "Konfigurationsdatei $CONFIG_FILE nicht gefunden!" exit 1 fi # Konfigurationsparameter anpassen: # Server-Adresse setzen sed -i "s/^Server=127\.0\.0\.1/Server=${ZABBIX_SERVER}/" "$CONFIG_FILE" # Active Server-Adresse setzen sed -i "s/^ServerActive=127\.0\.0\.1/ServerActive=${ZABBIX_SERVER}/" "$CONFIG_FILE" # Hostname setzen: Existiert die Zeile, wird sie ersetzt; ansonsten wird sie angehängt. if grep -q "^Hostname=" "$CONFIG_FILE"; then sed -i "s/^Hostname=.*/Hostname=${ZABBIX_HOSTNAME}/" "$CONFIG_FILE" else echo "Hostname=${ZABBIX_HOSTNAME}" >> "$CONFIG_FILE" fi # AllowKey setzen: Existiert die Zeile, wird sie ersetzt; ansonsten wird sie angehängt. if grep -q "^AllowKey=system.run\[\*\]" "$CONFIG_FILE"; then sed -i "s/^AllowKey=system.run\[\*\]/AllowKey=system.run[*]/" "$CONFIG_FILE" else echo "AllowKey=system.run[*]" >> "$CONFIG_FILE" fi # Zabbix-Agent2 neu starten, damit die Änderungen wirksam werden systemctl restart zabbix-agent2 echo "Installation und Konfiguration abgeschlossen."