In diesem Artikel demonstriere ich, wie das Monitoring-System Zabbix auf dem Raspberry Pi Zero 2 WH etabliert wird. Der Raspberry Pi Zero 2 WH, ein Einplatinencomputer, mag weniger Leistung haben als sein größeres Pendant, doch er eignet sich optimal für diese Aufgabe.
Den Raspberry Pi Zero 2 WH habe ich bereits in diversen Beiträgen verwendet und dir bereits auch gezeigt wie man darauf in Python programmiert und eine Kamera anschließt.
- Vorstellung des neuen Raspberry Pi Zero 2 W
- Vergleich – Raspberry Pi Zero 2 W mit Pi Zero WH
- Raspberry Pi Zero 2 W als Pi-hole einrichten
Hier soll es nun darum gehen wie du das Monitoring Tool Zabbix einrichtest.
Inhaltsverzeichnis
- Technische Daten des Raspberry Pi Zero 2 WH
- Vorbereiten des Raspberry Pi Zero 2 WH
- Hinweis
- Installieren von MySQL auf dem Raspberry Pi Zero 2 WH
- Installation von Zabbix
- Schritt 1: herunterladen des Paketes
- Schritt 2: installieren des Paketes
- Schritt 3: neues einlesen der Paketquellen
- Schritt 4: installieren von Zabbix Server,Frontend etc.
- Schritt 5: einrichten der Datenbank
- Schritt 6: setzen des Passwortes für die Datenbank in der Konfiguration
- Schritt 7: Starten des Zabbix Servers
- Abschließende Konfiguration über das Webinterface
- Anmelden an Zabbix
- Abschluss & Ausblick
Den kleinen Einplatinencomputer Raspberry Pi Zero 2 bekommst du in zwei Versionen, zum einen mit Header und einmal ohne, dieses erkennst du an der Bezeichnung. Die Bezeichnung für „mit Header“ ist WH und für ohne einfach nur W. Ansonsten gibt es keine weiteren Unterschiede. Bei BerryBase.de bekommst du spezielle 2×40 Pin Header zum Auflöten, welche farbige Markierungen hat und damit kannst du sehr einfach die Pins beim Aufbau von Prototypen erkennen.


