One place for hosting & domains

      installieren

      Installieren und Konfigurieren von Zabbix zur sicheren Überwachung von Remoteservern unter Ubuntu 20.04


      Der Autor wählte das Computer History Museum, um eine Spende im Rahmen des Programms Write for DOnations zu erhalten.

      Einführung

      Zabbix ist eine Open-Source-basierte Überwachungssoftware für Netzwerke und Anwendungen. Sie ermöglicht eine Echtzeitüberwachung von Tausenden von Metriken, die von Servern und virtuellen Maschinen, Netzwerkgeräten und Webanwendungen gesammelt werden. Diese Metriken können Ihnen helfen, den aktuellen Status Ihrer IT-Infrastruktur zu ermitteln und Probleme mit Hardware- oder Softwarekomponenten zu erkennen, bevor sich Kunden beschweren. Nützliche Informationen werden in einer Datenbank gespeichert, damit Sie diese im Laufe der Zeit analysieren und die Qualität der bereitgestellten Dienste verbessern oder Upgrades für Ihre Geräte planen können.

      Zabbix verwendet verschiedene Optionen zum Sammeln von Metriken, darunter Überwachung ohne Agent von Benutzerdiensten und Client-Server-Architektur. Um Servermetriken zu sammeln, gibt es auf dem überwachten Client einen kleinen Agenten zum Erfassen von Daten und Senden dieser Daten an den Zabbix-Server. Zabbix unterstützt verschlüsselte Kommunikation zwischen dem Server und verbundenen Clients. So werden Ihre Daten geschützt, wenn sie über unsichere Netzwerke übertragen werden.

      Der Zabbix-Server speichert seine Daten in einer relationalen Datenbank, die auf MySQL oder PostgreSQL basiert. Außerdem können Sie historische Daten in NoSQL-Datenbanken wie Elasticsearch und TimescaleDB speichern. Zabbix bietet eine Weboberfläche, mit der Sie Daten anzeigen und Systemeinstellungen konfigurieren können.

      In diesem Tutorial konfigurieren Sie Zabbix auf zwei Ubuntu 20.04-Rechnern. Einer wird als Zabbix-Server konfiguriert, der andere als Client, den Sie überwachen möchten. Der Zabbix-Server wird eine MySQL-Datenbank nutzen, um Überwachungsdaten zu erfassen, und Nginx zur Bereitstellung der Weboberfläche verwenden.

      Voraussetzungen

      Um dieser Anleitung zu folgen, benötigen Sie:

      • Zwei Ubuntu 20.04-Server, die gemäß des Leitfadens zur Ersteinrichtung des Servers für Ubuntu 20.04 eingerichtet wurden, einschließlich eines Nicht-root-Benutzers, der über sudo-Berechtigungen verfügt, und einer mit ufw konfigurierten Firewall. Auf einem Server installieren Sie Zabbix; in diesem Tutorial wird dieser Server als Zabbix-Server bezeichnet. Er wird Ihren zweiten Server überwachen; dieser zweite Server wird als zweiter Ubuntu-Server bezeichnet.

      • Der Server, auf dem der Zabbix-Server ausgeführt wird, setzt installiertes Nginx, MySQL und PHP voraus. Folgen Sie Schritt 1-3 unserer Anleitung zum Ubuntu 20.04-LEMP-Stack, um diese Anwendungen auf Ihrem Zabbix-Server zu konfigurieren.

      • Einen registrierten Domänennamen. Dieses Tutorial verwendet in allen Bereichen your_domain. Sie können einen Domänennamen unter Namecheap erwerben oder einen kostenlosen von Freenom herunterladen oder einfach die Domänenregistrierungsstelle Ihrer Wahl verwenden.

      • Die beiden folgenden DNS-Einträge, eingerichtet für Ihren Zabbix-Server. Wenn Sie DigitalOcean verwenden, lesen Sie bitte unsere DNS Dokumentation für Details, wie Sie sie hinzufügen.

        • Einen A-Datensatz, wobei your_domain auf die öffentliche IP-Adresse Ihres Zabbix-Servers verweist.
        • Einen A-Datensatz, wobei www.your_domain auf die öffentliche IP-Adresse Ihres Zabbix-Servers verweist.

      Da der Zabbix-Server dazu dient, wertvolle Informationen über Ihre Infrastruktur aufzurufen, auf die nicht autorosierte Benutzer nicht zugreifen sollen, sollten Sie Ihren Server unbedingt schützen, indem Sie ein TLS/SSL-Zertifikat installieren. Dieser Schutz ist optional, wird jedoch ausdrücklich empfohlen. Wenn Sie Ihren Server schützen möchten, folgen Sie nach Schritt 3 dieses Tutorials dem Leitfaden Let’s Encrypt unter Ubuntu 20.04.

      Schritt 1 — Installieren des Zabbix-Servers

      Zuerst müssen Sie Zabbix auf dem Server installieren, auf dem Sie MySQL, Nginx und PHP installiert haben. Melden Sie sich bei diesem Rechner als Ihr non-root user an:

      • ssh sammy@zabbix_server_ip_address

      Zabbix ist im Paketmanager von Ubuntu verfügbar, ist jedoch veraltet. Verwenden Sie daher das offizielle Ubuntu-Repository zum Installieren der neuesten stabilen Version. Laden Sie das Repository-Konfigurationspaket herunter und installieren Sie es:

      • wget https://repo.zabbix.com/zabbix/5.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.0-1+focal_all.deb
      • sudo dpkg -i zabbix-release_5.0-1+focal_all.deb

      Sie sehen die folgende Ausgabe:

      Output

      Selecting previously unselected package zabbix-release. (Reading database ... 64058 files and directories currently installed.) Preparing to unpack zabbix-release_5.0-1+focal_all.deb ... Unpacking zabbix-release (1:5.0-1+focal) ... Setting up zabbix-release (1:5.0-1+focal) ...

      Aktualisieren Sie den Paketindex, sodass das neue Repository enthalten ist:

      Installieren Sie dann den Zabbix-Server und das Web-Frontend mit Unterstützung der MySQL-Datenbank:

      • sudo apt install zabbix-server-mysql zabbix-frontend-php

      Installieren Sie außerdem den Zabbix-Agenten, mit dem Sie Daten über den Status des Zabbix-Servers selbst sammeln können.

      • sudo apt install zabbix-agent

      Bevor Sie Zabbix nutzen können, müssen Sie eine Datenbank einrichten, um die Daten zu speichern, die der Zabbix-Server von seinen Agenten erfassen wird. Sie können dies im nächsten Schritt tun.

      Schritt 2 — Konfigurieren der MySQL-Datenbank für Zabbix

      Sie müssen eine neue MySQL-Datenbank erstellen und sie mit einigen grundlegenden Daten befüllen, um sie bereit für Zabbix zu machen. Außerdem erstellen Sie einen bestimmten Benutzer für diese Datenbank, damit Zabbix sich nicht mit dem root-Konto bei MySQL anmeldet.

      Melden Sie sich als root user bei MySQL an:

      Erstellen Sie die Zabbix-Datenbank mit Unterstützung für UTF-8-Zeichen:

      • 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 Passwort für den Benutzer fest:

      • create user zabbix@localhost identified by 'your_zabbix_mysql_password';
      • grant all privileges on zabbix.* to zabbix@localhost;

      Damit sind der Benutzer und die Datenbank einsatzbereit. Beenden Sie die Datenbankkonsole.

      Als Nächstes müssen Sie das erste Schema und die Daten importieren. Die Zabbix-Installation bietet Ihnen eine Datei, die diese Einrichtung übernimmt.

      Führen Sie folgenden Befehl aus, um das Schema einzurichten und die Daten in die zabbix-Datenbank zu importieren. Verwenden Sie zcat, 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 Passwort für den von Ihnen konfigurierten zabbix-MySQL-Benutzer ein, wenn Sie dazu aufgefordert werden.

      Die Ausführung des Befehls kann eine oder zwei Minuten dauern. Wenn Sie den Fehler ERROR 1045 (28000): Access denied for userzabbix@'localhost' (using password: YES) erhalten, sollten Sie sich vergewissern, dass Sie das richtige Passwort für den zabbix verwendet haben.

      Damit der Zabbix-Server diese Datenbank nutzt, müssen Sie in der Konfigurationsdatei für den Zabbix-Server das Datenbankpasswort festlegen. Öffnen Sie die Konfigurationsdatei in Ihrem bevorzugten Editor. Dieses Tutorial verwendet nano:

      • 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 erklären, wie Sie eine Verbindung mit der Datenbank herstellen können. Sie müssen den Wert von DBPassword in der Datei auf das Passwort für Ihren Datenbankbenutzer setzen. Fügen Sie die Zeile nach den Kommentaren hinzu, um die Datenbank zu konfigurieren:

      /etc/zabbix/zabbix_server.conf

      ...
      DBPassword=your_zabbix_mysql_password
      ...
      

      Speichern und schließen Sie zabbix_server.conf, indem Sie Strg+X drücken, gefolgt von Y und dann der Eingabetaste, wenn Sie nano verwenden.

      Sie haben den Zabbix-Server nun so konfiguriert, dass er eine Verbindung zur Datenbank herstellt. Als Nächstes konfigurieren Sie den Nginx-Webserver, um das Zabbix-Frontend bereitzustellen.

      Schritt 3 — Konfigurieren von Nginx für Zabbix

      Installieren Sie das automatische Konfigurationspaket, um Nginx automatisch zu konfigurieren:

      • sudo apt install zabbix-nginx-conf

      Dadurch erhalten Sie die Konfigurationsdatei /etc/zabbix/nginx.conf sowie einen Link dahin im Nginx-Konfigurationsverzeichnis /etc/nginx/conf.d/zabbix.conf.

      Als Nächstes müssen Sie Änderungen an dieser Datei vornehmen. Öffnen Sie die Konfigurationsdatei:

      • sudo nano /etc/zabbix/nginx.conf

      Die Datei enthält eine automatisch generierte Nginx-Serverblock-Konfiguration. Sie enthält zwei Zeilen, die den Namen des Servers bestimmen und festlegen, an welchem Port er lauscht:

      /etc/zabbix/nginx.conf

      server {
      #        listen          80;
      #        server_name     example.com;
      ...
      

      Heben Sie die Kommentierung der beiden Zeilen auf und ersetzen Sie example.com durch Ihren Domänennamen. Ihre Einstellungen werden wie folgt aussehen:

      /etc/zabbix/nginx.conf

      server {
              listen          80;
              server_name     your_domain;
      ...
      

      Speichern und schließen Sie die Datei. Als Nächstes testen Sie, um sicherzustellen, dass es in keiner Ihrer Nginx-Dateien Syntaxfehler gibt, und laden Sie die Konfiguration neu:

      • sudo nginx -t
      • sudo nginx -s reload

      Nachdem Nginx so eingerichtet ist, dass das Zabbix-Frontend bereitgestellt wird, werden Sie nun einige Änderungen an Ihrer PHP-Einrichtung vornehmen, damit die Zabbix-Weboberfläche ordnungsgemäß funktioniert.

      Anmerkung: Wie im Voraussetzungsbereich erwähnt, sollten Sie auf Ihrem Server SSL/TLS aktivieren. Wenn Sie dies tun möchten, folgen Sie unserem Ubuntu 20.04-Tutorial für Let’s Encrypt, bevor Sie mit Schritt 4 fortfahren, um ein kostenloses SSL-Zertifikat für Nginx zu erhalten. Dieser Prozess wird Ihren Zabbix-Serverblock automatisch erkennen und ihn für HTTPS konfigurieren. Nach der Erlangung Ihrer SSL/TLS-Zertifikate können Sie zurückkehren und dieses Tutorial abschließen.

      Schritt 4 — Konfigurieren von PHP für Zabbix

      Die Zabbix-Weboberfläche ist in PHP geschrieben und erfordert einige spezielle PHP-Servereinstellungen. Der Zabbix-Installationsprozess hat eine PHP-FPM-Konfigurationsdatei erstellt, die diese Einstellungen enthält. Sie befindet sich im Verzeichnis /etc/zabbix und wird von PHP-FPM automatisch geladen. Sie müssen eine kleine Änderung in dieser Datei vornehmen; öffnen Sie sie also folgendermaßen:

      • sudo nano /etc/zabbix/php-fpm.conf

      Die Datei enthält PHP-Einstellungen, die die erforderlichen Anforderungen für die Zabbix-Weboberfläche erfüllen. Die Einstellung der Zeitzone ist jedoch standardmäßig auskommentiert. Um sicherzustellen, dass Zabbix die richtige Zeit verwendet, müssen Sie die richtige Zeitzone festlegen:

      /etc/zabbix/php-fpm.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[max_input_vars] = 10000
      ; php_value[date.timezone] = Europe/Riga
      

      Heben Sie die Kommentierung der im vorigen Codeblock markierten Zeitzonenzeile auf und ändern Sie sie in Ihre Zeitzone. Sie können diese Liste der unterstützten Zeitzonen verwenden, um die richtige für Sie zu finden. Speichern und schließen Sie die Datei.

      Starten Sie PHP-FPM nun neu, um die neuen Einstellungen anzuwenden:

      • sudo systemctl restart php7.4-fpm.service

      Sie können den Zabbix-Server nun starten:

      • sudo systemctl start zabbix-server

      Überprüfen Sie dann, ob der Zabbix-Server ordnungsgemäß ausgeführt wird:

      • sudo systemctl status zabbix-server

      Sie werden den folgenden Status sehen:

      Output

      ● zabbix-server.service - Zabbix Server Loaded: loaded (/lib/systemd/system/zabbix-server.service; disabled; vendor preset: enabled) Active: active (running) since Fri 2020-06-12 05:59:32 UTC; 36s ago Process: 27026 ExecStart=/usr/sbin/zabbix_server -c $CONFFILE (code=exited, status=0/SUCCESS) ...

      Aktivieren Sie den Server abschließend so, dass er beim Booten gestartet wird:

      • sudo systemctl enable zabbix-server

      Der Server ist eingerichtet und mit der Datenbank verbunden. Erstellen Sie als Nächstes das Web-Frontend.

      Schritt 5 — Konfigurieren von Einstellungen für die Zabbix-Weboberfläche

      Mit der Weboberfläche können Sie Berichte anzeigen und Hosts hinzufügen, die Sie überwachen möchten. Dies muss jedoch vor der Verwendung eingerichtet werden. Starten Sie dazu Ihren Browser und rufen Sie die Adresse http://zabbix_server_name oder https://zabbix_server_name auf, wenn Sie Let’s Encrypt verwenden. Im ersten Bildschirm sehen Sie eine Willkommensnachricht. Klicken Sie auf Nächster Schritt um fortzufahren.

      Im nächsten Bildschirm sehen Sie die Tabelle, die alle Voraussetzungen zur Ausführung von Zabbix auflistet.

      Voraussetzungen

      Alle Werte in dieser Tabelle müssen OK sein. Überprüfen Sie also, ob sie es sind. Stellen Sie sicher, dass Sie nach unten scrollen und alle Voraussetzungen ansehen. Sobald Sie geprüft haben, ob alles bereit ist, klicken Sie auf Nächster Schritt um fortzufahren.

      Der nächste Bildschirm bittet um Informationen zur Datenbankverbindung.

      DB-Verbindung

      Sie haben den Zabbix-Server über Ihre Datenbank informiert. Die Zabbix-Weboberfläche benötigt jedoch auch Zugriff auf die Datenbank, um Hosts verwalten und Daten lesen zu können. Geben Sie daher die MySQL-Anmeldedaten ein, die Sie in Schritt 2 konfiguriert haben. Klicken Sie auf Nächster Schritt um fortzufahren.

      Im nächsten Bildschirm können Sie die Optionen bei ihren Standardwerten belassen.

      Zabbix Server-Details

      Der Name ist optional; er wird in der Weboberfläche verwendet, um einen Server vom anderen zu unterscheiden, falls Sie über mehrere Überwachungsserver verfügen. Klicken Sie auf Nächster Schritt um fortzufahren.

      Im nächsten Bildschirm wird die Zusammenfassung vor der Installation angezeigt, sodass Sie prüfen können, ob alles korrekt ist.

      Zusammenfassung

      Klicken Sie auf Nächster Schritt, um mit dem letzten Bildschirm fortzufahren.

      Die Einrichtung der Weboberfläche ist nun abgeschlossen. Dieser Prozess erstellt die Konfigurationsdatei /usr/share/zabbix/conf/zabbix.conf.php, die Sie sichern und in Zukunft verwenden können. Klicken Sie auf Fertig stellen, um mit dem Anmeldebildschirm fortzufahren. Der Standardbenutzer ist Admin und das Passwort lautet zabbix.

      Richten Sie, bevor Sie sich anmelden, den Zabbix-Agenten auf Ihrem zweiten Ubuntu-Server ein.

      Schritt 6 — Installieren und Konfigurieren des Zabbix-Agenten

      Jetzt müssen Sie die Agentensoftware konfigurieren, die Überwachungsdaten an den Zabbix-Server senden wird.

      Melden Sie sich beim zweiten Ubuntu-Server an:

      • ssh sammy@second_ubuntu_server_ip_address

      Führen Sie wie auf dem Zabbix-Server die folgenden Befehle aus, um das Repository-Konfigurationspaket zu installieren:

      • wget https://repo.zabbix.com/zabbix/5.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.0-1+focal_all.deb
      • sudo dpkg -i zabbix-release_5.0-1+focal_all.deb

      Aktualisieren Sie als Nächstes den Paketindex:

      Installieren Sie dann den Zabbix-Agenten:

      • sudo apt install zabbix-agent

      Zwar unterstützt Zabbix zertifikatbasierte Verschlüsselung, doch ist die Einrichtung einer Zertifizierungsstelle nicht Teil dieses Tutorials. Sie können jedoch Pre-Shared Keys (PSK) verwenden, um die Verbindung zwischen dem Server und Agenten zu sichern.

      Erstellen Sie zunächst einen PSK:

      • sudo sh -c "openssl rand -hex 32 > /etc/zabbix/zabbix_agentd.psk"

      Zeigen Sie den Schlüssel mit cat an, damit Sie ihn kopieren können:

      • cat /etc/zabbix/zabbix_agentd.psk

      Der Schlüssel wird in etwa so aussehen:

      Output

      75ad6cb5e17d244ac8c00c96a1b074d0550b8e7b15d0ab3cde60cd79af280fca

      Speichern Sie ihn für später; Sie brauchen ihn noch, um den Host konfigurieren.

      Bearbeiten Sie nun die Zabbix-Agenteneinstellungen, um die sichere Verbindung zum Zabbix-Server einzurichten. Öffnen Sie die Konfigurationsdatei für den Agenten in Ihrem Texteditor:

      • sudo nano /etc/zabbix/zabbix_agentd.conf

      Jede Einstellung innerhalb dieser Datei wird über informative Kommentare in der Datei dokumentiert; Sie müssen jedoch nur einige von ihnen bearbeiten.

      Zuerst müssen Sie die IP-Adresse des Zabbix-Servers bearbeiten. Suchen Sie nach dem folgenden Abschnitt:

      /etc/zabbix/zabbix_agentd.conf

      ...
      ### Option: Server
      #       List of comma delimited IP addresses, optionally in CIDR notation, or DNS names of Zabbix servers and Zabbix proxies.
      #       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
      #       and '::/0' will allow any IPv4 or IPv6 address.
      #       '0.0.0.0/0' can be used to allow any IPv4 address.
      #       Example: Server=127.0.0.1,192.168.1.0/24,::1,2001:db8::/32,zabbix.example.com
      #
      # Mandatory: yes, if StartAgents is not explicitly set to 0
      # Default:
      # Server=
      
      Server=127.0.0.1
      ...
      

      Ändern Sie den Standardwert in die IP-Adresse Ihres Zabbix-Servers:

      /etc/zabbix/zabbix_agentd.conf

      ...
      Server=zabbix_server_ip_address
      ...
      

      Standardmäßig verbindet sich der Zabbix-Server mit dem Agenten. Bei einigen Überprüfungen (z. B. Überwachung der Protokolle) ist jedoch eine umgekehrte Verbindung erforderlich. Für eine korrekte Funktionsweise müssen Sie die Adresse des Zabbix-Servers und einen eindeutigen Hostnamen angeben.

      Finden Sie den Abschnitt, der die aktiven Prüfungen konfiguriert, und ändern Sie die Standardwerte:

      /etc/zabbix/zabbix_agentd.conf

      ...
      ##### Active checks related
      
      ### Option: ServerActive
      #       List of comma delimited IP:port (or DNS name:port) pairs of Zabbix servers and Zabbix proxies for active checks.
      #       If port is not specified, default port is used.
      #       IPv6 addresses must be enclosed in square brackets if port for that host is specified.
      #       If port is not specified, square brackets for IPv6 addresses are optional.
      #       If this parameter is not specified, active checks are disabled.
      #       Example: ServerActive=127.0.0.1:20051,zabbix.domain,[::1]:30051,::1,[12fc::1]
      #
      # Mandatory: no
      # Default:
      # ServerActive=
      
      ServerActive=zabbix_server_ip_address
      
      ### Option: Hostname
      #       Unique, case sensitive hostname.
      #       Required for active checks and must match hostname as configured on the server.
      #       Value is acquired from HostnameItem if undefined.
      #
      # Mandatory: no
      # Default:
      # Hostname=
      
      Hostname=Second Ubuntu Server
      ...
      

      Suchen Sie als Nächstes nach dem Bereich, der die sichere Verbindung mit dem Zabbix-Server konfiguriert, und aktivieren Sie PSK-Unterstützung. Finden Sie den Abschnitt TLSConnect, der so 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 PSK-Unterstützung zu konfigurieren:

      /etc/zabbix/zabbix_agentd.conf

      ...
      TLSConnect=psk
      ...
      

      Suchen Sie als Nächstes den Abschnitt TLSAccept, der so 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 so, dass sie Pre-Shared Keys unterstützen, indem Sie folgende Zeile hinzufügen:

      /etc/zabbix/zabbix_agentd.conf

      ...
      TLSAccept=psk
      ...
      

      Suchen Sie als Nächstes den Abschnitt TLSPSKIdentity, der so 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 Pre-Shared Key zu identifizieren, indem Sie diese Zeile hinzufügen:

      /etc/zabbix/zabbix_agentd.conf

      ...
      TLSPSKIdentity=PSK 001
      ...
      

      Sie werden ihn als PSK ID verwenden, wenn Sie Ihren Host über die Zabbix-Weboberfläche hinzufügen.

      Legen Sie dann die Option fest, die auf Ihren zuvor erstellten Pre-Shared Key verweist. Suchen Sie nach der Option TLSPSKFile:

      /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-Agent auf die von Ihnen erstellte PSK-Datei zu verweisen:

      /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 neu starten und ihn so einrichten, dass er beim Booten gestartet wird:

      • sudo systemctl restart zabbix-agent
      • sudo systemctl enable zabbix-agent

      Überprüfen Sie zur Sicherheit, ob der Zabbix-Agent ordnungsgemäß ausgeführt wird:

      • sudo systemctl status zabbix-agent

      Sie werden den folgenden Status sehen, was zeigt, dass der Agent ausgeführt wird:

      Output

      ● zabbix-agent.service - Zabbix Agent Loaded: loaded (/lib/systemd/system/zabbix-agent.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2020-06-12 08:19:54 UTC; 25s ago ...

      Der Agent wird an Port 10050 nach Verbindungen vom Server lauschen. Konfigurieren Sie UFW so, dass Verbindungen zu diesem Port zugelassen werden:

      Mehr über UFW erfahren Sie in Einrichten einer Firewall mit UFW unter Ubuntu 20.04.

      Ihr Agent ist nun bereit, Daten an den Zabbix-Server zu senden. Um ihn verwenden zu können, müssen Sie ihn jedoch noch über die Webkonsole des Servers verlinken. Im nächsten Schritt werden Sie die Konfiguration abschließen.

      Schritt 7 — Hinzufügen des neuen Host zum Zabbix-Server

      Die Installation des Agenten auf einem Server, den Sie überwachen möchten, ist nur die halbe Arbeit. Jeder Host, den Sie überwachen möchten, muss beim Zabbix-Server registriert werden. Das können Sie über die Weboberfläche tun.

      Melden Sie sich bei der Weboberfläche des Zabbix-Servers an, indem Sie zur Adresse http://zabbix_server_name oder https://zabbix_server_name navigieren:

      Der Zabbix-Anmeldebildschirm

      Nachdem Sie sich angemeldet haben, klicken Sie auf Konfiguration und dann in der linken Navigationsleiste auf Hosts. Klicken Sie dann in der rechten oberen Ecke des Bildschirms auf die Schaltfläche Host erstellen. Dadurch wird die Hostkonfigurationsseite geöffnet.

      Erstellen eines Hosts

      Passen Sie den Hostnamen und die IP-Adresse so an, dass sie den Hostnamen und die IP-Adresse Ihres zweiten Ubuntu-Servers widerspiegeln. Fügen Sie den Host dann einer Gruppe hinzu. Sie können eine bestehende Gruppe auswählen, z. B. Linux-Server, oder eine eigene Gruppe erstellen. Der Host kann Mitglied in mehreren Gruppen sein. Geben Sie dazu den Namen einer bestehenden oder neuen Gruppe im Feld Gruppen ein und wählen Sie den gewünschten Wert aus der vorgeschlagenen Liste aus.

      Klicken Sie vor dem Hinzufügen der Gruppe auf die Registerkarte Vorlagen.

      Hinzufügen einer Vorlage zum Host

      Geben Sie im Suchfeld Template OS Linux by Zabbix agent ein und wählen Sie dann die Vorlage aus der Liste aus, um sie dem Host hinzuzufügen.

      Navigieren Sie als Nächstes zur Registerkarte Verschlüsselung. Wählen Sie sowohl für Verbindungen zu Host als auch für Verbindungen von Host PSK aus. Setzen Sie dann die PSK-Identität auf PSK 001, was der Wert der zuvor konfigurierten TLSPSKIdentity-Einstellung des Zabbix-Agenten ist. Setzen Sie dann den PSK-Wert auf den Schlüssel, den Sie für den Zabbix-Agenten generiert haben. Es ist der Wert, den Sie in der Datei /etc/zabbix/zabbix_agentd.psk auf dem Agentengerät gespeichert haben.

      Einrichten der Verschlüsselung

      Klicken Sie abschließend unten im Formular auf die Schaltfläche Hinzufügen, um den Host zu erstellen.

      Sie werden Ihren neuen Host in der Liste sehen. Warten Sie eine Minute lang und laden Sie die Seite neu, bis Sie grüne Markierungen sehen, was bedeutet, dass alles ordnungsgemäß funktioniert und die Verbindung verschlüsselt ist.

      Zabbix zeigt Ihren neuen Host

      Wenn Sie zusätzliche Server haben, die Sie überwachen möchten, müssen Sie sich bei jedem Host anmelden, den Zabbix-Agenten installieren, einen PSK generieren, den Agenten konfigurieren und den Host zur Weboberfläche hinzufügen (genauso wie beim ersten Host).

      Der Zabbix-Server überwacht nun Ihren zweiten Ubuntu-Server. Erstellen Sie nun E-Mail-Benachrichtigungen, um über Probleme informiert zu werden.

      Schritt 8 — Konfigurieren von E-Mail-Benachrichtigungen

      Zabbix unterstützt automatisch verschiedene Arten von Benachrichtigungen: E-Mail, OTRS, Slack, Telegram, SMS etc. Eine vollständige Liste von Integrationen finden Sie auf der Zabbix-Website.

      Als Beispiel werden wir in diesem Tutorial Benachrichtigungen für den Medientyp E-Mail konfigurieren.

      Klicken Sie auf Administration und dann in der linken Navigationsleiste auf Medientypen. Sie werden eine Liste mit allen Medientypen sehen. Es gibt zwei vorkonfigurierte Optionen für E-Mails: für die Klartextbenachrichtigung und für die HTML-Benachrichtigungen. In diesem Tutorial werden Sie eine Klartextbenachrichtigung verwenden. Klicken Sie auf E-Mail.

      Passen Sie die SMTP-Optionen gemäß den Einstellungen Ihres E-Mail-Dienstes an. In diesem Tutorial werden SMTP-Funktionen von Gmail verwendet, um E-Mail-Benachrichtigungen einzurichten; wenn Sie weitere Informationen dazu wünschen, lesen Sie Verwenden des SMTP-Servers von Google.

      Anmerkung: Wenn Sie eine 2-Schritt-Verifizierung mit Gmail verwenden, müssen Sie ein App-Passwort für Zabbix generieren. Sie müssen bei der Einrichtung ein App-Passwort nur einmal eingeben. Anweisungen zum Generieren dieses Passworts finden Sie im Google Help Center.

      Wenn Sie Gmail verwenden, geben Sie smtp.gmail.com in das Feld SMTP-Server ein, 465 in das Feld SMTP-Serverport, gmail.com in SMTP helo und Ihre E-Mail-Adresse in SMTP-E-Mail. Wählen Sie dann SSL/TLS für Verbindungssicherheit und Benutzername und Passwort für Authentifizierung. Geben Sie Ihre Gmail-Adresse als Benutzernamen und das von Ihnen über Ihr Google-Konto generierte App-Passwort als Passwort ein.

      Einrichten des Medientyps E-Mail

      Auf der Registerkarte Nachrichtenvorlagen können Sie die Liste der vordefinierten Nachrichten für verschiedene Arten von Benachrichtigungen sehen. Klicken Sie abschließend unten im Formular auf die Schaltfläche Aktualisieren, um die E-Mail-Parameter zu aktualisieren.

      Jetzt können Sie das Senden von Benachrichtigungen testen. Klicken Sie dazu in der entsprechenden Zeile auf den unterstrichenen Link Testen.

      Sie werden ein Popup-Fenster sehen. Geben Sie Ihre E-Mail-Adresse in das Feld Senden an ein und klicken Sie auf Testen. Sie werden eine Nachricht zum erfolgreichen Versand sehen und eine Testnachricht erhalten.

      Testen von E-Mail

      Schließen Sie das Popup-Fenster durch Klicken auf die Schaltfläche Abbrechen.

      Erstellen Sie nun einen neuen Benutzer. Klicken Sie auf Administration und dann in der linken Navigationsleiste auf Benutzer. Sie werden die Liste der Benutzer sehen. Klicken Sie dann in der rechten oberen Ecke des Bildschirms auf die Schaltfläche Benutzer erstellen. Damit wird die Seite für die Benutzerkonfiguration geöffnet:

      Erstellen eines Benutzers

      Geben Sie den neuen Benutzernamen im Feld Alias ein und legen Sie ein neues Passwort fest. Fügen Sie als Nächstes den Benutzer zur Administratorgruppe hinzu. Geben Sie Zabbix administrators in das Feld Gruppen ein und wählen Sie die Gruppe aus der vorgeschlagenen Liste aus.

      Sobald Sie die Gruppe hinzugefügt haben, klicken Sie auf die Registerkarte Medien und dann auf den unterstrichenen Link Hinzufügen (nicht auf die Schaltfläche Hinzufügen darunter). Sie werden ein Popup-Fenster sehen.

      Hinzufügen einer E-Mail-Adresse

      Wählen Sie die Option E-Mail aus dem Dropdownmenü Typ aus. Geben Sie Ihre E-Mail-Adresse in das Feld Senden an ein. Sie können die restlichen Optionen bei ihren Standardwerten belassen. Klicken Sie unten zum Übermitteln auf die Schaltfläche Hinzufügen.

      Navigieren Sie nun zur Registerkarte Berechtigungen. Wählen Sie Zabbix Super Admin aus dem Dropdownmenü Benutzertyp aus.

      Klicken Sie abschließend unten im Formular auf die Schaltfläche Hinzufügen, um den Benutzer zu erstellen.

      Anmerkung: Eine Verwendung des Standardpassworts ist nicht sicher. Um das Passwort des integrierten Benutzers Admin zu ändern, klicken Sie in der Benutzerliste auf das entsprechende Alias. Klicken Sie dann auf Passwort ändern, geben Sie ein neues Passwort ein und bestätigen Sie die Änderung durch Klicken auf Aktualisieren.

      Jetzt müssen Sie Benachrichtigungen aktivieren. Klicken Sie auf die Registerkarte Konfiguration und dann in der linken Navigationsleiste auf Aktionen. Sie werden eine vorkonfigurierte Aktion sehen, die zum Senden von Benachrichtigungen an alle Zabbix-Administratoren dient. Sie können die Einstellungen überprüfen und ändern, indem Sie auf den Namen klicken. Verwenden Sie für die Zwecke dieses Tutorials die Standardparameter. Um die Aktion zu aktivieren, klicken Sie in der Spalte Status auf den roten Link für Deaktiviert.

      Jetzt sind Sie bereit dazu, Warnungen zu erhalten. Im nächsten Schritt werden Sie eine Warnung erstellen, um Ihre Benachrichtigungskonfiguration zu testen.

      Schritt 9 — Erstellen einer Testwarnung

      In diesem Schritt erstellen Sie eine Testwarnung, um sicherzustellen, dass alles richtig verbunden ist. Standardmäßig behält Zabbix den Überblick über die Menge an freien Speicherplatz auf Ihrem Server. Der Server erkennt automatisch alle bereitgestellten Datenträger und fügt die entsprechenden Prüfungen hinzu. Diese Erkennungsfunktion wird jede Stunde ausgeführt; Sie müssen also eine Weile warten, bis die Benachrichtigung ausgelöst wird.

      Erstellen Sie eine temporäre Datei, die groß genug ist, um die Zabbix-Warnung bei Auslastung des Dateisystems auszulösen. Melden Sie sich dazu bei Ihrem zweiten Ubuntu-Server an, wenn Sie nicht bereits verbunden sind:

      • ssh sammy@second_ubuntu_server_ip_address

      Überprüfen Sie als Nächstes den freien Speicherplatz auf dem Server. Sie können den Befehl df verwenden, um das herauszufinden:

      Der Befehl df wird die Auslastung des Datenträgers in Ihrem Dateisystem melden. Der Befehl -h wird die Ausgabe für Menschen lesbar machen. Sie sehen eine Ausgabe wie die folgende:

      Output

      Filesystem Size Used Avail Use% Mounted on /dev/vda1 78G 1.4G 77G 2% /

      In diesem Fall beträgt der freie Speicherplatz 77 GB. Ihr freier Speicherplatz kann sich davon unterscheiden.

      Verwenden Sie den Befehl fallocate, mit dem Sie den Speicherplatz für eine Datei vorab zuweisen oder freigeben können, um eine Datei zu erstellen, die mehr als 80 % des verfügbaren Speicherplatzes benötigt. Das wird ausreichen, um die Warnung auszulösen:

      • fallocate -l 70G /tmp/temp.img

      Nach etwa einer Stunde wird Zabbix eine Warnung zur Menge des freien Speicherplatzes auslösen und die von Ihnen konfigurierte Aktion ausführen (also die Benachrichtigungsmeldung senden). Sie können Ihren Posteingang auf die Nachricht vom Zabbix-Server prüfen. Sie werden eine Nachricht sehen, die wie folgt aussieht:

      Problem started at 09:49:08 on 2020.06.12
      Problem name: /: Disk space is low (used > 80%)
      Host: Second Ubuntu Server
      Severity: Warning
      Operational data: Space used: 71.34 GB of 77.36 GB (92.23 %)
      Original problem ID: 106
      

      Sie können auch zur Registerkarte Überwachung und dann zum Dashboard navigieren, um die Benachrichtigung und ihre Details anzuzeigen.

      Haupt-Dashboard

      Nachdem Sie nun wissen, dass die Warnungen funktionieren, löschen Sie die von Ihnen erstellte temporäre Datei, um den Speicherplatz wieder freizugeben:

      Nach einer Minute wird Zabbix die Wiederherstellungsnachricht senden und die Warnmeldung aus dem Haupt-Dashboard verschwindet.

      Zusammenfassung

      In diesem Tutorial haben Sie gelernt, wie Sie eine einfache und sichere Überwachungslösung einrichten können, die Ihnen bei der Überwachung des Status Ihrer Server hilft. Die Lösung kann Sie nun vor Problemen warnen und bietet Ihnen die Möglichkeit, die in Ihrer IT-Infrastruktur vorkommenden Prozesse zu analysieren.

      Um mehr über die Einrichtung einer Überwachungsinfrastruktur zu erfahren, lesen Sie unsere Seite zum Thema Überwachung.



      Source link

      Installieren von WordPress unter Ubuntu 20.04 mit einem LAMP-Stack


      Einführung

      WordPress ist eine sehr beliebte Open-Source-Technologie zum Erstellen von Websites und Blogs im Internet. WordPress-Sites werden von 63 % aller Websites genutzt, die ein Content Management System (CMS) verwenden, und stellen 36 % aller Websites dar, die derzeit online sind.

      Es gibt viele verschiedene Ansätze, um Zugriff auf WordPress zu erhalten. Außerdem sind manche Einrichtungsverfahren komplexer als andere. Dieses Tutorial richtet sich an Personen, die eine WordPress-Instanz über die Befehlszeile auf einem nicht verwalteten Cloud-Server installieren und verwalten möchten. Zwar beinhaltet dieser Ansatz mehr Schritte als eine fertige WordPress-Installation, doch bietet er Administratoren mehr Kontrolle über ihre WordPress-Umgebung.

      Wenn Sie auf eine fertige WordPress-Installation zugreifen möchten, bietet DigitalOcean Marketplace eine One-Click-App, die Sie beim Starten Ihres Servers durch die Installation und ersten Schritten mit WordPress begleitet.

      Je nach Bedarf und Zielen finden Sie möglicherweise andere Optionen, die besser geeignet sind. Als Open-Source-Software kann WordPress kostenlos heruntergeladen und installiert werden. Um im Internet verfügbar zu sein, müssen Sie aber wahrscheinlich Cloud-Infrastruktur und einen Domänennamen kaufen. Folgen Sie diesem Leitfaden weiter, wenn Sie erfahren möchten, wie die serverseitige Installation und Einrichtung einer WordPress-Site funktioniert.

      Dieses Tutorial wird einen LAMP-Stack (Linux, Apache, MySQL und PHP) nutzen. Er ist eine Option für eine Serverarchitektur, die WordPress unterstützt, indem das Linux-Betriebssystem, der Apache-Webserver, die MySQL-Datenbank und die PHP-Programmiersprache bereitgestellt werden. Wir installieren und richten WordPress via LAMP auf einem Linux 20.04-Server ein.

      Voraussetzungen

      Um dieses Tutorial abzuschließen, benötigen Sie Zugriff auf einen Ubuntu 20.04-Server und müssen vor Beginn dieses Leitfadens folgende Schritte abgeschlossen haben:

      • Einrichten Ihres Servers anhand unseres Leitfadens zur Ersteinrichtung des Servers unter Ubuntu 20.04 und Sicherstellen, dass es einen non-root user mit sudo-Berechtigungen gibt.
      • Installieren eines LAMP-Stacks durch Befolgen unseres LAMP-Leitfadens zur Installation und Konfiguration dieser Software.
      • Sichern Ihrer Site: WordPress erfasst Eingaben von Benutzern und speichert Benutzerdaten. Daher ist es wichtig, dass es eine Sicherheitsschicht gibt. TLS/SSL ist eine Technologie, die es Ihnen ermöglicht, den Datenverkehr von Ihrer Website zu verschlüsseln, damit Ihre Verbindung und die Verbindung der Benutzer sicher sind. Hier sind zwei Optionen, mit denen sich diese Anforderung erfüllen lässt:
        • Wenn Sie einen Domänennamen haben…, können Sie Ihre Site mit Let’s Encrypt sichern, das kostenlose, vertrauenswürdige Zertifikate bereitstellt. Folgen Sie dem Leitfaden Let’s Encrypt für Apache, um diese Einrichtung vorzunehmen.
        • Wenn Sie keine Domäne haben… und Sie diese Konfiguration nur zu Testzwecken oder privat verwenden, können Sie stattdessen ein selbstsigniertes Zertifikat verwenden. Damit wird die gleiche Art der Verschlüsselung bereitgestellt, aber ohne Domänenvalidierung. Folgen Sie dem Leitfaden für selbstsigniertes SSL für Apache, um dieses Setup vorzunehmen.

      Wenn Sie dieses Setup abgeschlossen haben, melden Sie sich bei Ihrem Server als sudo-Benutzer an und fahren Sie dann wie unten gezeigt fort.

      Schritt 1 — Erstellen einer MySQL-Datenbank und eines Benutzers für WordPress

      Der erste Schritt dient der Vorbereitung. WordPress verwendet MySQL, um Site- und Benutzerinformationen zu verwalten und zu speichern. Wir haben bereits MySQL installiert, müssen aber eine Datenbank und einen Benutzer für WordPress erstellen.

      Melden Sie sich zunächst im (administrativen) MySQL-Root-Konto an, indem Sie diesen Befehl ausgeben (beachten Sie, dass dies nicht der root user Ihres Servers ist):

      Sie werden aufgefordert, das Passwort einzugeben, das Sie für das MySQL Root-Konto festgelegt haben, als Sie die Software installiert haben.

      Anmerkung: Wenn Sie nicht per root auf Ihre MySQL-Datenbank zugreifen können, können Sie als sudo-Benutzer das Passwort Ihres root user aktualisieren, indem Sie sich wie folgt in der Datenbank anmelden:

      Sobald Sie die MySQL-Eingabeaufforderung sehen, können Sie das Passwort des root user aktualisieren. Ersetzen Sie hier new_password durch ein starkes Passwort Ihrer Wahl.

      • ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'new_password';

      Sie können nun EXIT; eingeben und sich mit dem folgenden Befehl wieder per Passwort in der Datenbank anmelden.

      Innerhalb der Datenbank können wir eine exklusive Datenbank erstellen, die WordPress kontrollieren kann. Sie können diese Datenbank nennen, wie Sie möchten. In diesem Leitfaden werden wir jedoch den Namen wordpress verwenden. Erstellen Sie die Datenbank für WordPress, indem Sie Folgendes eingeben:

      • CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

      Anmerkung: Jede MySQL -Anweisung muss mit einem Semikolon (;) enden. Vergewissern Sie sich, dass dies der Fall ist, falls ein Problem auftritt.

      Als Nächstes erstellen wir ein separates MySQL-Benutzerkonto, das wir ausschließlich für unsere neue Datenbank verwenden werden. Die Erstellung spezifischer Datenbanken und Konten kann aus einer Management- und Sicherheitsperspektive hilfreich sein. Wir werden in diesem Leitfaden den Namen wordpressuser verwenden. Sie können jedoch einen beliebigen Namen wählen, der für Sie relevant ist.

      Wir erstellen dieses Konto, legen ein Passwort fest und gewähren Zugriff auf die von uns erstellte Datenbank. Dazu geben wir den folgenden Befehl ein. Denken Sie daran, bei password ein starkes Passwort für Ihren Datenbankbenutzer zu wählen:

      • CREATE USER 'wordpressuser'@'%' IDENTIFIED WITH mysql_native_password BY 'password';

      Als Nächstes teilen Sie der Datenbank mit, dass unser wordpressuser kompletten Zugriff auf die von uns erstellte Datenbank haben soll:

      • GRANT ALL ON wordpress.* TO 'wordpressuser'@'%';

      Sie haben jetzt ein Datenbank- und ein Benutzerkonto, das jeweils speziell für WordPress eingerichtet wurde. Wir müssen die Rechte leeren, damit die aktuelle Instanz von MySQL die neuesten Änderungen erkennt:

      Beenden Sie MySQL, indem Sie Folgendes eingeben:

      Im nächsten Schritt schaffen wir Grundlagen für WordPress-Plugins, indem wir PHP-Erweiterungen für unseren Server herunterladen.

      Schritt 2 – Installieren zusätzlicher PHP-Erweiterungen

      Beim Einrichten des LAMP-Stacks benötigen wir nur eine sehr minimale Menge von Erweiterungen, damit PHP mit MySQL kommuniziert. WordPress und viele seiner Plugins nutzen zusätzliche PHP-Erweiterungen.

      Laden Sie einige der beliebtesten PHP-Erweiterungen zur Nutzung mit WordPress herunter und installieren diese, indem Sie Folgendes eingeben:

      • sudo apt update
      • sudo apt install php-curl php-gd php-mbstring php-xml php-xmlrpc php-soap php-intl php-zip

      Dadurch wird die Grundlage für die Installation zusätzlicher Plugins in unserer WordPress-Site geschaffen.

      Anmerkung: Jedes WordPress-Plugin hat seinen eigenen Satz an Anforderungen. Einige können die Installation zusätzlicher PHP-Pakete erfordern. Prüfen Sie Ihre Plugin-Dokumentation, um deren PHP-Anforderungen herauszufinden. Wenn sie verfügbar sind, können sie wie oben gezeigt mit apt installiert werden.

      Wir müssen Apache neu starten, um die neuen Erweiterungen zu laden. Im nächsten Abschnitt werden wir weitere Konfigurationen in Apache vornehmen. Sie können also bis dahin warten oder die PHP-Erweiterungen jetzt abschließen.

      • sudo systemctl restart apache2

      Schritt 3 – Anpassen der Apache-Konfiguration, um .htaccess-Overrides und -Rewrites zuzulassen

      Als Nächstes werden wir einige kleinere Anpassungen an unsere Apache-Konfiguration vornehmen. Basierend auf den erforderlichen Tutorials sollten Sie eine Konfigurationsdatei für Ihre Site im Verzeichnis /etc/apache2/sites-available/ haben.

      Als Beispiel verwenden wir in diesem Leitfaden /etc/apache2/sites-available/wordpress.conf, aber Sie sollten den Pfad zu Ihrer Konfigurationsdatei ggf. ersetzen. Außerdem verwenden wir /var/www/wordpress als Root-Verzeichnis unserer WordPress-Installation. Sie sollten das in Ihrer eigenen Konfiguration angegebene Web-Root verwenden. Wenn Sie unserem LAMP-Tutorial gefolgt sind, kann dies in beiden Fällen Ihr Domänenname anstelle von wordpress sein.

      Anmerkung: Es ist möglich, dass Sie die Standardkonfiguration 000-default.conf verwenden (mit /var/www/html als Ihre Web-Root). Das ist in Ordnung, wenn Sie auf diesem Server nur eine Website hosten wollen. Ansonsten ist es am besten, die notwendige Konfiguration in logische Chunks von einer Datei pro Site aufzuteilen.

      Nach Festlegung unserer Pfade können wir nun mit .htaccess arbeiten, sodass Apache Konfigurationsänderungen anhand einzelner Verzeichnisse handhaben kann.

      Aktivieren von .htaccess Overrides

      Derzeit ist die Verwendung von .htaccess-Dateien deaktiviert. WordPress und viele WordPress-Plugins setzen diese Dateien weitläufig für kleine In-Directory-Änderungen des Webserver-Verhaltens ein.

      Öffnen Sie die Apache-Konfigurationsdatei für Ihre Website mit einem Texteditor wie nano.

      • sudo nano /etc/apache2/sites-available/wordpress.conf

      Um .htaccess-Dateien zu erlauben, müssen wir die Anweisung AllowOverride in einem Verzeichnisblock festlegen, der auf unsere Dokument-Root verweist. Fügen Sie Ihrer Konfigurationsdatei im VirtualHost-Block den folgenden Textblock hinzu, wobei Sie sichergehen müssen, dass Sie das korrekte Web-Root-Verzeichnis verwenden:

      /etc/apache2/sites-available/wordpress.conf

      <Directory /var/www/wordpress/>
          AllowOverride All
      </Directory>
      

      Wenn Sie dies abgeschlossen haben, speichern und schließen Sie die Datei. In nano können Sie dazu zusammen Strg und X, dann Y und anschließend die Eingabetaste drücken.

      Aktivierung des Rewrite-Moduls

      Als Nächstes können wir mod_rewrite aktivieren, damit wir die WordPress Permalink-Funktion verwenden können:

      Dadurch können Sie in Ihren Posts mehr für Menschen lesbare Permalinks verwenden, wie die folgenden zwei Beispiele zeigen:

      http://example.com/2012/post-name/
      http://example.com/2012/12/30/post-name
      

      Der Befehl a2enmod ruft ein Skript auf, das das angegebene Modul innerhalb der Apache-Konfiguration aktiviert.

      Aktivierung der Änderungen

      Bevor wir die von uns vorgenommenen Änderungen implementieren, überprüfen wir, ob wir keine Syntaxfehler gemacht haben. Dazu führen wir folgenden Test aus.

      • sudo apache2ctl configtest

      Sie erhalten möglicherweise eine Ausgabe wie diese:

      Output

      AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message Syntax OK

      Wenn Sie die oberste Zeile ausblenden wollen, fügen Sie Ihrer Haupt- (global) Apache-Konfigurationsdatei unter /etc/apache2/apache2.conf einfach einen ServerName hinzu. Der ServerName kann die Domäne oder IP-Adresse Ihres Servers sein. Dies ist jedoch nur eine Nachricht und beeinflusst die Funktionalität Ihrer Website nicht. Solange die Ausgabe Syntax OK enthält, können Sie weitermachen.

      Starten Sie Apache neu, um die Änderungen zu implementieren. Nehmen Sie den Neustart auch dann vor, wenn Sie in diesem Tutorial bereits einen Neustart ausgeführt haben.

      • sudo systemctl restart apache2

      Als Nächstes laden wir WordPress selbst herunter und richten es ein.

      Schritt 4 — Herunterladen von WordPress

      Jetzt ist unsere Server-Software konfiguriert, und wir können WordPress herunterladen und einrichten. Aus Sicherheitsgründen ist es immer ratsam, die neueste Version von WordPress von der Site zu erhalten.

      Wechseln Sie in ein beschreibbares Verzeichnis (wir empfehlen ein temporäres Verzeichnis wie /tmp) und laden Sie die komprimierte Version herunter.

      • cd /tmp
      • curl -O https://wordpress.org/latest.tar.gz

      Extrahieren Sie die komprimierte Datei, um die WordPress-Verzeichnisstruktur zu erstellen:

      Wir werden diese Dateien gleich in unsere Dokument-Root verschieben. Zuvor können wir eine .htaccess-Stellvertreterdatei hinzufügen, damit diese für WordPress später verfügbar ist.

      Erstellen Sie die Datei, indem Sie Folgendes eingeben:

      • touch /tmp/wordpress/.htaccess

      Außerdem kopieren wir die Muster-Konfigurationsdatei in den Dateinamen, den WordPress liest:

      • cp /tmp/wordpress/wp-config-sample.php /tmp/wordpress/wp-config.php

      Wir können auch das upgrade-Verzeichnis erstellen, damit WordPress keine Berechtigungsprobleme bekommt, wenn es nach einem Software-Update versucht, dies selbst zu tun:

      • mkdir /tmp/wordpress/wp-content/upgrade

      Jetzt können wir den gesamten Inhalt des Verzeichnisses in unsere Dokument-Root kopieren. An das Ende unseres Quellverzeichnisses setzen wir einen Punkt, damit alles im Verzeichnis kopiert werden kann, einschließlich ausgeblendeter Dateien (wie die von uns erstellte .htaccess-Datei):

      • sudo cp -a /tmp/wordpress/. /var/www/wordpress

      Sorgen Sie dafür, dass Sie das Verzeichnis /var/www/wordpress durch das Verzeichnis ersetzen, das Sie auf Ihrem Server eingerichtet haben.

      Schritt 5 — Konfigurieren des WordPress-Verzeichnisses

      Bevor wir das webbasierte WordPress Setup vornehmen, müssen wir einige Elemente in unserem WordPress-Verzeichnis anpassen.

      Anpassung des Eigentums und der Berechtigungen

      Ein wichtiger Schritt, den wir erledigen müssen, ist die Einrichtung vernünftiger Dateiberechtigungen und Dateibesitzer.

      Wir beginnen damit, das Eigentum an allen Dateien auf den Benutzer und die Gruppe www-data zu übertragen. Das ist der Benutzer, unter dem der Apache-Webserver läuft; Apache muss WordPress-Dateien lesen und schreiben können, damit die Website bereitgestellt werden kann und sich automatisch Updates ausführen lassen.

      Aktualisieren Sie das Eigentum mit dem Befehl chown, um den Dateibesitz zu ändern. Achten Sie darauf, dass Sie auf das richtige Verzeichnis Ihres Servers verweisen.

      • sudo chown -R www-data:www-data /var/www/wordpress

      Führen Sie als Nächstes zwei find-Befehle aus, um die richtigen Berechtigungen für die WordPress-Verzeichnisse und -Dateien festzulegen:

      • sudo find /var/www/wordpress/ -type d -exec chmod 750 {} ;
      • sudo find /var/www/wordpress/ -type f -exec chmod 640 {} ;

      Diese Berechtigungen sollten es Ihnen erlauben, effektiv mit WordPress zu arbeiten. Beachten Sie jedoch, dass einige Plugins und Verfahren zusätzliche kleine Änderungen benötigen.

      Einrichten der WordPress-Konfigurationsdatei

      Jetzt müssen wir Änderungen an der WordPress-Hauptkonfigurationsdatei vornehmen.

      Wenn wir die Datei öffnen, müssen wir zunächst einige geheime Schlüssel ändern, um unsere Installation besser zu schützen. WordPress stellt einen sicheren Generator für diese Werte bereit, damit Sie sie sich nicht ausdenken müssen. Diese werden nur intern verwendet, d. h. komplexe, sichere Werte haben keine Auswirkungen auf die Benutzer.

      Um sichere Werte vom WordPress Secret Key Generator zu erhalten, geben Sie Folgendes ein:

      • curl -s https://api.wordpress.org/secret-key/1.1/salt/

      Sie erhalten eindeutige Werte zurück, die einer Ausgabe mit dem folgenden Block ähneln.

      Warnung! Es ist wichtig, dass Sie jedes Mal eindeutige Werte anfordern. Kopieren Sie NICHT die folgenden Werte!

      Output

      define('AUTH_KEY', '1jl/vqfs<XhdXoAPz9 DO NOT COPY THESE VALUES c_j{iwqD^<+c9.k<J@4H'); define('SECURE_AUTH_KEY', 'E2N-h2]Dcvp+aS/p7X DO NOT COPY THESE VALUES {Ka(f;rv?Pxf})CgLi-3'); define('LOGGED_IN_KEY', 'W(50,{W^,OPB%PB<JF DO NOT COPY THESE VALUES 2;y&,2m%3]R6DUth[;88'); define('NONCE_KEY', 'll,4UC)7ua+8<!4VM+ DO NOT COPY THESE VALUES #`DXF+[$atzM7 o^-C7g'); define('AUTH_SALT', 'koMrurzOA+|L_lG}kf DO NOT COPY THESE VALUES 07VC*Lj*lD&?3w!BT#-'); define('SECURE_AUTH_SALT', 'p32*p,]z%LZ+pAu:VY DO NOT COPY THESE VALUES C-?y+K0DK_+F|0h{!_xY'); define('LOGGED_IN_SALT', 'i^/G2W7!-1H2OQ+t$3 DO NOT COPY THESE VALUES t6**bRVFSD[Hi])-qS`|'); define('NONCE_SALT', 'Q6]U:K?j4L%Z]}h^q7 DO NOT COPY THESE VALUES 1% ^qUswWgn+6&xqHN&%');

      Das sind Konfigurationszeilen, die wir direkt in unsere Konfigurationsdatei einfügen können, um sichere Schlüssel einzustellen. Kopieren Sie die Ausgabe, die Sie erhalten haben.

      Öffnen Sie jetzt die WordPress-Konfigurationsdatei:

      • sudo nano /var/www/wordpress/wp-config.php

      Suchen Sie nach dem Abschnitt, der die Beispielwerte für diese Einstellungen enthält.

      /var/www/wordpress/wp-config.php

      . . .
      
      define('AUTH_KEY',         'put your unique phrase here');
      define('SECURE_AUTH_KEY',  'put your unique phrase here');
      define('LOGGED_IN_KEY',    'put your unique phrase here');
      define('NONCE_KEY',        'put your unique phrase here');
      define('AUTH_SALT',        'put your unique phrase here');
      define('SECURE_AUTH_SALT', 'put your unique phrase here');
      define('LOGGED_IN_SALT',   'put your unique phrase here');
      define('NONCE_SALT',       'put your unique phrase here');
      
      . . .
      

      Löschen Sie diese Zeilen und fügen Sie die Werte ein, die Sie aus der Befehlszeile kopiert haben:

      /var/www/wordpress/wp-config.php

      . . .
      
      define('AUTH_KEY',         'VALUES COPIED FROM THE COMMAND LINE');
      define('SECURE_AUTH_KEY',  'VALUES COPIED FROM THE COMMAND LINE');
      define('LOGGED_IN_KEY',    'VALUES COPIED FROM THE COMMAND LINE');
      define('NONCE_KEY',        'VALUES COPIED FROM THE COMMAND LINE');
      define('AUTH_SALT',        'VALUES COPIED FROM THE COMMAND LINE');
      define('SECURE_AUTH_SALT', 'VALUES COPIED FROM THE COMMAND LINE');
      define('LOGGED_IN_SALT',   'VALUES COPIED FROM THE COMMAND LINE');
      define('NONCE_SALT',       'VALUES COPIED FROM THE COMMAND LINE');
      
      . . .
      

      Als Nächstes werden wir einige der Datenbank-Verbindungseinstellungen am Anfang der Datei ändern. Sie müssen den Datenbanknamen, den Datenbankbenutzer und das zugehörige Passwort anpassen, das Sie in MySQL konfiguriert haben.

      Wir müssen außerdem die Methode festlegen, die WordPress verwenden sol, um in das Dateisystem zu schreiben. Da wir dem Webserver das Recht auf beliebiges Schreiben erteilt haben, können wir die Dateisystemmethode auf „direct“ festlegen. Wenn wir das nicht auf unsere aktuellen Einstellungen anpassen, fragt WordPress bei bestimmten Handlungen nach FTP-Anmeldeangaben.

      Diese Einstellung kann unterhalb der Datenbank-Verbindungseinstellungen oder anderswo in der Datei eingefügt werden:

      /var/www/wordpress/wp-config.php

      . . .
      
      // ** MySQL settings - You can get this info from your web host ** //
      /** The name of the database for WordPress */
      define( 'DB_NAME', 'wordpress' );
      
      /** MySQL database username */
      define( 'DB_USER', 'wordpressuser' );
      
      /** MySQL database password */
      define( 'DB_PASSWORD', 'password' );
      
      /** MySQL hostname */
      define( 'DB_HOST', 'localhost' );
      
      /** Database Charset to use in creating database tables. */
      define( 'DB_CHARSET', 'utf8' );
      
      /** The Database Collate type. Don't change this if in doubt. */
      define( 'DB_COLLATE', '' );
      
      
      . . .
      
      define('FS_METHOD', 'direct');
      

      Wenn Sie dies abgeschlossen haben, speichern und schließen Sie die Datei.

      Schritt 6 – Abschließen der Installation über die Weboberfläche

      Jetzt ist die Serverkonfiguration abgeschlossen, und wir können die Installation über die Web-Oberfläche abschließen.

      Navigieren Sie im Web-Browser zum Domänennamen oder zur öffentlichen IP-Adresse Ihres Servers:

      https://server_domain_or_IP
      

      Wählen Sie die Sprache aus, die Sie verwenden möchten:

      WordPress-Sprachauswahl

      Als Nächstes kommen Sie zur Setup-Hauptseite.

      Wählen Sie einen Namen für Ihre WordPress-Site aus und legen Sie einen Benutzernamen fest. Es wird empfohlen, eindeutige Namen zu wählen und aus Sicherheitgründen allgemeine Benutzernamen wie „admin“ zu vermeiden. Ein starkes Passwort wird automatisch erstellt. Speichern Sie dieses oder wählen Sie anderes starkes Passwort aus.

      Geben Sie Ihre E-Mail-Adresse ein und wählen Sie, ob Sie Suchmaschinen aus der Indexierung Ihrer Site ausschließen wollen:

      WordPress-Setup-Installation

      Wenn Sie weiter klicken, kommen Sie zu einer Seite, auf der Sie sich anmelden müssen:

      WordPress-Anmeldung

      Nach der Anmeldung gelangen Sie zum WordPress-Administrations-Dashboard:

      WordPress-Anmeldung

      Jetzt können Sie mit der Gestaltung Ihrer WordPress-Website beginnen! Wenn Sie WordPress das erste Mal verwenden, schauen Sie sich die Oberfläche an, um Ihre neue CMS kennenzulernen.

      Zusammenfassung

      Herzlichen Glückwunsch! WordPress ist nun installiert und bereit für den Einsatz!

      Jetzt können Sie Folgendes tun:

      • Ihre Permalinks-Einstellung für WordPress-Posts auswählen, die Sie unter Einstellungen > Permalinks finden.
      • In Appearance > Themes (Erscheinungsbild > Themen) ein neues Thema wählen.
      • Unter Plugins > Add New (Plugins > Neu hinzufügen) neue Plugins installieren, um die Funktionalität Ihrer Website zu erhöhen.
      • Wenn Sie mit anderen zusammenarbeiten möchten, können Sie jetzt auch weitere Benutzer hinzufügen unter Users > Add New (Benutzer > Neu hinzufügen).

      Sie können weitere Ressourcen für alternative Methoden zur Installation von WordPress finden, erfahren, wie sich WordPress in verschiedenen Server-Distributionen installieren lässt, Ihre WordPress-Installationen automatisieren und WordPress-Websites skalieren, indem Sie sich unser WordPress Community-Tag ansehen.



      Source link

      Installieren von Jenkins unter Ubuntu 20.04


      Einführung

      Wenn es um die Bewältigung sich wiederholender technischer Aufgaben geht, ist es nicht immer einfach, gute Automatisierungslösungen zu finden. Mit Jenkins, einem Open-Source-basierten Automatisierungsserver, können Sie Aufgaben von der Erstellung bis zur Bereitstellung von Software effizient verwalten. Jenkins ist Java-basiert und wird aus Ubuntu-Paketen bzw. durch Herunterladen und Ausführen der entsprechenden WAR-Datei (Web Application Archive) installiert: Dabei handelt es sich um eine Sammlung von Dateien, die eine vollständige Webanwendung ergeben, die sich auf einem Server ausführen lässt.

      In diesem Tutorial installieren wir Jenkins unter Ubuntu 20.04, starten den Entwicklungsserver und erstellen einen Administratorbenutzer, sodass Sie damit beginnen können, die Möglichkeiten von Jenkins zu erkunden. Zwar verfügen Sie nach Abschluss dieses Tutorials über einen einsatzbereiten Entwicklungsserver, doch sollten Sie ihn für die Produktion noch sichern. Folgen Sie dazu dem Tutorial Konfigurieren von Jenkins mit SSL unter Verwendung eines Nginx-Reverseproxy unter Ubuntu 18.04.

      Voraussetzungen

      Um dieser Anleitung zu folgen, benötigen Sie:

      Schritt 1 — Installieren von Jenkins

      Die Version von Jenkins, die in den standardmäßigen Ubuntu-Paketen enthalten ist, ist oft älter als die neueste verfügbare Version des Projekts selbst. Um sicherzustellen, dass Sie über die neuesten Korrekturen und Funktionen verfügen, verwenden Sie die vom Projekt gepflegten Pakete zur Installation von Jenkins.

      Fügen Sie zunächst den Repository-Schlüssel zum System hinzu:

      • wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add -

      Nach dem Hinzufügen des Schlüssels gibt das System OK zurück.

      Als Nächstes fügen wir die Adresse für das Debian-Paket-Repository in die sources.list des Servers ein:

      • sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'

      Nach Eingabe beider Befehle werden wir update ausführen, damit apt das neue Repository nutzt.

      Schließlich installieren wir Jenkins und seine Abhängigkeiten.

      Nachdem Jenkins und seine Abhängigkeiten vorhanden sind, starten wir nun den Jenkins-Server.

      Schritt 2 — Starten von Jenkins

      Starten wir Jenkins durch Verwendung von systemctl:

      sudo systemctl start jenkins
      

      Da systemctl keine Statusausgabe anzeigt, nutzen wir den status-Befehl zum Überprüfen, ob Jenkins erfolgreich gestartet wurde:

      • sudo systemctl status jenkins

      Wenn alles geklappt hat, zeigt der Anfang der Statusausgabe an, dass der Dienst aktiv und so konfiguriert ist, dass er beim Booten gestartet wird:

      Output

      ● jenkins.service - LSB: Start Jenkins at boot time Loaded: loaded (/etc/init.d/jenkins; generated) Active: active (exited) since Fri 2020-06-05 21:21:46 UTC; 45s ago Docs: man:systemd-sysv-generator(8) Tasks: 0 (limit: 1137) CGroup: /system.slice/jenkins.service

      Nachdem Jenkins ausgeführt wird, sollten wir nun unsere Firewall-Regeln so anpassen, dass wir den Server über einen Webbrowser erreichen können. Damit ist die Ersteinrichtung abgeschlossen.

      Schritt 3 — Öffnen der Firewall

      Um eine UFW-Firewall einzurichten, konsultieren Sie Ersteinrichtung des Servers mit Ubuntu 20.04, Schritt 4 — Einrichten einer einfachen Firewall. Standardmäßig wird Jenkins an Port 8080 ausgeführt. Wir öffnen diesen Port mit ufw:

      Anmerkung: Wenn die Firewall inaktiv ist, können Sie mit folgenden Befehlen OpenSSH zulassen und die Firewall aktivieren:

      • sudo ufw allow OpenSSH
      • sudo ufw enable

      Überprüfen Sie zum Bestätigen der neuen Regeln den Status von ufw:

      Sie werden feststellen, dass Datenverkehr an Port 8080 von überall zugelassen ist:

      Output

      Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere 8080 ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) 8080 (v6) ALLOW Anywhere (v6)

      Nach der Installation von Jenkins und der Konfiguration unserer Firewall können wir die Installationsphase abschließen und mit der Einrichtung von Jenkins beginnen.

      Schritt 4 — Einrichten von Jenkins

      Um Ihre Installation einzurichten, rufen Sie Jenkins an seinem Standardport 8080 auf, indem Sie den Domänennamen oder die IP-Adresse Ihres Servers verwenden: http://your_server_ip_or_domain:8080

      Sie sollten den Bildschirm Unlock Jenkins (Jenkins entsperren) erhalten, in dem der Speicherort des ersten Passworts angezeigt wird:

      Bildschirm „Unlock Jenkins“ (Jenkins entsperren)

      Verwenden Sie im Terminalfenster den Befehl cat zum Anzeigen des Passworts:

      • sudo cat /var/lib/jenkins/secrets/initialAdminPassword

      Kopieren Sie das 32 Zeichen lange alphanumerische Passwort aus dem Terminal und fügen Sie es in das Feld Administrator password (Administratorkennwort) ein. Klicken Sie dann auf Continue (Weiter).

      Im nächsten Bildschirm wird die Option zum Installieren empfohlener Plugins oder Auszuwählen spezifischer Plugins angezeigt:

      Bildschirm „Customize Jenkins“ (Jenkins anpassen)

      Wir klicken auf die Option Install suggested plugins (Empfohlene Plugins installieren), woraufhin der Installationsprozess unmittelbar beginnt.

      Bildschirm „Jenkins Getting Started Install Plugins“ (Erste Schritte mit Jenkins — Plugins installieren)

      Nach Abschluss der Installation werden Sie aufgefordert, den ersten Administratorbenutzer einzurichten. Es ist möglich, diesen Schritt überspringen und als admin mit dem oben verwendeten ursprünglichen Passwort fortzufahren, aber wir werden uns einen Moment Zeit nehmen, um den Benutzer zu erstellen.

      Anmerkung: Der standardmäßige Jenkins-Server ist NICHT verschlüsselt, sodass die mit diesem Formular übermittelten Daten nicht geschützt sind. Siehe Konfigurieren von Jenkins mit SSL unter Verwendung eines Nginx-Reverseproxy unter Ubuntu 20.04, um Anmeldedaten von Benutzern und Informationen über Builds, die über die Weboberfläche übertragen werden, zu schützen.

      Bildschirm „Jenkins Create First Admin User“ (Erstellen des ersten Administratorbenutzers in Jenkins)

      Geben Sie den Namen und das Passwort für Ihren Benutzer ein:

      Jenkins Create User (Jenkins: Benutzer erstellen)

      Sie sehen eine Seite zur Instance Configuration (Instanzkonfiguration), auf der Sie dazu aufgefordert werden, die bevorzugte URL für Ihre Jenkins-Instanz zu bestätigen. Bestätigen Sie entweder den Domänennamen für Ihren Server bzw. die IP-Adresse Ihres Servers:

      Jenkins Instance Configuration (Jenkins: Instanzkonfiguration)

      Nach der Bestätigung der entsprechenden Daten klicken Sie auf Save and Finish (Speichern und Fertigstellen). Sie erhalten eine Seite mit der Bestätigung, dass „Jenkins is Ready!“ (Jenkins bereit ist):

      Bildschirm „Jenkins is ready“ (Jenkins ist bereit)

      Klicken Sie auf Start using Jenkins (Mit Verwendung von Jenkins beginnen), um das Haupt-Dashboard von Jenkins aufzurufen:

      Bildschirm „Welcome to Jenkins“ (Willkommen bei Jenkins)

      Jetzt haben Sie die Installation von Jenkins erfolgreich abgeschlossen.

      Zusammenfassung

      In diesem Tutorial haben Sie Jenkins mit den vom Projekt bereitgestellten Paketen installiert, den Server gestartet, die Firewall geöffnet und einen Administratorbenutzer erstellt. Nun können Sie mit der Erkundung von Jenkins beginnen.

      Folgen Sie danach Abschluss dem Leitfaden Konfigurieren von Jenkins mit SSL unter Verwendung eines Nginx-Reverseproxy unter Ubuntu 20.04, um Ihre Passwörter sowie sensible System- oder Produktdaten, die zwischen dem Computer und dem Server in Klartext übertragen werden, zu schützen. Anschließend können Sie Jenkins weiter nutzen.

      Um mehr über die Funktionen von Jenkins zu erfahren, lesen Sie weitere Tutorials zu dem Thema:



      Source link