Zabbix Monitoring Installation Anleitung
Zabbix Monitoring Installation auf Ubuntu – Schritt-für-Schritt
Was ist Zabbix?
Zabbix ist eine Enterprise-Grade Monitoring-Lösung für Infrastruktur-Überwachung. Es kombiniert agentenloses Monitoring (SNMP, HTTP, ICMP) mit Agent-basiertem Monitoring für tiefere Einblicke in Systemmetriken, Logdateien und benutzerdefinierten Checks.
Architektur-Komponenten
- Zabbix Server: Zentrale Komponente, verarbeitet Daten, triggert Alarme
- Zabbix Proxy: Optional für dezentrale Überwachung großer Netzwerke
- Zabbix Agent: Läuft auf zu überwachenden Hosts, sammelt Metriken
- Zabbix Frontend: Web-Interface für Konfiguration und Dashboards
- Datenbank: MySQL/PostgreSQL zur Speicherung von Metriken und Konfiguration
Installation auf Ubuntu 22.04
Schritt 1: Repository und Pakete hinzufügen
sudo apt update sudo apt install -y wget gnupg2 # Zabbix-Repository-Paket für Ubuntu 22.04 wget https://repo.zabbix.com/zabbix-release/7.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_7.0-1+ubuntu22.04_all.deb sudo dpkg -i zabbix-release_7.0-1+ubuntu22.04_all.deb sudo apt update
Schritt 2: Notwendige Komponenten installieren
sudo apt install -y \ zabbix-server-mysql \ zabbix-frontend-php \ zabbix-apache-conf \ zabbix-sql-scripts \ zabbix-agent2 \ mysql-server \ php-mysql \ php-gd \ php-bcmath \ php-net-socket \ php-mbstring
Schritt 3: MySQL-Datenbank einrichten
sudo mysql -u root << 'EOF' CREATE DATABASE zabbix CHARACTER SET utf8mb4 COLLATE utf8mb4_bin; CREATE USER 'zabbix'@'localhost' IDENTIFIED BY 'zabbix_password_123'; GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'localhost'; FLUSH PRIVILEGES; EXIT; EOF
Schritt 4: SQL-Schema importieren
sudo zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql -u zabbix -p zabbix # Passwort eingeben: zabbix_password_123
Schritt 5: Zabbix Server konfigurieren
Datei: /etc/zabbix/zabbix_server.conf
DBHost=localhost DBName=zabbix DBUser=zabbix DBPassword=zabbix_password_123 DBPort=3306 ListenPort=10051 LogFile=/var/log/zabbix/zabbix_server.log PidFile=/var/run/zabbix/zabbix_server.pid DebugLevel=3 MaxHousekeeperDelete=5000 CacheSize=256M HistoryCacheSize=32M HistoryIndexCacheSize=8M TrendCacheSize=16M ValueCacheSize=32M # Für Performance-Optimierung bei vielen Hosts StartPollers=10 StartUnreachablePollers=2 StartTrappers=5 StartPingers=4
Schritt 6: PHP für Zabbix konfigurieren
Datei: /etc/php/8.1/fpm/conf.d/99-zabbix.ini oder /etc/php/8.1/apache2/conf.d/99-zabbix.ini
max_execution_time = 300 memory_limit = 256M post_max_size = 32M upload_max_filesize = 16M date.timezone = "Europe/Berlin"
Schritt 7: Services starten und aktivieren
sudo systemctl start mysql sudo systemctl start zabbix-server sudo systemctl start zabbix-agent2 sudo systemctl start apache2 # Beim Booten starten sudo systemctl enable mysql zabbix-server zabbix-agent2 apache2
Schritt 8: Web-Setup-Wizard
Öffnen Sie: http://localhost/zabbix
Der Wizard führt Sie durch:
- Check der PHP-Einstellungen
- Datenbank-Verbindung (localhost, zabbix, zabbix_password_123, zabbix)
- Server-Details
- Admin-Benutzer-Einrichtung (Standard: Admin/zabbix)
Ersten Host mit Zabbix Agent hinzufügen
Agent auf dem zu überwachenden Host installieren
# Auf dem Client-Host (z.B. webserver.example.com) sudo apt install -y zabbix-agent2 # Konfiguration: /etc/zabbix/zabbix_agent2.conf Server=zabbix-server.example.com # IP oder Hostname des Zabbix-Servers ListenPort=10050 Hostname=webserver-01 # Muss im Zabbix-Frontend konfiguriert werden sudo systemctl start zabbix-agent2 sudo systemctl enable zabbix-agent2
Host im Frontend hinzufügen
- Zabbix Web-UI öffnen → Data Collection → Hosts
- Click "Create Host"
- Host name: webserver-01
- Visible name: Web Server 01
- Host groups: Linux servers
- Agent interfaces: IP 192.168.1.100, Port 10050
- Templates: Und dann "Linux by Zabbix agent" Template auswählen
- Save
Einfacher Availability Trigger erstellen
Im Frontend:
- Monitoring → Hosts → webserver-01
- Tab "Triggers" → Create trigger
- Name: "Host webserver-01 is down"
- Severity: High
- Expression:
{webserver-01:agent.ping.nodata(3m)}=1 - Diese Expression triggert wenn der Agent 3 Minuten keine Daten sendet
- Save
Verfügbarkeit überprüfen
# Im Zabbix Frontend oder per API
curl -X POST http://localhost/api_jsonrpc.php \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"trigger.get","params":{"filter":{"host":"webserver-01"}},"auth":"YOUR_AUTH_TOKEN","id":1}'
Features-Vergleich: Zabbix vs. Prometheus/Grafana
| Feature | Zabbix | Prometheus | Grafana |
|---|---|---|---|
| Monitoring & Alerting | ✅ Built-in | ✅ Built-in | Externe Systeme |
| Visualisierung | Eingebaut (basic) | ⚠️ Keine Dashboards | ✅ Hervorragend |
| Discovery | ✅ LLD (Low Level Discovery) | Service Discovery | ⚠️ Keine |
| SNMP Support | ✅ Native | ⚠️ Exporter nötig | ⚠️ Keine |
| Komplexe Trigger | ✅ Very flexible | AlertManager | ⚠️ Keine |
| Datenspeicherung | Database (SQL) | Time-Series DB | Keine |
| Lernkurve | Mittel | Steil | Flach |
Wann sollte Zabbix verwendet werden?
- Traditionelle Infrastruktur (viele Legacy-Geräte, SNMP)
- Schnelle All-in-One-Lösung mit Monitoring + Alerting
- Agentenloses Monitoring für viele Hosts
- Komplexe Abhängigkeiten und Service Dependencies
Wann ist Prometheus + Grafana besser?
- Cloud-native / Kubernetes-Umgebung
- Microservices mit Prometheus-Libraries
- Schlanke Ressourcen-Nutzung erforderlich
- Custom Dashboards mit maximaler Flexibilität
Häufige Probleme und Lösungen
Problem: Agent zeigt "Unknown" Status
# Agent-Konnektivität testen zabbix_get -s 192.168.1.100 -p 10050 -k agent.ping # Firewall-Regel prüfen sudo ufw allow 10050/tcp # Agent-Log prüfen sudo tail -f /var/log/zabbix/zabbix_agent2.log
Problem: Datenbank zu groß
Nutzen Sie das Housekeeper-Feature in Zabbix Web-UI:
- Administration → General → Housekeeping
- History retention: 30 Tage (default)
- Trends retention: 365 Tage
- Events retention: 60 Tage
Verwandte Artikel
- 📖 Prometheus Metriken Server – Installation und Konfiguration
- 📖 Grafana Dashboard einrichten – Visuelle Datenanalyse
- 📖 Infrastructure Monitoring Metriken – Best Practices
- 🔧 Enjyn Server Monitor – Kostenlose Uptime-Überwachung
- 🔧 Sichere Server bei Enjyn mieten