Technische Daten des Raspberry Pi Zero 2 WH
Nachfolgend die technischen Daten des Raspberry Pi Zero 2 WH:
Beschreibung | Wert |
---|---|
CPU | Broadcom BCM2710A1, quad-core 64-bit SoC (Arm Cortex-A53 @ 1GHz) |
Speicher | 512 MB LPDDR2 SDRAM |
Wi-Fi & Bluetooth | 2.4GHz IEEE 802.11b/g/n Drahtlos LAN, Bluetooth 4.2, BLE |
Schnittstellen | 1 × USB 2.0 mit OTG Unterstützung, HAT-kompatibler 40 Pin I/O Header, Mini HDMI Anschluss, Composite Video Anschluss über Lötaugen, CSI-2 Kamera Anschluss, |
H.264, MPEG-4 decode (1080p30); H.264 encode (1080p30) OpenGL ES 1.1, 2.0 graphics | |
Spannungsversorgung | Micro-USB Buchse, |
Leistungsaufnahme* | Idle – 0,62 W Stress & WiFi – 2,12 W |
Abmaße (L x B x H) | 65 mm x 30 mm x 5 mm |
Vorbereiten des Raspberry Pi Zero 2 WH
Bevor wir Zabbix installieren können, müssen wir auf einer SD-Karte ein Betriebssystem installieren. Hier wähle ich das aktuelle Raspberry Pi OS (Raspbian GNU/Linux 11 (bullseye)). Dieses kannst du sehr einfach mithilfe des Raspberry Pi Imager installieren.
Hinweis
Das Tool Zabbix läuft gemäß Eintrag im Handbuch erst auf leistungsstarken Systemen mit min. 8 GB RAM und zwei Kernen. Von diesen Anforderungen ist der Raspberry Pi Zero 2 WH weit entfernt und daher bin ich selber einmal gespannt, inwieweit das Tool läuft.
Im Nachfolgenden werden die Befehle in Fettschrift gekennzeichnet!
Installieren von MySQL auf dem Raspberry Pi Zero 2 WH
Bevor wir Zabbix installieren, müssen wir noch die MySQL Datenbank einrichten. Wie du auf dem Raspberry Pi eine MySQL Datenbank sowie Apache2 installierst, habe ich dir bereits im Beitrag Raspberry PI : Einrichten eines MySQL Datenbankservers erläutert. Für den Pi Zero ist dieses genauso und daher gebe ich dir hier lediglich kurz und knapp die Befehle dazu.
In meinem Fall war bereits der Apache2 Server installiert und konfiguriert, somit entfällt hier dieser Abschnitt aus dem verlinkten Beitrag.
sudo apt install mariadb-server
Per Default ist der MySQL Server ohne Zugangsberechtigungen und mit Beispieldaten eingerichtet. Dieses stellt ein großes Sicherheitsrisiko dar. Hier sollte man mit nachfolgendem Befehl dem Benutzer root ein Passwort vergeben und die Beispieldaten löschen.
sudo mysql_secure_installation
Damit ist der Datenbankserver eingerichtet und wir können mit der eigentlichen Installation von Zabbix beginnen.
Installation von Zabbix
Die Installation von Zabbix ist sehr einfach, denn über der Seite https://www.zabbix.com/de/download kann man sich die benötigten Befehle erstellen lassen. Zunächst wählt man die Version, welche man installieren möchte und danach die Konfiguration des Raspberry.
Als Ergebnis erhält man eine Liste von Befehlen, welche man 1:1 kopieren und auf dem Raspberry Pi mit root rechten ausführen kann.
Schritt 1: herunterladen des Paketes
Als Erstes wird das Installationspaket heruntergeladen
pi@raspberrypi:~ $ wget https://repo.zabbix.com/zabbix/6.4/raspbian/pool/main/z/zabbix-release/zabbix-release_6.4-1+debian11_all.deb
--2023-08-25 14:21:56-- https://repo.zabbix.com/zabbix/6.4/raspbian/pool/main/z/zabbix-release/zabbix-release_6.4-1+debian11_all.deb
Auflösen des Hostnamens repo.zabbix.com (repo.zabbix.com)… 2604:a880:2:d0::2062:d001, 178.128.6.101
Verbindungsaufbau zu repo.zabbix.com (repo.zabbix.com)|2604:a880:2:d0::2062:d001|:443 … verbunden.
HTTP-Anforderung gesendet, auf Antwort wird gewartet … 200 OK
Länge: 3740 (3,7K) [application/octet-stream]
Wird in »zabbix-release_6.4-1+debian11_all.deb« gespeichert.
Schritt 2: installieren des Paketes
Wenn das Installationspaket heruntergeladen wurde, dann muss dieses installiert werden.
pi@raspberrypi:~ $ sudo dpkg -i zabbix-release_6.4-1+debian11_all.deb
Vormals nicht ausgewähltes Paket zabbix-release wird gewählt.
(Lese Datenbank ... 106615 Dateien und Verzeichnisse sind derzeit installiert.)
Vorbereitung zum Entpacken von zabbix-release_6.4-1+debian11_all.deb ...
Entpacken von zabbix-release (1:6.4-1+debian11) ...
zabbix-release (1:6.4-1+debian11) wird eingerichtet ...
Schritt 3: neues einlesen der Paketquellen
Durch das Paket von Zabbix sind neue Paketquellen ins System eingetragen worden, diese müssen nun noch eingelesen werden.
pi@raspberrypi:~ $ sudo apt update
Holen:1 http://archive.raspberrypi.org/debian bullseye InRelease [23,6 kB]
Holen:2 http://raspbian.raspberrypi.org/raspbian bullseye InRelease [15,0 kB]
Holen:3 https://repo.zabbix.com/zabbix/6.4/raspbian bullseye InRelease [7.126 B]
Holen:4 http://raspbian.raspberrypi.org/raspbian bullseye/main armhf Packages [13,2 MB]
Holen:5 https://repo.zabbix.com/zabbix/6.4/raspbian bullseye/main Sources [1.938 B]
Holen:6 https://repo.zabbix.com/zabbix/6.4/raspbian bullseye/main armhf Packages [5.482 B]
Es wurden 13,3 MB in 13 s geholt (990 kB/s).
Paketlisten werden gelesen… Fertig
Abhängigkeitsbaum wird aufgebaut… Fertig
Statusinformationen werden eingelesen… Fertig
Alle Pakete sind aktuell.
Schritt 4: installieren von Zabbix Server,Frontend etc.
Wenn die Quellen des Paketmanagers aktualisiert wurden, können wir nun die benötigten Pakete für Zabbix herunterladen.
apt install zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-sql-scripts zabbix-agent
Schritt 5: einrichten der Datenbank
Als Erstes müssen wir uns an die Datenbank anmelden. Im Schritt vor der Zabbis Installation haben wir dem Benutzer root ein neues Passwort vergeben, dieses müssen wir hier eingeben.
pi@raspberrypi:~ $ mysql -u root -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 42
Server version: 10.5.19-MariaDB-0+deb11u2 Raspbian 11
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]>
Mit den vorbereiteten Befehlen von der Webseite können wir sehr einfach die Datenbank einrichten und brauchen wie erwähnt nur die Befehle nacheinander ausführen.
Zum einen erstellen wir die Datenbank, danach den Benutzer und weisen diesem die Rechte auf das Schema zu. Zum Abschluss wird ein globaler Parameter gesetzt und wir können dann uns mit quit abmelden.
MariaDB [(none)]> create database zabbix character set utf8mb4 collate utf8mb4_bin;
Query OK, 1 row affected (0,060 sec)
MariaDB [(none)]> create user zabbix@localhost identified by 'password';
Query OK, 0 rows affected (0,040 sec)
MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost;
Query OK, 0 rows affected (0,004 sec)
MariaDB [(none)]> set global log_bin_trust_function_creators = 1;
Query OK, 0 rows affected (0,002 sec)
MariaDB [(none)]> quit
Bye
pi@raspberrypi:~ $
Abschließend wird jetzt die Datenbank eingerichtet, dazu existiert ein Skript welches entpackt und ausgeführt werden muss. Aber Achtung es werden während dem Ausführen wird keine Ausgabe erzeugt, d.h. hier ist Geduld gefragt.
Das Passwort ist hier „password“.
pi@raspberrypi:~ $ zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p zabbix
Enter password:
pi@raspberrypi:~ $
Nun noch den globalen Parameter wieder zurück setzen.
pi@raspberrypi:~ $ mysql -uroot -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 52
Server version: 10.5.19-MariaDB-0+deb11u2 Raspbian 11
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> set global log_bin_trust_function_creators = 0;
Query OK, 0 rows affected (0,000 sec)
MariaDB [(none)]> quit
Bye
pi@raspberrypi:~ $
Schritt 6: setzen des Passwortes für die Datenbank in der Konfiguration
Beim konfigurieren der Datenbank haben wir dem Benutzer zabbix das Passwort „password“ gegeben. dieses müssen wir nun in der Serverkonfiguration setzen.
Ich nutze hier das Tool nano welches deutlich einfacher zu bedienen ist als vim.
pi@raspberrypi:/etc/zabbix $ sudo nano zabbix_server.conf
In der Zeile, wo der Benutzer definiert ist, fügen wir jetzt darunter den Eintrag für das Passwort hinzu.
DBPassword=password
Schritt 7: Starten des Zabbix Servers
Damit ist die installation und konfiguration abgeschlossen und wir können nun das System einmal neustarten.
pi@raspberrypi:/etc/zabbix $ systemctl restart zabbix-server zabbix-agent apache2
==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ===
Legitimierung ist zum Neustarten von »zabbix-server.service« notwendig.
Authenticating as: ,,, (pi)
Password:
==== AUTHENTICATION COMPLETE ===
==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ===
Legitimierung ist zum Neustarten von »zabbix-agent.service« notwendig.
Authenticating as: ,,, (pi)
Password:
==== AUTHENTICATION COMPLETE ===
==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ===
Legitimierung ist zum Neustarten von »apache2.service« notwendig.
Authenticating as: ,,, (pi)
Password:
==== AUTHENTICATION COMPLETE ===
pi@raspberrypi:/etc/zabbix $ systemctl enable zabbix-server zabbix-agent apache2
Synchronizing state of zabbix-server.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable zabbix-server
==== AUTHENTICATING FOR org.freedesktop.systemd1.reload-daemon ===
Legitimierung ist zum erneuten Laden des systemd-Zustands notwendig.
Authenticating as: ,,, (pi)
Password:
==== AUTHENTICATION COMPLETE ===
==== AUTHENTICATING FOR org.freedesktop.systemd1.reload-daemon ===
Legitimierung ist zum erneuten Laden des systemd-Zustands notwendig.
Authenticating as: ,,, (pi)
Password:
==== AUTHENTICATION COMPLETE ===
Synchronizing state of zabbix-agent.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable zabbix-agent
==== AUTHENTICATING FOR org.freedesktop.systemd1.reload-daemon ===
Legitimierung ist zum erneuten Laden des systemd-Zustands notwendig.
Authenticating as: ,,, (pi)
Password:
==== AUTHENTICATION COMPLETE ===
==== AUTHENTICATING FOR org.freedesktop.systemd1.reload-daemon ===
Legitimierung ist zum erneuten Laden des systemd-Zustands notwendig.
Authenticating as: ,,, (pi)
Password:
==== AUTHENTICATION COMPLETE ===
Synchronizing state of apache2.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable apache2
==== AUTHENTICATING FOR org.freedesktop.systemd1.reload-daemon ===
Legitimierung ist zum erneuten Laden des systemd-Zustands notwendig.
Authenticating as: ,,, (pi)
Password:
==== AUTHENTICATION COMPLETE ===
==== AUTHENTICATING FOR org.freedesktop.systemd1.reload-daemon ===
Legitimierung ist zum erneuten Laden des systemd-Zustands notwendig.
Authenticating as: ,,, (pi)
Password:
==== AUTHENTICATION COMPLETE ===
==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-unit-files ===
Legitimierung ist notwendig für die Verwaltung von Systemdiensten und Einheitendateien.
Authenticating as: ,,, (pi)
Password:
==== AUTHENTICATION COMPLETE ===
Created symlink /etc/systemd/system/multi-user.target.wants/zabbix-server.service → /lib/systemd/system/zabbix-server.service.
==== AUTHENTICATING FOR org.freedesktop.systemd1.reload-daemon ===
Legitimierung ist zum erneuten Laden des systemd-Zustands notwendig.
Authenticating as: ,,, (pi)
Password:
==== AUTHENTICATION COMPLETE ===
pi@raspberrypi:/etc/zabbix $
Abschließende Konfiguration über das Webinterface
Nachdem die Installation & Konfiguration abgeschlossen ist, können wir das Webfrontend über http://<IP-Adresse>/zabbix öffnen.
Hier können wir noch etwas an den gesetzten Einstellungen ändern und auch das Theme wählen. Wenn die Einstellungen getroffen sind und der Wizard beendet ist kannst du dich dann anmelden.







