Initial commit: Zabbix Agent 7.4 deployment scripts
This commit is contained in:
99
install-zabbix-agent.sh
Executable file
99
install-zabbix-agent.sh
Executable 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)."
|
||||
Reference in New Issue
Block a user