So installieren und konfigurieren Sie Zabbix für die sichere Überwachung von Remoteservern unter Ubuntu 16.04

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 Kontorootbei 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 vonzabbixzu 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 vonzabbixund nicht für den Benutzer vonrootverwendet 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 vonDBPasswordin 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.

Prerequisites

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.

DB Connection

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.

Zabbix Server Details

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.

Summary

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.

The Zabbix login screen

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.

Creating a host

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.

Adding a template to the host

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.

Setting up the encryption.

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.

Zabbix shows your new host.

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:

Zabbix shows you a warning about the host that’s offline.

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.