Anmelden an Zabbix
Mit dem letzten Wizard ist nun die Konfiguration abgeschlossen und es kann sich angemeldet werden.
Der Benutzername ist „Admin“ und das Passwort ist „zabbix“.
Nach der erfolgreichen Anmeldung, ist ein vorkonfiguriertes Dashboard mit einigen Feldern vorhanden. Je nach zuvor eingestelltem Theme kann dieses sich bei dir etwas anders darstellen.

Abschluss & Ausblick
Wir haben nun Zabbix erfolgreich auf dem Raspberry Pi Zero 2 WH installiert und konfiguriert. Im nächsten Beitrag werde ich dir zeigen wie du ein Gerät (in Zabbix als Host bezeichnet) einrichtest und überwachst. Da es sich auf meinem Blog hauptsächlich um Mikrocontroller und deren Programmierung dreht werde ich hier einen ESP32 nutzen welcher über seine GPIOs Signale von externen Sensoren/Aktoren aufnimmt und an das System Zabbix sendet.
kann man auch eine MariaDB auf einem anderen System nutzen? ich habe bereits eine auf einen anderen Raspberry Pi laufen
Hi,
natürlich, du musst dann zum ende statt localhost die Adresse / den Host des anderen Systems eintragen.
(Wenn du keine Verbindung aufgebaut bekommst musst du ggf. mal den Port prüfen ob dieser freigegeben ist.)
Gruß, Stefan