[comment]: # ({af2eaf2f-af2eaf2f})
# 3 Installation from sources

You can get the very latest version of Zabbix by compiling it from the
sources.

A step-by-step tutorial for installing Zabbix from the sources is
provided here.

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

[comment]: # ({a81f3302-0040d992})
#### Instalowanie demonów Zabbix

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

[comment]: # ({0f408286-8cc2c1b1})
##### 1 Pobierz archiwum źródłowe

Przejdź do [strony pobierania Zabbix](http://www.zabbix.com/download_sources#74)
i pobierz archiwum źródłowe. Po pobraniu rozpakuj źródła,
uruchamiając:

    tar -zxvf zabbix-7.4.0.tar.gz

::: notetip
Wprowadź w poleceniu prawidłową wersję Zabbix. Musi ona
odpowiadać nazwie pobranego archiwum.
:::

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

[comment]: # ({65663a59-87e1101d})
##### 2 Utwórz konto użytkownika

Wszystkie procesy demona Zabbix działają w ramach nieuprzywilejowanych użytkowników systemowych.  
Jeśli demon Zabbix zostanie uruchomiony z nieuprzywilejowanego konta użytkownika, będzie nadal działał jako ten użytkownik.

W domyślnej konfiguracji, jeśli demon zostanie uruchomiony jako `root`, przełączy się na konto użytkownika `zabbix`, które musi istnieć.  
Aby utworzyć systemowego użytkownika i grupę `zabbix`, uruchom poniższe polecenia.

System oparty na RedHat:

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

System oparty na Debianie:

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

Nie ma potrzeby tworzenia oddzielnego konta użytkownika dla frontend Zabbix.

###### Zalecenie dotyczące bezpieczeństwa

Jeśli [serwer](/manual/concepts/server) Zabbix i [agent](/manual/concepts/agent) działają na tej samej maszynie, zaleca się uruchamianie ich na **oddzielnych kontach użytkowników**.  
Uruchamianie obu procesów jako ten sam użytkownik umożliwia agentowi dostęp do pliku konfiguracyjnego serwera, co może ujawnić poufne informacje — takie jak hasło do bazy danych — każdemu użytkownikowi z uprawnieniami Admin w Zabbix.

::: noteimportant
Uruchamianie Zabbix jako `root`, `bin` lub jakiekolwiek inne konto ze specjalnymi uprawnieniami stanowi zagrożenie bezpieczeństwa. 
:::

###### Katalog domowy (opcjonalnie)

Procesy Zabbix nie wymagają katalogu domowego, więc jego tworzenie zazwyczaj nie jest zalecane.  
Jeśli jednak potrzebujesz funkcjonalności wymagającej katalogu domowego (na przykład przechowywania poświadczeń MySQL w $HOME/.my.cnf), możesz go utworzyć za pomocą poniższych poleceń. 

W systemach opartych na RedHat uruchom:

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

W systemach opartych na Debianie uruchom:

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

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

[comment]: # ({06256db0-06256db0})
##### 3 Utwórz bazę danych Zabbix

Dla demonów Zabbix [serwer](/manual/concepts/server) i
[proxy](/manual/concepts/proxy), a także dla frontend Zabbix,
wymagana jest baza danych. Nie jest ona potrzebna do uruchomienia
Zabbix [agent](/manual/concepts/agent).

Dostępne są [skrypty SQL](/manual/appendix/install/db_scripts) do
tworzenia schematu bazy danych i wstawiania zestawu danych. Baza danych
Zabbix proxy wymaga tylko schematu, natomiast baza danych Zabbix
serwer wymaga dodatkowo zestawu danych oprócz schematu.

Po utworzeniu bazy danych Zabbix przejdź do kolejnych kroków
kompilacji Zabbix.

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

[comment]: # ({0383f3a7-8ff1b41c})
##### 4 Konfigurowanie źródeł

Do budowy Zabbix server, Zabbix proxy lub Zabbix agent wymagany jest C99 z rozszerzeniami GNU.
Tę wersję można jawnie określić, ustawiając CFLAGS="-std=gnu99":

    export CFLAGS="-std=gnu99"

::: noteclassic
Jeśli instalacja odbywa się z [repozytorium Git Zabbix](https://git.zabbix.com/projects/ZBX/repos/zabbix/browse?at=refs%2Fheads%2Frelease%2F7.4),
najpierw należy uruchomić:

`./bootstrap.sh`
:::

Podczas konfigurowania źródeł dla Zabbix server lub proxy należy
określić typ bazy danych, który ma być używany. Tylko jeden typ bazy danych
może być skompilowany jednocześnie z procesem server lub proxy.

Aby wyświetlić wszystkie obsługiwane opcje konfiguracji, w rozpakowanym
katalogu źródeł Zabbix uruchom:

    ./configure --help

Aby skonfigurować źródła dla Zabbix server i agent, możesz uruchomić
na przykład:

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

Aby skonfigurować źródła dla Zabbix server (z PostgreSQL itp.), możesz
uruchomić:

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

Aby skonfigurować źródła dla Zabbix proxy (z SQLite itp.), możesz
uruchomić:

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

Aby skonfigurować źródła dla Zabbix agent, możesz uruchomić:

    ./configure --enable-agent

lub dla Zabbix agent 2:

    ./configure --enable-agent2

::: noteclassic
Do zbudowania Zabbix agent 2 musi być zainstalowana [obsługiwana wersja Go](/manual/installation/requirements#agent-2).
:::

Uwagi dotyczące opcji kompilacji:

-   `--enable-agent` - kompiluje Zabbix agent, a także narzędzia wiersza poleceń [Zabbix get](/manual/concepts/get) i [Zabbix sender](/manual/concepts/sender).
-   `--with-libcurl` - wymagane do monitorowania maszyn wirtualnych, uwierzytelniania SMTP oraz pozycji `web.page.*` [Zabbix agent items](/manual/config/items/itemtypes/zabbix_agent). Zobacz także: [Wymagania](/manual/installation/requirements#serverproxy) (libcurl).
-   `--with-libxml2` - wymagane do monitorowania maszyn wirtualnych.
-   `--with-libpcre2[=DIR]` - Zabbix zawsze kompiluje się z biblioteką PCRE2; ta opcja pozwala jedynie określić niestandardową ścieżkę instalacji PCRE2.
-   `--with-mysql=/path/to/mysql_config` - określa ścieżkę do konkretnej konfiguracji biblioteki klienta MySQL. Przydatne, gdy zainstalowanych jest wiele wersji MySQL lub MariaDB.
-   `--enable-static` - statycznie linkuje biblioteki (nieobsługiwane na [Solaris](https://docs.oracle.com/cd/E18659_01/html/821-1383/bkajp.html)). Użyj tej opcji, jeśli planujesz rozpowszechniać skompilowane binaria na systemach bez wymaganych bibliotek. Nie jest zalecana podczas budowania Zabbix server. Aby statycznie zbudować server, wymagana jest statyczna wersja każdej biblioteki zewnętrznej. Skrypt configure nie sprawdza tego automatycznie.
-   `--with-stacksize=<value>` - ustawia rozmiar stosu na wątek w kilobajtach (np. `--with-stacksize=512`). Możesz zwiększyć tę wartość, jeśli Zabbix ulega awarii lub zawiesza się z powodu przepełnienia stosu (np. podczas [preprocessing](/manual/config/items/preprocessing) w systemach z niskimi domyślnymi limitami rozmiaru stosu wątków).

::: noteimportant
Jeśli `./configure` zakończy się niepowodzeniem z powodu brakujących bibliotek lub innych problemów, sprawdź plik `config.log`, aby uzyskać szczegółowe informacje o błędzie.

Na przykład, jeśli brakuje `libssl`, bezpośredni komunikat o błędzie może być mylący:

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

W takim przypadku `config.log` ujawnia rzeczywistą przyczynę:

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

:::

Zobacz także:

-   [Kompilowanie Zabbix z obsługą szyfrowania](/manual/encryption#compiling-zabbix-with-encryption-support)
-   Znane [problemy z kompilacją](/manual/installation/known_issues/compilation_issues)

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

[comment]: # ({e8cfa426-08edd3dc})
##### 5 Zbuduj i zainstaluj wszystko

::: noteclassic
Jeśli instalujesz z [repozytorium Git Zabbix](https://git.zabbix.com/projects/ZBX/repos/zabbix/browse?at=refs%2Fheads%2Frelease%2F7.4),
najpierw należy uruchomić:

`$ make dbschema` 
:::

    make install

Ten krok należy uruchomić jako użytkownik z wystarczającymi uprawnieniami (zwykle
`root` lub przy użyciu `sudo`).

Uruchomienie `make install` domyślnie zainstaluje pliki binarne demona
(zabbix\_server, zabbix\_agentd, zabbix\_proxy) w /usr/local/sbin oraz
pliki binarne klienta (zabbix\_get, zabbix\_sender) w /usr/local/bin.

::: noteclassic
Aby określić inną lokalizację niż /usr/local, użyj klucza
--prefix w poprzednim kroku konfiguracji źródeł, na przykład
--prefix=/home/zabbix. W takim przypadku pliki binarne demona zostaną zainstalowane
w <prefix>/sbin, natomiast narzędzia w <prefix>/bin. Strony podręcznika
zostaną zainstalowane w <prefix>/share.
:::

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

[comment]: # ({f36d53db-112b74f7})
##### 6 Przejrzyj i edytuj pliki konfiguracyjne

-   edytuj plik konfiguracyjny agenta Zabbixa
    **/usr/local/etc/zabbix\_agentd.conf**

Musisz skonfigurować ten plik dla każdego hosta z zabbix\_agentd
zainstalowanym.

Musisz podać w pliku adres IP serwera Zabbixa.
Połączenia z innych hostów będą odrzucane.

-   edytuj plik konfiguracyjny serwera Zabbixa
    **/usr/local/etc/zabbix\_server.conf**

Musisz podać nazwę bazy danych, użytkownika i hasło (jeśli jest używane).

Pozostałe parametry będą odpowiednie z wartościami domyślnymi, jeśli masz
małą instalację (do dziesięciu monitorowanych hostów). Powinieneś jednak zmienić
domyślne parametry, jeśli chcesz zmaksymalizować wydajność serwera Zabbixa
(lub proxy).

-   jeśli zainstalowałeś proxy Zabbixa, edytuj plik konfiguracyjny proxy
    **/usr/local/etc/zabbix\_proxy.conf**

Musisz podać adres IP serwera i nazwę hosta proxy (musi być znana
serwerowi), a także nazwę bazy danych, użytkownika i hasło (jeśli
jest używane).

::: noteclassic
W przypadku SQLite należy podać pełną ścieżkę do pliku bazy danych;
użytkownik DB i hasło nie są wymagane.
:::

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

[comment]: # ({67632a65-bbdd82ac})
##### 7 Uruchamianie demonów

Uruchom zabbix\_server po stronie serwera.

    zabbix_server

::: noteclassic
Upewnij się, że system umożliwia przydzielenie 36 MB (lub nieco więcej) pamięci współdzielonej, w przeciwnym razie serwer może się nie uruchomić i w pliku dziennika serwera pojawi się komunikat "Cannot allocate shared memory for <type of cache>.". Może się to zdarzyć w systemach FreeBSD, Solaris 8.
:::

Uruchom zabbix\_agentd na wszystkich monitorowanych maszynach.

    zabbix_agentd

::: noteclassic
Upewnij się, że system umożliwia przydzielenie 2 MB pamięci współdzielonej, w przeciwnym razie agent może się nie uruchomić i w pliku dziennika agenta pojawi się komunikat "Cannot allocate shared memory for collector.". Może się to zdarzyć w systemie Solaris 8.
:::

Jeśli zainstalowano proxy Zabbix, uruchom zabbix\_proxy.

    zabbix_proxy

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

[comment]: # ({8d29e485-c9f154ca})
#### Instalowanie interfejsu webowego Zabbix

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

[comment]: # ({57b0b3e0-ed4e56ce})
##### Kopiowanie plików PHP

frontend Zabbixa jest napisany w PHP, więc do jego uruchomienia potrzebny jest serwer WWW obsługujący PHP.
Instalacja polega po prostu na skopiowaniu plików PHP z katalogu ui do katalogu dokumentów HTML serwera WWW.

Typowe lokalizacje katalogów dokumentów HTML dla serwerów WWW Apache obejmują:

-   /usr/local/apache2/htdocs (domyślny katalog podczas instalacji Apache ze źródeł)
-   /srv/www/htdocs (OpenSUSE, SLES)
-   /var/www/html (Debian, Ubuntu, Fedora, RHEL)

Zaleca się użycie podkatalogu zamiast katalogu głównego HTML.
Aby utworzyć podkatalog i skopiować do niego pliki frontend Zabbixa, wykonaj następujące polecenia, zastępując <htdocs> rzeczywistym katalogiem:

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

Jeśli planujesz używać innego języka niż angielski, zobacz [Instalacja dodatkowych języków frontend](/manual/appendix/install/locales), aby uzyskać instrukcje.

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

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

Informacje o kreatorze instalacji frontend Zabbix znajdziesz na stronie [Instalacja interfejsu WWW](/manual/installation/frontend).

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

[comment]: # ({8751cf7f-c8da42bb})
#### Instalowanie ładowalnych wtyczek Zabbix agent 2

Instalacja ładowalnych wtyczek Zabbix agent 2 jest wymagana tylko wtedy, gdy chcesz monitorować cele nieobsługiwane przez wbudowane wtyczki (np. serwery lub klastry MongoDB, PostgreSQL i jego forki itp.).
Zobacz pełną listę [ładowalnych wtyczek](/manual/extensions/plugins#loadable-plugins) oraz [wbudowanych wtyczek](/manual/extensions/plugins#built-in-plugins).

::: noteimportant
Przed zainstalowaniem wtyczki sprawdź jej plik README.
Może on zawierać szczegółowe wymagania i instrukcje instalacji.
:::

Aby zainstalować ze źródeł, najpierw [pobierz](https://cdn.zabbix.com/zabbix-agent2-plugins/sources/) i rozpakuj archiwum źródłowe ładowalnej wtyczki.

Aby skompilować wtyczkę, przejdź do rozpakowanego katalogu wtyczki i uruchom `make`:

    make

::: noteclassic
Do zbudowania ładowalnych wtyczek Zabbix agent 2 musi być zainstalowana [obsługiwana wersja Go](/manual/installation/requirements#agent-2).
:::

Plik wykonywalny wtyczki może znajdować się w dowolnym miejscu, o ile jest możliwy do załadowania przez Zabbix agent 2.
Określ ścieżkę do binarnego pliku wtyczki w pliku konfiguracyjnym wtyczki, np. w postgresql.conf dla wtyczki [PostgreSQL](/manual/appendix/config/zabbix_agent2_plugins/postgresql_plugin):

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

Ścieżka do pliku konfiguracyjnego wtyczki musi być określona w parametrze Include pliku konfiguracyjnego Zabbix agent 2:

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

Przejdź do sekcji [konfiguracja](/manual/extensions/plugins#configuring-plugins), aby uzyskać więcej informacji na temat konfigurowania wtyczek.

Ładowalne wtyczki dostarczane przez Zabbix używają prostych plików makefile z następującymi celami kompilacji:

-   `make` - zbuduj wtyczkę
-   `make clean` - usuń wszystkie pliki utworzone podczas budowania wtyczki
-   `make check` - uruchom testy własne (wymaga rzeczywistego celu monitorowania, np. bazy danych PostgreSQL)
-   `make style` - sprawdź styl kodu Go za pomocą `golangci-lint`
-   `make format` - sformatuj kod Go za pomocą `go fmt`
-   `make dist` - utwórz archiwum źródłowe zawierające wszystkie zależności

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

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

Instalacja Java gateway jest wymagana tylko wtedy, gdy chcesz monitorować aplikacje JMX. Java gateway jest lekki i nie wymaga bazy danych.

Aby zainstalować ze źródeł, najpierw
[pobierz](/manual/installation/install#download-the-source-archive) i
rozpakuj archiwum źródłowe.

Aby skompilować Java gateway, uruchom skrypt `./configure` z opcją
`--enable-java`. Zaleca się określenie opcji `--prefix`, aby wskazać
ścieżkę instalacji inną niż domyślna /usr/local, ponieważ instalacja
Java gateway utworzy całe drzewo katalogów, a nie tylko pojedynczy plik
wykonywalny.

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

Aby skompilować i spakować Java gateway do pliku JAR, uruchom `make`.
Pamiętaj, że na tym etapie będziesz potrzebować plików wykonywalnych
`javac` i `jar` w swojej ścieżce.

    make

Teraz masz plik zabbix-java-gateway-$VERSION.jar w
src/zabbix\_java/bin. Jeśli chcesz uruchamiać Java gateway z katalogu
src/zabbix\_java w katalogu dystrybucyjnym, możesz przejść do instrukcji
konfiguracji i uruchamiania [Java
gateway](/manual/java/from_sources#overview-of-files).
W przeciwnym razie upewnij się, że masz wystarczające uprawnienia i
uruchom `make install`.

    make install

Przejdź do [konfiguracji](/manual/concepts/java/from_sources), aby uzyskać
więcej informacji na temat konfigurowania i uruchamiania Java gateway.

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

[comment]: # ({a056dfd8-76c01064})
#### Instalacja usługi webowej Zabbix

Instalacja usługi webowej Zabbix jest wymagana tylko wtedy, gdy chcesz używać
[raportów zaplanowanych](/manual/web_interface/frontend_sections/reports/scheduled).

Aby zainstalować z kodu źródłowego, najpierw
[pobierz](/manual/installation/install#download-the-source-archive) i
rozpakuj archiwum źródłowe.

Aby skompilować usługę webową Zabbix, uruchom skrypt `./configure` z
opcją `--enable-webservice`.

::: noteclassic
Do zbudowania usługi webowej Zabbix musi być zainstalowana [obsługiwana wersja Go](/manual/installation/requirements#agent-2).
:::

Uruchom zabbix\_web\_service na maszynie, na której usługa webowa jest zainstalowana:

    zabbix_web_service

Przejdź do [konfiguracji](/manual/appendix/install/web_service), aby uzyskać więcej informacji
na temat konfigurowania generowania raportów zaplanowanych.

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


