126 lines
4.1 KiB
Bash
126 lines
4.1 KiB
Bash
#!/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 <zabbix-server> <hostname>
|
|
#
|
|
# 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 <zabbix-server> <hostname>"
|
|
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." |