Einführung
Zabbix ist eine Open-Source-Überwachungssoftware für Netzwerke und Anwendungen. Es bietet Echtzeitüberwachung von Tausenden von Messwerten, die von Servern, virtuellen Maschinen und anderen Netzwerkgeräten erfasst werden. Mithilfe dieser Metriken können Sie den aktuellen Zustand Ihrer IT-Infrastruktur ermitteln und Probleme mit Hardware- oder Softwarekomponenten erkennen, bevor sich Kunden beschweren. Nützliche Informationen werden in einer Datenbank gespeichert, damit Sie die Daten im Laufe der Zeit analysieren und die Qualität der bereitgestellten Dienste verbessern oder Upgrades Ihrer Geräte planen können.
Zabbix verwendet eine Client-Server-Architektur und verwendet einen kleinen Agenten auf dem überwachten Client, um Daten zu sammeln und an den Zabbix-Server zu senden. Zabbix Version 3 unterstützt die verschlüsselte Kommunikation zwischen dem Server und verbundenen Clients, sodass Ihre Daten geschützt sind, während sie über unsichere Netzwerke übertragen werden.
Der Zabbix-Server speichert seine Daten in einer relationalen Datenbank, die auf MySQL, PostgreSQL oder Oracle basiert. Es bietet auch eine Webschnittstelle, über die Sie Daten anzeigen und Systemeinstellungen konfigurieren können. In diesem Lernprogramm werden zwei Computer konfiguriert. Einer wird als Server konfiguriert und der andere als Client, den Sie überwachen. Der Server verwendet eine MySQL-Datenbank, um Überwachungsdaten aufzuzeichnen und verwendet Apache, um das Webinterface zu bedienen.
Voraussetzungen
Um diesem Tutorial zu folgen, benötigen Sie:
-
Zwei Ubuntu 16.04-Server, die jeweils mit einem sudo-Benutzer ohne Rootberechtigung konfiguriert sind. Sie können diese einrichten, indem Sie dieseninitial Ubuntu server setup article folgen.
-
Auf dem Server, auf dem der Zabbix-Server ausgeführt wird, müssen Apache, MySQL und PHP installiert sein. Befolgen Siethis guide, um diese auf einem Ihrer Server zu konfigurieren.
[[Schritt-1 -—- Installieren des Zabbix-Servers]] == Schritt 1 - Installieren des Zabbix-Servers
Zuerst müssen wir den Zabbix Server auf dem Server installieren, auf dem wir MySQL, Apache und PHP installieren. In diesem Lernprogramm wird dieses Gerät als "Zabbix-Server" bezeichnet. Melden Sie sich als Benutzer ohne Rootberechtigung auf diesem Computer an:
ssh sammy@your_zabbix_server_ip_address
Bevor wir Zabbix installieren, müssen wir einige PHP-Module installieren, die Zabbix benötigt. Aktualisieren Sie zunächst die Liste der verfügbaren Pakete Ihres Systems:
sudo apt-get update
Dann installieren Sie die PHP-Module, die Zabbix benötigt:
sudo apt-get install php7.0-xml php7.0-bcmath php7.0-mbstring
Jetzt können wir Zabbix installieren.
Zabbix ist im Paketmanager von Ubuntu verfügbar, aber veraltet. Daher verwenden wir das offizielle Zabbix-Repository, um die neueste stabile Version zu installieren. Laden Sie das Repository-Konfigurationspaket herunter und installieren Sie es:
wget http://repo.zabbix.com/zabbix/3.2/ubuntu/pool/main/z/zabbix-release/zabbix-release_3.2-1+xenial_all.deb
sudo dpkg -i zabbix-release_3.2-1+xenial_all.deb
Sie werden die folgende Ausgabe sehen:
OutputSelecting previously unselected package zabbix-release.
(Reading database ... 55276 files and directories currently installed.)
Preparing to unpack zabbix-release_3.2-1+xenial_all.deb ...
Unpacking zabbix-release (3.2-1+xenial) ...
Setting up zabbix-release (3.2-1+xenial) ...
Aktualisieren Sie den Paketindex, damit das neue Repository enthalten ist:
sudo apt-get update
Installieren Sie dann den Zabbix-Server und das Web-Frontend mit Unterstützung für MySQL-Datenbanken:
sudo apt-get install zabbix-server-mysql zabbix-frontend-php
Installieren wir auch den Zabbix-Agenten, mit dem wir Daten zum Zabbix-Serverstatus selbst erfassen können.
sudo apt-get install zabbix-agent
Bevor wir Zabbix verwenden können, müssen wir eine Datenbank einrichten, in der die Daten gespeichert werden, die der Zabbix-Server von seinen Agenten erfasst.
[[Schritt 2 - Konfigurieren der MySQL-Datenbank für Zabbix]] == Schritt 2 - Konfigurieren der MySQL-Datenbank für Zabbix
Wir müssen eine neue MySQL-Datenbank erstellen und sie mit einigen grundlegenden Informationen füllen, damit sie für Zabbix geeignet ist. Wir erstellen auch einen bestimmten Benutzer für diese Datenbank, damit sich Zabbix nicht mit dem Kontoroot
bei MySQL anmeldet.
Melden Sie sich bei MySQL als Root-Benutzer mit dem Root-Passwort an, das Sie während der Installation des MySQL-Servers eingerichtet haben:
mysql -uroot -p
Erstellen Sie die Zabbix-Datenbank mit UTF-8-Zeichenunterstützung:
create database zabbix character set utf8 collate utf8_bin;
Erstellen Sie dann einen Benutzer, den der Zabbix-Server verwenden wird, gewähren Sie ihm Zugriff auf die neue Datenbank und legen Sie das Kennwort für den Benutzer fest:
grant all privileges on zabbix.* to zabbix@localhost identified by 'your_password';
Wenden Sie dann diese neuen Berechtigungen an:
flush privileges;
Das kümmert sich um den Benutzer und die Datenbank. Beenden Sie die Datenbankkonsole.
quit;
Als nächstes müssen wir das anfängliche Schema und die Daten importieren. Die Zabbix-Installation hat uns eine Datei zur Verfügung gestellt, die dies für uns vorbereitet.
Führen Sie den folgenden Befehl aus, um das Schema einzurichten und die Daten in die Datenbank vonzabbix
zu importieren. Wir verwendenzcat
, da die Daten in der Datei komprimiert sind.
zcat /usr/share/doc/zabbix-server-mysql/create.sql.gz | mysql -uzabbix -p zabbix
Geben Sie das Kennwort für den MySQL-Benutzer vonzabbixein, den Sie konfiguriert haben, als Sie dazu aufgefordert wurden.
Dieser Befehl gibt keine Fehler aus, wenn er erfolgreich war. Wenn der FehlerERROR 1045 (28000): Access denied for user 'zabbix'@'localhost' (using password: YES)
angezeigt wird, stellen Sie sicher, dass Sie das Kennwort für den Benutzer vonzabbix
und nicht für den Benutzer vonroot
verwendet haben.
Damit der Zabbix-Server diese Datenbank verwenden kann, müssen Sie das Datenbankkennwort in der Zabbix-Serverkonfigurationsdatei festlegen. Öffnen Sie die Konfigurationsdatei in Ihrem Editor:
sudo nano /etc/zabbix/zabbix_server.conf
Suchen Sie nach dem folgenden Abschnitt der Datei:
/etc/zabbix/zabbix_server.conf
### Option: DBPassword
# Database password. Ignored for SQLite.
# Comment this line if no password is used.
#
# Mandatory: no
# Default:
# DBPassword=
Diese Kommentare in der Datei erläutern, wie eine Verbindung zur Datenbank hergestellt wird. Wir müssen den Wert vonDBPassword
in der Datei auf das Kennwort für unseren Datenbankbenutzer setzen. Fügen Sie diese Zeile unter den Kommentaren ein, um die Datenbank zu konfigurieren:
/etc/zabbix/zabbix_server.conf
DBPassword=your_zabbix_mysql_password
Das kümmert sich um die Zabbix-Serverkonfiguration, aber wir müssen einige Änderungen an unserem PHP-Setup vornehmen, damit die Zabbix-Weboberfläche ordnungsgemäß funktioniert.
[[Schritt-3 - Konfigurieren von PHP für Zabbix]] == Schritt 3 - Konfigurieren von PHP für Zabbix
Die Zabbix-Weboberfläche ist in PHP geschrieben und erfordert einige spezielle PHP-Servereinstellungen. Während des Zabbix-Installationsprozesses wurde eine Apache-Konfigurationsdatei erstellt, die diese Einstellungen enthält. Es befindet sich im Verzeichnis/etc/zabbix
und wird von Apache automatisch geladen. Wir müssen eine kleine Änderung an dieser Datei vornehmen, also öffnen Sie sie.
sudo nano /etc/zabbix/apache.conf
Die Datei enthält PHP-Einstellungen, die die erforderlichen Anforderungen für die Zabbix-Weboberfläche erfüllen. Die einzige Änderung, die Sie vornehmen müssen, ist die Einstellung der entsprechenden Zeitzone, die standardmäßig auskommentiert ist.
/etc/zabbix/apache.conf
...
php_value max_execution_time 300
php_value memory_limit 128M
php_value post_max_size 16M
php_value upload_max_filesize 2M
php_value max_input_time 300
php_value always_populate_raw_post_data -1
# php_value date.timezone Europe/Riga
Kommentieren Sie die oben hervorgehobene Zeitzonenzeile aus und ändern Sie sie in Ihre Zeitzone. Sie können dieselist of supported time zones verwenden, um die richtige für Sie zu finden. Speichern und schließen Sie dann die Datei.
Starten Sie jetzt Apache neu, um diese neuen Einstellungen zu übernehmen.
sudo systemctl restart apache2
Sie können jetzt den Zabbix-Server starten.
sudo systemctl start zabbix-server
Überprüfen Sie anschließend, ob der Zabbix-Server ordnungsgemäß ausgeführt wird:
sudo systemctl status zabbix-server
Sie sehen folgenden Status:
Output● zabbix-server.service - Zabbix Server
Loaded: loaded (/lib/systemd/system/zabbix-server.service; disabled; vendor preset: enabled)
Active: :active (running) since Thu 2017-06-08 06:40:43 UTC; 6s ago
Process: 15201 ExecStart=/usr/sbin/zabbix_server -c $CONFFILE (code=exited, status=0/SUCCESS)
...
Aktivieren Sie schließlich den Server, um beim Booten zu starten:
sudo systemctl enable zabbix-server
Der Server ist eingerichtet und mit der Datenbank verbunden. Nun richten wir das Web-Frontend ein.
[[Schritt 4 - Konfigurieren der Einstellungen für die Zabbix-Weboberfläche] == Schritt 4 - Konfigurieren der Einstellungen für die Zabbix-Weboberfläche
Über die Webschnittstelle können wir Berichte anzeigen und Hosts hinzufügen, die wir überwachen möchten. Bevor wir sie verwenden können, sind jedoch einige Ersteinstellungen erforderlich. Starten Sie Ihren Browser und gehen Sie zur Adressehttp://your_zabbix_server_ip_address/zabbix/
. Auf dem ersten Bildschirm sehen Sie eine Willkommensnachricht. Klicken Sie aufNext step, um fortzufahren.
Auf dem nächsten Bildschirm sehen Sie die Tabelle, in der alle Voraussetzungen für die Ausführung von Zabbix aufgeführt sind.
Alle Werte in dieser Tabelle müssenOK sein. Überprüfen Sie daher, ob dies der Fall ist. Scrollen Sie nach unten und sehen Sie sich alle Voraussetzungen an. Wenn Sie überprüft haben, dass alles betriebsbereit ist, klicken Sie aufNext step, um fortzufahren.
Im nächsten Bildschirm werden Informationen zur Datenbankverbindung abgefragt.
Wir haben den Zabbix-Server über unsere Datenbank informiert, aber die Zabbix-Weboberfläche benötigt auch Zugriff auf die Datenbank, um Hosts zu verwalten und Daten zu lesen. Geben Sie daher die in Schritt 2 konfigurierten MySQL-Anmeldeinformationen ein und klicken Sie aufNext step, um fortzufahren.
Auf dem nächsten Bildschirm können Sie die Standardwerte für die Optionen beibehalten.
Name ist optional; Es wird in der Weboberfläche verwendet, um einen Server von einem anderen zu unterscheiden, falls Sie mehrere Überwachungsserver haben. Klicken Sie aufNext step, um fortzufahren.
Auf dem nächsten Bildschirm wird die Zusammenfassung vor der Installation angezeigt, damit Sie überprüfen können, ob alles korrekt ist.
Klicken Sie aufNext step, um zum letzten Bildschirm zu gelangen.
Die Einrichtung des Webinterfaces ist abgeschlossen! Dieser Prozess erstellt die Konfigurationsdatei/usr/share/zabbix/conf/zabbix.conf.php
, die Sie sichern und in Zukunft verwenden können. Klicken Sie aufFinish, um zum Anmeldebildschirm zu gelangen. Der Standardbenutzer istAdmin und das Passwort istzabbix.
Bevor wir uns anmelden, richten wir den Zabbix-Agenten auf unserem anderen Server ein.
[[Schritt 5 - Installieren und Konfigurieren des Zabbix-Agenten]] == Schritt 5 - Installieren und Konfigurieren des Zabbix-Agenten
Jetzt müssen wir die Agentensoftware konfigurieren, die Überwachungsdaten an den Zabbix-Server sendet.
Melden Sie sich bei dem zweiten Server an, den wir als "überwachten Server" bezeichnen.
ssh sammy@your_monitored_server_ip_address
Führen Sie dann wie auf dem Zabbix-Server die folgenden Befehle aus, um das Repository-Konfigurationspaket zu installieren:
wget http://repo.zabbix.com/zabbix/3.2/ubuntu/pool/main/z/zabbix-release/zabbix-release_3.2-1+xenial_all.deb
sudo dpkg -i zabbix-release_3.2-1+xenial_all.deb
Aktualisieren Sie als Nächstes den Paketindex:
sudo apt-get update
Dann installieren Sie den Zabbix-Agenten:
sudo apt-get install zabbix-agent
Während Zabbix die zertifikatbasierte Verschlüsselung unterstützt, geht das Einrichten einer Zertifizierungsstelle über den Rahmen dieses Lernprogramms hinaus. Wir können jedoch Pre-Shared Keys (PSK) verwenden, um die Verbindung zwischen Server und Agent zu sichern.
Also erstmal eine PSK generieren:
sudo sh -c "openssl rand -hex 32 > /etc/zabbix/zabbix_agentd.psk"
Zeigen Sie den Schlüssel, damit Sie ihn irgendwo kopieren können. Sie benötigen es, um den Host zu konfigurieren.
cat /etc/zabbix/zabbix_agentd.psk
Der Schlüssel sieht ungefähr so aus:
Outputcd12686e166a80aa09a227ae5f97834eaa3d5ae686d2ae39590f17ef85dd6de5
Bearbeiten Sie nun die Einstellungen des Zabbix-Agenten, um dessen sichere Verbindung zum Zabbix-Server einzurichten. Öffnen Sie die Agentenkonfigurationsdatei in Ihrem Texteditor:
sudo nano /etc/zabbix/zabbix_agentd.conf
Jede Einstellung in dieser Datei wird durch informative Kommentare in der gesamten Datei dokumentiert, aber Sie müssen nur einige von ihnen bearbeiten.
Zuerst müssen Sie die IP-Adresse des Zabbix-Servers bearbeiten. Suchen Sie den folgenden Abschnitt:
/etc/zabbix/zabbix_agentd.conf
### Option: Server
# List of comma delimited IP addresses (or hostnames) of Zabbix servers.
# Incoming connections will be accepted only from the hosts listed here.
# If IPv6 support is enabled then '127.0.0.1', '::127.0.0.1', '::ffff:127.0.0.1' are treated equally.
#
# Mandatory: no
# Default:
# Server=
Server=127.0.0.1
Ändern Sie den Standardwert in die IP Ihres Zabbix-Servers:
/etc/zabbix/zabbix_agentd.conf
Server=your_zabbix_server_ip_address
Suchen Sie als Nächstes den Abschnitt, der die sichere Verbindung zum Zabbix-Server konfiguriert, und aktivieren Sie die Pre-Shared Key-Unterstützung. Suchen Sie den AbschnittTSLConnect
, der folgendermaßen aussieht:
/etc/zabbix/zabbix_agentd.conf
### Option: TLSConnect
# How the agent should connect to server or proxy. Used for active checks.
# Only one value can be specified:
# unencrypted - connect without encryption
# psk - connect using TLS and a pre-shared key
# cert - connect using TLS and a certificate
#
# Mandatory: yes, if TLS certificate or PSK parameters are defined (even for 'unencrypted' connection)
# Default:
# TLSConnect=unencrypted
Fügen Sie dann diese Zeile hinzu, um die Unterstützung für vorinstallierte Schlüssel zu konfigurieren:
/etc/zabbix/zabbix_agentd.conf
TLSConnect=psk
Suchen Sie als Nächstes den AbschnittTLSAccept
, der folgendermaßen aussieht:
/etc/zabbix/zabbix_agentd.conf
### Option: TLSAccept
# What incoming connections to accept.
# Multiple values can be specified, separated by comma:
# unencrypted - accept connections without encryption
# psk - accept connections secured with TLS and a pre-shared key
# cert - accept connections secured with TLS and a certificate
#
# Mandatory: yes, if TLS certificate or PSK parameters are defined (even for 'unencrypted' connection)
# Default:
# TLSAccept=unencrypted
Konfigurieren Sie eingehende Verbindungen für die Unterstützung vorinstallierter Schlüssel, indem Sie diese Zeile hinzufügen:
/etc/zabbix/zabbix_agentd.conf
TLSAccept=psk
Suchen Sie als Nächstes den AbschnittTLSPSKIdentity
, der folgendermaßen aussieht:
/etc/zabbix/zabbix_agentd.conf
### Option: TLSPSKIdentity
# Unique, case sensitive string used to identify the pre-shared key.
#
# Mandatory: no
# Default:
# TLSPSKIdentity=
Wählen Sie einen eindeutigen Namen, um Ihren vorinstallierten Schlüssel zu identifizieren, indem Sie diese Zeile hinzufügen:
/etc/zabbix/zabbix_agentd.conf
TLSPSKIdentity=PSK 001
Sie verwenden dies alsPSK ID, wenn Sie Ihren Host über die Zabbix-Weboberfläche hinzufügen.
Stellen Sie dann die Option ein, die auf Ihren zuvor erstellten vorinstallierten Schlüssel verweist. Suchen Sie die OptionTLSPSKFile
:
/etc/zabbix/zabbix_agentd.conf
### Option: TLSPSKFile
# Full pathname of a file containing the pre-shared key.
#
# Mandatory: no
# Default:
# TLSPSKFile=
Fügen Sie diese Zeile hinzu, um den Zabbix-Agenten auf Ihre PSK-Datei zu verweisen, die Sie erstellt haben:
/etc/zabbix/zabbix_agentd.conf
TLSPSKFile=/etc/zabbix/zabbix_agentd.psk
Speichern und schließen Sie die Datei. Jetzt können Sie den Zabbix-Agenten starten und so einstellen, dass er beim Booten startet:
sudo systemctl start zabbix-agent
sudo systemctl enable zabbix-agent
Stellen Sie sicher, dass der Zabbix-Agent ordnungsgemäß ausgeführt wird:
sudo systemctl status zabbix-agent
Der folgende Status zeigt an, dass der Agent ausgeführt wird:
Output● zabbix-agent.service - Zabbix Agent
Loaded: loaded (/lib/systemd/system/zabbix-agent.service; disabled; vendor preset: enabled)
Active: active (running) since Thu 2017-06-08 08:33:52 UTC; 4s ago
Process: 18185 ExecStart=/usr/sbin/zabbix_agentd -c $CONFFILE (code=exited, status=0/SUCCESS)
...
Unser Agent ist jetzt bereit, Daten an den Zabbix-Server zu senden. Um es zu verwenden, müssen wir jedoch über die Webkonsole des Servers eine Verknüpfung zu ihm herstellen.
[.Hinweis]##
Note: Wenn Sie UFW verwenden, konfigurieren Sie es so, dass Verbindungen zu Port10050
zulässig sind:
sudo ufw allow 10050/tcp
Sie können mehr über UFW inHow To Set Up a Firewall with UFW on Ubuntu 16.04.
erfahren
[[Schritt 6 - Hinzufügen des neuen Hosts zum Zabbix-Server]] == Schritt 6 - Hinzufügen des neuen Hosts zum Zabbix-Server
Das Installieren eines Agenten auf einem Server, den wir überwachen möchten, ist nur die Hälfte des Prozesses. Jeder Host, den wir überwachen möchten, muss auf dem Zabbix-Server registriert sein, was über die Webschnittstelle möglich ist.
Melden Sie sich bei der Zabbix Server-Weboberfläche an, indem Sie zur Adressehttp://your_zabbix_server_ip_address/zabbix/
navigieren.
Wenn Sie sich angemeldet haben, klicken Sie in der oberen Navigationsleiste aufConfiguration und dann aufHosts. Klicken Sie dann oben rechts auf dem Bildschirm auf die SchaltflächeCreate host. Dadurch wird die Host-Konfigurationsseite geöffnet.
Passen Sie dieHost name undIP ADDRESS an den Hostnamen und die IP-Adresse Ihres Client-Computers an. Fügen Sie dann den Host zu einer Gruppe hinzu, indem Sie eine der Gruppen aus der Liste auswählen oder eine eigene Gruppe erstellen. Der Host kann in mehreren Gruppen sein. Die GruppeLinux Serversist eine gute Standardauswahl. Klicken Sie nach dem Hinzufügen der Gruppe auf die RegisterkarteTemplates.
Geben SieTemplate OS Linux
in das FeldSearch ein und klicken Sie dann aufAdd, um diese Vorlage dem Host hinzuzufügen.
Navigieren Sie als Nächstes zur RegisterkarteEncryption. Wählen SiePSK fürConnections to host undConnections from host. Setzen Sie dannPSK identity aufPSK 001
. Dies ist der Wert derTLSPSKIdentity-Einstellung des zuvor konfigurierten Zabbix-Agenten. Setzen Sie dann den Wert von
PSKauf den Schlüssel, den Sie für den Zabbix-Agenten generiert haben. Es ist dasjenige, das in der Datei/etc/zabbix/zabbix_agentd.psk
auf dem Agentencomputer gespeichert ist.
Klicken Sie abschließend auf die SchaltflächeAdd am unteren Rand des Formulars, um den Host zu erstellen.
Ihr neuer Host wird mit grünen Bezeichnungen angezeigt, die darauf hinweisen, dass alles ordnungsgemäß funktioniert und die Verbindung verschlüsselt ist.
Nach einigen Sekunden können Sie zuMonitoring und dann zuLatest data navigieren, um die Daten Ihres Agenten anzuzeigen.
Fahren Sie den überwachten Server herunter, damit Sie sehen können, wie Zabbix Sie auf Probleme hinweist, um sicherzustellen, dass alles funktioniert. Sobald der überwachte Server offline ist, wird die Warnung im Haupt-Dashboard angezeigt:
Wenn Sie über zusätzliche Server verfügen, die Sie überwachen müssen, melden Sie sich bei jedem Host an, installieren Sie den Zabbix-Agenten, generieren Sie ein PSK, konfigurieren Sie den Agenten und fügen Sie den Host zur Webschnittstelle hinzu, indem Sie dieselben Schritte ausführen, die Sie zum Hinzufügen Ihres ersten Hosts ausgeführt haben.
Fazit
In diesem Lernprogramm haben Sie gelernt, wie Sie eine einfache und sichere Überwachungslösung einrichten, mit der Sie den Status Ihrer Server überwachen können. Es kann Sie jetzt vor Problemen warnen, und Sie haben die Möglichkeit, einige Diagramme auf der Grundlage der erhaltenen Daten zu zeichnen, damit Sie sie analysieren und entsprechend planen können.