From fe8dda51f621624e22e31307752d1aab627be91f Mon Sep 17 00:00:00 2001 From: "sebastian.serfling" Date: Wed, 12 Mar 2025 14:37:39 +0000 Subject: [PATCH] =?UTF-8?q?zabbix-install.sh=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- zabbix-install.sh | 104 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 104 insertions(+) create mode 100644 zabbix-install.sh diff --git a/zabbix-install.sh b/zabbix-install.sh new file mode 100644 index 0000000..66d79c1 --- /dev/null +++ b/zabbix-install.sh @@ -0,0 +1,104 @@ +#!/bin/bash +# Dieses Skript installiert den zabbix-agent2 auf Debian 11/12 +# 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" + +# Prüfen der Debian-Version +if [ -f /etc/debian_version ]; then + DEB_VERSION=$(cut -d'.' -f1 /etc/debian_version) + echo "Gefundene Debian-Hauptversion: $DEB_VERSION" + if [ "$DEB_VERSION" -eq 11 ]; then + # URL für Debian 11 (bitte ggf. anpassen) + PKG_URL="https://repo.zabbix.com/zabbix/7.2/release/debian/pool/main/z/zabbix-release/zabbix-release_latest_7.2+debian11_all.deb" + elif [ "$DEB_VERSION" -eq 12 ]; then + # URL für Debian 12 (bitte ggf. anpassen) + PKG_URL="https://repo.zabbix.com/zabbix/7.2/release/debian/pool/main/z/zabbix-release/zabbix-release_latest_7.2+debian12_all.deb" + else + echo "Dieses Skript unterstützt nur Debian 11 und 12." + exit 1 + fi +else + echo "Debian-Version konnte nicht ermittelt werden." + exit 1 +fi + +echo "Lade Zabbix-Agent2-Paket von: $PKG_URL" +wget "$PKG_URL" -O /tmp/zabbix-agent2.deb +if [ $? -ne 0 ]; then + echo "Fehler beim Herunterladen des Pakets." + exit 1 +fi + +echo "Installiere das Paket..." +dpkg -i /tmp/zabbix-agent2.deb +if [ $? -ne 0 ]; then + echo "Fehler bei der Paketinstallation. Fehlende Abhängigkeiten werden nun installiert..." + apt-get install -f -y +fi + +# Installation von apt-show-versions +echo "Installiere apt-show-versions..." +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." \ No newline at end of file