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.

Instalowanie demonów Zabbix

1 Pobierz archiwum źródłowe

Przejdź do strony pobierania Zabbix i pobierz archiwum źródłowe. Po pobraniu rozpakuj źródła, uruchamiając:

tar -zxvf zabbix-7.4.0.tar.gz

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

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 Zabbix i 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.

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
3 Utwórz bazę danych Zabbix

Dla demonów Zabbix serwer i proxy, a także dla frontend Zabbix, wymagana jest baza danych. Nie jest ona potrzebna do uruchomienia Zabbix agent.

Dostępne są skrypty SQL 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.

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"

Jeśli instalacja odbywa się z repozytorium Git Zabbix, 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

Do zbudowania Zabbix agent 2 musi być zainstalowana obsługiwana wersja Go.

Uwagi dotyczące opcji kompilacji:

  • --enable-agent - kompiluje Zabbix agent, a także narzędzia wiersza poleceń Zabbix get i Zabbix sender.
  • --with-libcurl - wymagane do monitorowania maszyn wirtualnych, uwierzytelniania SMTP oraz pozycji web.page.* Zabbix agent items. Zobacz także: Wymagania (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). 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 w systemach z niskimi domyślnymi limitami rozmiaru stosu wątków).

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:

5 Zbuduj i zainstaluj wszystko

Jeśli instalujesz z repozytorium Git Zabbix, 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.

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.

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).

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

7 Uruchamianie demonów

Uruchom zabbix_server po stronie serwera.

zabbix_server

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

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

Instalowanie interfejsu webowego Zabbix

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, aby uzyskać instrukcje.

Instalacja frontend

Informacje o kreatorze instalacji frontend Zabbix znajdziesz na stronie Instalacja interfejsu WWW.

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 oraz wbudowanych wtyczek.

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

Aby zainstalować ze źródeł, najpierw pobierz i rozpakuj archiwum źródłowe ładowalnej wtyczki.

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

make

Do zbudowania ładowalnych wtyczek Zabbix agent 2 musi być zainstalowana obsługiwana wersja Go.

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:

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, 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

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 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. W przeciwnym razie upewnij się, że masz wystarczające uprawnienia i uruchom make install.

make install

Przejdź do konfiguracji, aby uzyskać więcej informacji na temat konfigurowania i uruchamiania Java gateway.

Instalacja usługi webowej Zabbix

Instalacja usługi webowej Zabbix jest wymagana tylko wtedy, gdy chcesz używać raportów zaplanowanych.

Aby zainstalować z kodu źródłowego, najpierw pobierz i rozpakuj archiwum źródłowe.

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

Do zbudowania usługi webowej Zabbix musi być zainstalowana obsługiwana wersja Go.

Uruchom zabbix_web_service na maszynie, na której usługa webowa jest zainstalowana:

zabbix_web_service

Przejdź do konfiguracji, aby uzyskać więcej informacji na temat konfigurowania generowania raportów zaplanowanych.