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.0.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 są uruchamiane przez nieuprzywilejowanych użytkowników systemowych.
Jeśli demon Zabbix zostanie uruchomiony z konta nieuprzywilejowanego 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 Debian:

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

Nie ma potrzeby tworzenia osobnego 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 pod oddzielnymi kontami użytkowników.
Uruchamianie obu 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 administratora 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ć, używając 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 Debian 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.

Udostępniono skrypty SQL do tworzenia schematu bazy danych i wstawiania zestawu danych. Baza danych proxy Zabbix wymaga tylko schematu, natomiast baza danych serwera Zabbix wymaga dodatkowo zestawu danych oprócz schematu.

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

4 Konfigurowanie źródeł

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

export CFLAGS="-std=gnu99"

Jeśli instalujesz z repozytorium Git Zabbix, najpierw należy uruchomić:

./bootstrap.sh

Podczas konfigurowania źródeł dla serwera Zabbix lub proxy musisz określić typ bazy danych, który ma być używany. Tylko jeden typ bazy danych może być skompilowany jednocześnie z procesem serwera 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 serwera Zabbix i agenta, 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 serwera Zabbix (z PostgreSQL itp.), możesz uruchomić:

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

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

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

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

./configure --enable-agent

lub dla agenta Zabbix 2:

./configure --enable-agent2

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

Uwagi dotyczące opcji kompilacji:

  • --enable-agent - kompiluje agenta Zabbix, 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.* agenta Zabbix. Zobacz także: Wymagania (libcurl).
  • --with-libxml2 - wymagane do monitorowania maszyn wirtualnych.
  • --with-libpcre[=DIR] - Zabbix zawsze kompiluje się z biblioteką PCRE; ta opcja pozwala jedynie określić niestandardową ścieżkę instalacji PCRE.
  • --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.
  • --with-oracle - określa lokalizację interfejsu Oracle Call Interface (OCI) API.
  • --enable-static - statycznie linkuje biblioteki (nieobsługiwane w Solaris). Użyj tej opcji, jeśli planujesz dystrybuować skompilowane binaria do systemów bez wymaganych bibliotek. Nie jest zalecane podczas budowania serwera Zabbix. Aby zbudować serwer statycznie, 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 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 Zabbix Git, najpierw należy uruchomić:

$ make dbschema

make install

Ten krok należy wykonać 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 Zabbix /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 Zabbix. Połączenia z innych hostów będą odrzucane.

  • edytuj plik konfiguracyjny serwera Zabbix /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 Zabbix (lub proxy).

  • jeśli zainstalowałeś proxy Zabbix, edytuj plik konfiguracyjny proxy /usr/local/etc/zabbix_proxy.conf

Musisz podać adres IP serwera oraz 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 Zabbix 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 Zabbix, 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 frontendu

Informacje na temat kreatora instalacji frontendu Zabbix można znaleźć 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 nieobjęte wbudowanymi wtyczkami (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 pliku binarnego wtyczki w pliku konfiguracyjnym wtyczki, np. w pliku 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 konfiguracji, 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 jeden 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 katalogu 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ć zaplanowanych raportów.

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 zainstalowana jest usługa webowa:

zabbix_web_service

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