Initial commit: Zabbix Agent 7.4 deployment scripts

This commit is contained in:
2026-02-20 12:27:50 +01:00
commit eb5a063624
5 changed files with 408 additions and 0 deletions

99
install-zabbix-agent.sh Executable file
View File

@ -0,0 +1,99 @@
#!/usr/bin/env bash
# =============================================================================
# Zabbix Agent 2 Aktiv-Modus Installer (Version 7.4)
# Unterstützte Systeme: Debian 11/12, Ubuntu 20.04 / 22.04 / 24.04
#
# Aufruf:
# sudo bash install-zabbix-agent.sh <hostname>
#
# Beispiel:
# sudo bash install-zabbix-agent.sh webserver-prod-01
# =============================================================================
set -euo pipefail
# ── Konfiguration ────────────────────────────────────────────────────────────
ZABBIX_SERVER="zabbix.server-nb.de" # <-- Zabbix-Server-Adresse hier eintragen
ZABBIX_VERSION="7.4"
# ─────────────────────────────────────────────────────────────────────────────
# Farben
RED='\033[0;31m'; GREEN='\033[0;32m'; YELLOW='\033[1;33m'; NC='\033[0m'
info() { echo -e "${GREEN}[INFO]${NC} $*"; }
warn() { echo -e "${YELLOW}[WARN]${NC} $*"; }
error() { echo -e "${RED}[ERROR]${NC} $*" >&2; exit 1; }
# ── Prüfungen ────────────────────────────────────────────────────────────────
[[ $EUID -ne 0 ]] && error "Bitte als root oder mit sudo ausführen."
[[ $# -lt 1 ]] && error "Kein Hostname angegeben.\nAufruf: $0 <hostname>"
AGENT_HOSTNAME="$1"
# ── OS-Erkennung ─────────────────────────────────────────────────────────────
if [[ ! -f /etc/os-release ]]; then
error "Kein /etc/os-release gefunden kann OS nicht erkennen."
fi
source /etc/os-release
case "$ID" in
debian) REPO_OS="debian"; REPO_CODENAME="${VERSION_CODENAME}" ;;
ubuntu) REPO_OS="ubuntu"; REPO_CODENAME="${VERSION_CODENAME}" ;;
*) error "Nicht unterstütztes Betriebssystem: $ID" ;;
esac
info "System erkannt: ${PRETTY_NAME} (${REPO_CODENAME})"
# ── Zabbix-Repo einrichten ───────────────────────────────────────────────────
RELEASE_PKG="zabbix-release_latest_${ZABBIX_VERSION}+${REPO_OS}${VERSION_ID}_all.deb"
REPO_URL="https://repo.zabbix.com/zabbix/${ZABBIX_VERSION}/release/${REPO_OS}/pool/main/z/zabbix-release/${RELEASE_PKG}"
#"Lade Zabbix-Repository-Paket herunter ..."
wget -q --show-progress -O "/tmp/${RELEASE_PKG}" "${REPO_URL}" \
|| error "Download fehlgeschlagen: ${REPO_URL}"
info "Installiere Repository-Paket ..."
dpkg -i "/tmp/${RELEASE_PKG}"
rm -f "/tmp/${RELEASE_PKG}"
apt-get update -qq
# ── Zabbix Agent 2 installieren ──────────────────────────────────────────────
info "Installiere zabbix-agent2 ..."
apt-get install -y -qq zabbix-agent2
# ── Konfiguration schreiben ───────────────────────────────────────────────────
CONF="/etc/zabbix/zabbix_agent2.conf"
info "Konfiguriere Zabbix Agent 2 (aktiv, Hostname: ${AGENT_HOSTNAME}) ..."
# Hostname setzen
sed -i "s|^Hostname=.*|Hostname=${AGENT_HOSTNAME}|" "$CONF"
# Aktiven Server setzen
sed -i "s|^ServerActive=.*|ServerActive=${ZABBIX_SERVER}|" "$CONF"
# Passiver Server (bleibt für lokale Health-Checks; externe Verbindungen
# werden durch die Firewall geblockt ggf. anpassen)
sed -i "s|^Server=.*|Server=${ZABBIX_SERVER}|" "$CONF"
# HostnameItem deaktivieren, damit der manuell gesetzte Hostname gilt
sed -i "s|^# HostnameItem=.*|# HostnameItem=|" "$CONF" 2>/dev/null || true
# ── Dienst aktivieren und starten ────────────────────────────────────────────
info "Aktiviere und starte Dienst ..."
systemctl enable zabbix-agent2
systemctl restart zabbix-agent2
# ── Ergebnis ─────────────────────────────────────────────────────────────────
echo ""
info "════════════════════════════════════════════════"
info " Zabbix Agent 2 erfolgreich installiert!"
info " Hostname : ${AGENT_HOSTNAME}"
info " Server : ${ZABBIX_SERVER}"
info " Modus : Aktiv"
info " Config : ${CONF}"
info " Status : $(systemctl is-active zabbix-agent2)"
info "════════════════════════════════════════════════"
echo ""
warn "Denk daran: Den Host '${AGENT_HOSTNAME}' im Zabbix-Frontend anlegen,"
warn "falls er noch nicht existiert (Configuration → Hosts → Create host)."