[comment]: # ({af2eaf2f-af2eaf2f})
# 3 Installation aus den Quellen

Sie können die neueste Version von Zabbix erhalten, indem Sie sie aus den
Quellen kompilieren.

Eine Schritt-für-Schritt-Anleitung zur Installation von Zabbix aus den Quellen
finden Sie hier.

[comment]: # ({/af2eaf2f-af2eaf2f})

[comment]: # ({a81f3302-0040d992})
#### Installieren von Zabbix-Daemons

[comment]: # ({/a81f3302-0040d992})

[comment]: # ({0f408286-8cc2c1b1})
##### 1 Laden Sie das Quellarchiv herunter

Gehen Sie zur [Zabbix-Downloadseite](http://www.zabbix.com/download_sources#74)
und laden Sie das Quellarchiv herunter. Nach dem Herunterladen entpacken Sie die Quellen,
indem Sie Folgendes ausführen:

    tar -zxvf zabbix-7.4.0.tar.gz

::: notetip
Geben Sie in dem Befehl die richtige Zabbix-Version ein. Sie muss
mit dem Namen des heruntergeladenen Archivs übereinstimmen.
:::

[comment]: # ({/0f408286-8cc2c1b1})

[comment]: # ({65663a59-87e1101d})
##### 2 Benutzerkonto erstellen

Alle Zabbix-Daemonprozesse werden unter nicht privilegierten Systembenutzern ausgeführt.  
Wenn ein Zabbix-Daemon von einem nicht privilegierten Benutzerkonto gestartet wird, läuft er weiterhin unter diesem Benutzer.

In der Standardkonfiguration wechselt ein Daemon, der als `root` gestartet wird, zum Benutzerkonto `zabbix`, das vorhanden sein muss.  
Um einen Systembenutzer und eine Systemgruppe `zabbix` zu erstellen, führen Sie die unten aufgeführten Befehle aus.

RedHat-basiertes System:

    groupadd --system zabbix
    useradd --system -g zabbix -d /usr/lib/zabbix -s /sbin/nologin -c "Zabbix Monitoring System" zabbix

Debian-basiertes System:

    addgroup --system --quiet zabbix
    adduser --quiet --system --disabled-login --ingroup zabbix --home /var/lib/zabbix --no-create-home zabbix

Es ist nicht erforderlich, ein separates Benutzerkonto für das Zabbix Frontend zu erstellen.

###### Sicherheitsempfehlung

Wenn der Zabbix [Server](/manual/concepts/server) und der [Agent](/manual/concepts/agent) auf demselben Rechner ausgeführt werden, wird empfohlen, sie unter **getrennten Benutzerkonten** zu betreiben.  
Wenn beide unter demselben Benutzer ausgeführt werden, kann der Agent auf die Konfigurationsdatei des Servers zugreifen, wodurch vertrauliche Informationen - etwa das Datenbankpasswort - für jeden Benutzer mit Admin-Rechten in Zabbix offengelegt werden könnten.

::: noteimportant
Das Ausführen von Zabbix als `root`, `bin` oder unter einem anderen Konto mit Sonderrechten stellt ein Sicherheitsrisiko dar. 
:::

###### Home-Verzeichnis (optional)

Zabbix-Prozesse benötigen kein Home-Verzeichnis, daher wird das Anlegen eines solchen im Allgemeinen nicht empfohlen.  
Wenn Sie jedoch Funktionen benötigen, die ein Home-Verzeichnis erfordern (zum Beispiel das Speichern von MySQL-Anmeldedaten in $HOME/.my.cnf), können Sie es mit den unten aufgeführten Befehlen erstellen. 

Auf RedHat-basierten Systemen führen Sie aus:

    mkdir -m u=rwx,g=rwx,o= -p /usr/lib/zabbix
    chown zabbix:zabbix /usr/lib/zabbix

Auf Debian-basierten Systemen führen Sie aus:

    mkdir -m u=rwx,g=rwx,o= -p /var/lib/zabbix
    chown zabbix:zabbix /var/lib/zabbix

[comment]: # ({/65663a59-87e1101d})

[comment]: # ({06256db0-06256db0})
##### 3 Zabbix-Datenbank erstellen

Für die Zabbix-[Server](/manual/concepts/server)- und
[Proxy](/manual/concepts/proxy)-Dienste sowie das Zabbix-Frontend ist eine
Datenbank erforderlich. Zum Betrieb des Zabbix-[Agent](/manual/concepts/agent) ist sie nicht notwendig.

SQL-[Skripte werden bereitgestellt](/manual/appendix/install/db_scripts), um
das Datenbankschema zu erstellen und den Datensatz einzufügen. Die Zabbix-Proxy-
Datenbank benötigt nur das Schema, während die Zabbix-Server-Datenbank zusätzlich
zum Schema auch den Datensatz erfordert.

Nachdem Sie eine Zabbix-Datenbank erstellt haben, fahren Sie mit den
folgenden Schritten zum Kompilieren von Zabbix fort.

[comment]: # ({/06256db0-06256db0})

[comment]: # ({0383f3a7-8ff1b41c})
##### 4 Quellen konfigurieren

Für das Erstellen von Zabbix Server, Zabbix Proxy oder Zabbix Agent ist C99 mit GNU-Erweiterungen erforderlich.
Diese Version kann explizit durch Setzen von CFLAGS="-std=gnu99" angegeben werden:

    export CFLAGS="-std=gnu99"

::: noteclassic
Wenn Sie aus dem [Zabbix Git-Repository](https://git.zabbix.com/projects/ZBX/repos/zabbix/browse?at=refs%2Fheads%2Frelease%2F7.4) installieren,
muss zuerst Folgendes ausgeführt werden:

`./bootstrap.sh`
:::

Beim Konfigurieren der Quellen für einen Zabbix Server oder Proxy müssen Sie
den zu verwendenden Datenbanktyp angeben. Es kann jeweils nur ein Datenbanktyp
gleichzeitig mit einem Server- oder Proxy-Prozess kompiliert werden.

Um alle unterstützten Konfigurationsoptionen anzuzeigen, führen Sie im
entpackten Zabbix-Quellverzeichnis Folgendes aus:

    ./configure --help

Um die Quellen für einen Zabbix Server und Agent zu konfigurieren, können Sie
etwa Folgendes ausführen:

    ./configure --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2 --with-openipmi --with-ares

Um die Quellen für einen Zabbix Server (mit PostgreSQL usw.) zu konfigurieren, können Sie
Folgendes ausführen:

    ./configure --enable-server --with-postgresql --with-net-snmp

Um die Quellen für einen Zabbix Proxy (mit SQLite usw.) zu konfigurieren, können Sie
Folgendes ausführen:

    ./configure --prefix=/usr --enable-proxy --with-net-snmp --with-sqlite3 --with-ssh2

Um die Quellen für einen Zabbix Agent zu konfigurieren, können Sie Folgendes ausführen:

    ./configure --enable-agent

oder für Zabbix agent 2:

    ./configure --enable-agent2

::: noteclassic
Zum Erstellen von Zabbix agent 2 muss eine [unterstützte Go-Version](/manual/installation/requirements#agent-2) installiert sein.
:::

Hinweise zu den Kompilierungsoptionen:

-   `--enable-agent` - kompiliert den Zabbix Agent sowie die Befehlszeilenprogramme [Zabbix get](/manual/concepts/get) und [Zabbix sender](/manual/concepts/sender).
-   `--with-libcurl` - erforderlich für die Überwachung virtueller Maschinen, SMTP-Authentifizierung und `web.page.*`-[Zabbix agent-Datenpunkte](/manual/config/items/itemtypes/zabbix_agent). Siehe auch: [Anforderungen](/manual/installation/requirements#serverproxy) (libcurl).
-   `--with-libxml2` - erforderlich für die Überwachung virtueller Maschinen.
-   `--with-libpcre2[=DIR]` - Zabbix wird immer mit der PCRE2-Bibliothek kompiliert; mit dieser Option kann nur ein benutzerdefinierter Installationspfad für PCRE2 angegeben werden.
-   `--with-mysql=/path/to/mysql_config` - gibt den Pfad zu einer bestimmten Konfiguration der MySQL-Clientbibliothek an. Nützlich, wenn mehrere Versionen von MySQL oder MariaDB installiert sind.
-   `--enable-static` - verknüpft Bibliotheken statisch (unter [Solaris](https://docs.oracle.com/cd/E18659_01/html/821-1383/bkajp.html) nicht unterstützt). Verwenden Sie dies, wenn Sie die kompilierten Binärdateien auf Systeme ohne die erforderlichen Bibliotheken verteilen möchten. Nicht empfohlen beim Erstellen von Zabbix Server. Um den Server statisch zu erstellen, ist eine statische Version jeder externen Bibliothek erforderlich. Das configure-Skript prüft dies nicht automatisch.
-   `--with-stacksize=<value>` - legt die Stackgröße pro Thread in Kilobyte fest (z. B. `--with-stacksize=512`). Sie können diesen Wert erhöhen, wenn Zabbix aufgrund von Stacküberläufen abstürzt oder einfriert (z. B. während der [Vorverarbeitung](/manual/config/items/preprocessing) auf Systemen mit niedrigen Standard-Thread-Stacklimits).

::: noteimportant
Wenn `./configure` aufgrund fehlender Bibliotheken oder anderer Probleme fehlschlägt, prüfen Sie bitte die Datei `config.log` für detaillierte Fehlerinformationen.

Wenn beispielsweise `libssl` fehlt, kann die unmittelbare Fehlermeldung irreführend sein:

    checking for main in -lmysqlclient... no
    configure: error: Not found mysqlclient library

In diesem Fall zeigt `config.log` die tatsächliche Ursache:

    /usr/bin/ld: cannot find -lssl
    /usr/bin/ld: cannot find -lcrypto

:::

Siehe auch:

-   [Zabbix mit Unterstützung für Verschlüsselung kompilieren](/manual/encryption#compiling-zabbix-with-encryption-support)
-   Bekannte [Kompilierungsprobleme](/manual/installation/known_issues/compilation_issues)

[comment]: # ({/0383f3a7-8ff1b41c})

[comment]: # ({e8cfa426-08edd3dc})
##### 5 Alles erstellen und installieren

::: noteclassic
Bei der Installation aus dem [Zabbix Git-Repository](https://git.zabbix.com/projects/ZBX/repos/zabbix/browse?at=refs%2Fheads%2Frelease%2F7.4)
muss zuerst Folgendes ausgeführt werden:

`$ make dbschema` 
:::

    make install

Dieser Schritt sollte als Benutzer mit ausreichenden Berechtigungen ausgeführt werden (üblicherweise
'root' oder mit `sudo`).

Beim Ausführen von `make install` werden standardmäßig die Daemon-Binärdateien
(zabbix\_server, zabbix\_agentd, zabbix\_proxy) in /usr/local/sbin und
die Client-Binärdateien (zabbix\_get, zabbix\_sender) in /usr/local/bin installiert.

::: noteclassic
Um einen anderen Speicherort als /usr/local anzugeben, verwenden Sie im vorherigen Schritt der Konfiguration der Quellen einen
--prefix-Schalter, zum Beispiel
--prefix=/home/zabbix. In diesem Fall werden die Daemon-Binärdateien
unter <prefix>/sbin installiert, während die Hilfsprogramme unter <prefix>/bin installiert werden. Die
Manpages werden unter <prefix>/share installiert.
:::

[comment]: # ({/e8cfa426-08edd3dc})

[comment]: # ({f36d53db-112b74f7})
##### 6 Konfigurationsdateien überprüfen und bearbeiten

-   Bearbeiten Sie die Konfigurationsdatei des Zabbix Agent
    **/usr/local/etc/zabbix\_agentd.conf**

Sie müssen diese Datei für jeden Host mit installiertem zabbix\_agentd
konfigurieren.

Sie müssen die **IP-Adresse** des Zabbix Server in der Datei angeben.
Verbindungen von anderen Hosts werden abgelehnt.

-   Bearbeiten Sie die Konfigurationsdatei des Zabbix Server
    **/usr/local/etc/zabbix\_server.conf**

Sie müssen den Datenbanknamen, den Benutzer und das Passwort angeben
(falls verwendet).

Die übrigen Parameter sind mit ihren Standardwerten für eine kleine
Installation (bis zu zehn überwachte Hosts) ausreichend. Sie sollten die
Standardparameter jedoch ändern, wenn Sie die Leistung des Zabbix Server
(oder Proxy) maximieren möchten.

-   wenn Sie einen Zabbix Proxy installiert haben, bearbeiten Sie die
    Proxy-Konfigurationsdatei **/usr/local/etc/zabbix\_proxy.conf**

Sie müssen die IP-Adresse des Servers und den Hostnamen des Proxy
angeben (muss dem Server bekannt sein) sowie den Datenbanknamen, den
Benutzer und das Passwort (falls verwendet).

::: noteclassic
Bei SQLite muss der vollständige Pfad zur Datenbankdatei angegeben
werden; DB-Benutzer und Passwort sind nicht erforderlich.
:::

[comment]: # ({/f36d53db-112b74f7})

[comment]: # ({67632a65-bbdd82ac})
##### 7 Starten der Daemons

Führen Sie zabbix\_server auf der Server-Seite aus.

    zabbix_server

::: noteclassic
Stellen Sie sicher, dass Ihr System die Zuweisung von 36 MB (oder etwas mehr) gemeinsam genutztem Speicher zulässt, andernfalls startet der Server möglicherweise nicht und Sie sehen "Cannot allocate shared memory for <type of cache>." in der Server-Protokolldatei. Dies kann unter FreeBSD und Solaris 8 auftreten.
:::

Führen Sie zabbix\_agentd auf allen überwachten Maschinen aus.

    zabbix_agentd

::: noteclassic
Stellen Sie sicher, dass Ihr System die Zuweisung von 2 MB gemeinsam genutztem Speicher zulässt, andernfalls startet der Agent möglicherweise nicht und Sie sehen "Cannot allocate shared memory for collector." in der Agent-Protokolldatei. Dies kann unter Solaris 8 auftreten.
:::

Wenn Sie Zabbix Proxy installiert haben, führen Sie zabbix\_proxy aus.

    zabbix_proxy

[comment]: # ({/67632a65-bbdd82ac})

[comment]: # ({8d29e485-c9f154ca})
#### Installieren der Zabbix-Weboberfläche

[comment]: # ({/8d29e485-c9f154ca})

[comment]: # ({57b0b3e0-ed4e56ce})
##### Kopieren von PHP-Dateien

Das Zabbix-Frontend ist in PHP geschrieben, daher wird zum Ausführen ein Webserver mit PHP-Unterstützung benötigt.
Die Installation erfolgt einfach durch Kopieren der PHP-Dateien aus dem Verzeichnis ui in das HTML-Dokumentenverzeichnis des Webservers.

Zu den üblichen Speicherorten von HTML-Dokumentenverzeichnissen für Apache-Webserver gehören:

-   /usr/local/apache2/htdocs (Standardverzeichnis bei der Installation von Apache aus dem Quellcode)
-   /srv/www/htdocs (OpenSUSE, SLES)
-   /var/www/html (Debian, Ubuntu, Fedora, RHEL)

Es wird empfohlen, ein Unterverzeichnis anstelle des HTML-Stammverzeichnisses zu verwenden.
Um ein Unterverzeichnis zu erstellen und die Zabbix-Frontend-Dateien dorthin zu kopieren, führen Sie die folgenden Befehle aus und ersetzen Sie dabei <htdocs> durch das tatsächliche Verzeichnis:

    mkdir <htdocs>/zabbix
    cd ui
    cp -a . <htdocs>/zabbix

Wenn Sie eine andere Sprache als Englisch verwenden möchten, finden Sie unter [Installation zusätzlicher Frontend-Sprachen](/manual/appendix/install/locales) die entsprechenden Anweisungen.

[comment]: # ({/57b0b3e0-ed4e56ce})

[comment]: # ({ae1b267f-63583cbb})
##### Installation des Frontend

Bitte lesen Sie die Seite [Web interface installation](/manual/installation/frontend) für Informationen zum Installationsassistenten des Zabbix Frontend.

[comment]: # ({/ae1b267f-63583cbb})

[comment]: # ({8751cf7f-c8da42bb})
#### Installieren von Zabbix Agent 2 ladbaren Plugins

Die Installation von ladbaren Plugins für Zabbix Agent 2 ist nur erforderlich, wenn Sie Ziele überwachen möchten, die nicht von integrierten Plugins abgedeckt werden (z. B. MongoDB-Server oder -Cluster, PostgreSQL und seine Forks usw.).
Die vollständige Liste der [ladbaren Plugins](/manual/extensions/plugins#loadable-plugins) und [integrierten Plugins](/manual/extensions/plugins#built-in-plugins) finden Sie hier.

::: noteimportant
Prüfen Sie vor der Installation eines Plugins bitte die README-Datei.
Sie kann spezifische Anforderungen und Installationsanweisungen enthalten.
:::

Um aus den Quellen zu installieren, [laden](https://cdn.zabbix.com/zabbix-agent2-plugins/sources/) Sie zunächst das Quellarchiv des ladbaren Plugins herunter und entpacken Sie es.

Um das Plugin zu kompilieren, wechseln Sie in das entpackte Plugin-Verzeichnis und führen Sie `make` aus:

    make

::: noteclassic
Zum Erstellen ladbarer Plugins für Zabbix Agent 2 muss eine [unterstützte Go-Version](/manual/installation/requirements#agent-2) installiert sein.
:::

Die ausführbare Plugin-Datei kann an beliebiger Stelle abgelegt werden, solange sie von Zabbix Agent 2 geladen werden kann.
Geben Sie den Pfad zur Plugin-Binärdatei in der Plugin-Konfigurationsdatei an, z. B. in postgresql.conf für das [PostgreSQL](/manual/appendix/config/zabbix_agent2_plugins/postgresql_plugin)-Plugin:

    Plugins.PostgreSQL.System.Path=/path/to/executable/zabbix-agent2-plugin-postgresql

Der Pfad zur Plugin-Konfigurationsdatei muss im Include-Parameter der Zabbix Agent 2-Konfigurationsdatei angegeben werden:

    Include=/path/to/plugin/configuration/file/postgresql.conf

Weitere Informationen zur Konfiguration von Plugins finden Sie unter [Einrichtung](/manual/extensions/plugins#configuring-plugins).

Von Zabbix bereitgestellte ladbare Plugins verwenden einfache Makefiles mit den folgenden Build-Zielen:

-   `make` - das Plugin erstellen
-   `make clean` - alle Dateien löschen, die beim Erstellen des Plugins erzeugt wurden
-   `make check` - Selbsttests ausführen (erfordert ein echtes Überwachungsziel, z. B. eine PostgreSQL-Datenbank)
-   `make style` - den Go-Code-Stil mit `golangci-lint` prüfen
-   `make format` - den Go-Code mit `go fmt` formatieren
-   `make dist` - ein Quellarchiv einschließlich aller Abhängigkeiten erstellen

[comment]: # ({/8751cf7f-c8da42bb})

[comment]: # ({c72922e4-1a519c06})
#### Installation von Java gateway

Es ist nur erforderlich, Java gateway zu installieren, wenn Sie JMX-Anwendungen überwachen möchten. Java gateway ist leichtgewichtig und benötigt keine Datenbank.

Um aus den Quellen zu installieren, laden Sie zunächst das Quellarchiv herunter und entpacken Sie es.

Um Java gateway zu kompilieren, führen Sie das Skript `./configure` mit der Option `--enable-java` aus. Es wird empfohlen, die Option `--prefix` anzugeben, wenn Sie einen Installationspfad außerhalb des Standardpfads `/usr/local` verwenden möchten, da die Installation von Java gateway einen kompletten Verzeichnisbaum anlegt und nicht nur eine einzelne ausführbare Datei.

    ./configure --enable-java --prefix=$PREFIX

Um Java gateway zu kompilieren und in eine JAR-Datei zu paketieren, führen Sie `make` aus. Beachten Sie, dass Sie für diesen Schritt die ausführbaren Dateien `javac` und `jar` in Ihrem Pfad benötigen.

    make

Nun haben Sie eine Datei `zabbix-java-gateway-$VERSION.jar` in `src/zabbix\_java/bin`. Wenn Sie Java gateway problemlos aus `src/zabbix\_java` im Distributionsverzeichnis ausführen können, können Sie mit den Anweisungen zum Konfigurieren und Ausführen von [Java gateway](/manual/java/from_sources#overview-of-files) fortfahren. Andernfalls stellen Sie sicher, dass Sie über ausreichende Berechtigungen verfügen, und führen Sie `make install` aus.

    make install

Weitere Details zum Konfigurieren und Ausführen von Java gateway finden Sie unter [Einrichtung](/manual/concepts/java/from_sources).

[comment]: # ({/c72922e4-1a519c06})

[comment]: # ({a056dfd8-76c01064})
#### Installieren des Zabbix web service

Die Installation des Zabbix web service ist nur erforderlich, wenn Sie
[geplante Berichte](/manual/web_interface/frontend_sections/reports/scheduled) verwenden möchten.

Um aus den Quellen zu installieren, laden Sie zunächst das Quellarchiv
[herunter](/manual/installation/install#download-the-source-archive) und
entpacken Sie es.

Um den Zabbix web service zu kompilieren, führen Sie das Skript `./configure` mit der Option
`--enable-webservice` aus.

::: noteclassic
Eine [unterstützte Go-Version](/manual/installation/requirements#agent-2) muss installiert sein, um den Zabbix web service zu erstellen.
:::

Führen Sie zabbix\_web\_service auf dem Rechner aus, auf dem der web service installiert ist:

    zabbix_web_service

Weitere Details zur Konfiguration der Erstellung geplanter Berichte finden Sie unter
[Einrichtung](/manual/appendix/install/web_service).

[comment]: # ({/a056dfd8-76c01064})

