Instalēšana no pirmkoda

Jūs varat iegūt pašu jaunāko Zabbix versiju, kompilējot to no pirmkoda. Skatiet arī Zabbix pirmkoda iegūšana.

Šeit ir sniegta soli pa solim pamācība Zabbix instalēšanai no pirmkoda.

Zabbix dēmonu instalēšana

1 Lejupielādējiet pirmkoda arhīvu

Dodieties uz Zabbix lejupielādes lapu un lejupielādējiet pirmkoda arhīvu. Kad lejupielāde ir pabeigta, izpakojiet pirmkodu, izpildot:

tar -zxvf zabbix-8.0.0.tar.gz

Komandā norādiet pareizo Zabbix versiju. Tai ir jāsakrīt ar lejupielādētā arhīva nosaukumu.

2 Izveidojiet lietotāja kontu

Visi Zabbix dēmona procesi darbojas ar nepriviliģētu sistēmas lietotāju tiesībām. Ja Zabbix dēmons tiek palaists no nepriviliģēta lietotāja konta, tas turpinās darboties ar šo lietotāju.

Noklusējuma konfigurācijā, ja dēmons tiek palaists kā root, tas pārslēgsies uz zabbix lietotāja kontu, kuram jābūt izveidotam. Lai izveidotu zabbix sistēmas lietotāju un grupu, izpildiet tālāk norādītās komandas.

Uz RedHat bāzētas sistēmas:

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

Uz Debian bāzētas sistēmas:

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

Nav nepieciešams izveidot atsevišķu lietotāja kontu Zabbix lietotāja saskarnei.

Drošības ieteikums

Ja Zabbix serveris un aģents darbojas vienā un tajā pašā datorā, ieteicams tos darbināt ar atsevišķiem lietotāju kontiem. Ja abi darbojas ar vienu un to pašu lietotāju, aģents var piekļūt servera konfigurācijas failam, kas var atklāt sensitīvu informāciju, piemēram, datubāzes paroli, jebkuram Zabbix lietotājam ar Admin līmeņa tiesībām.

Zabbix darbināšana kā root, bin vai jebkurš cits konts ar īpašām tiesībām rada drošības risku.

Mājas direktorijs (neobligāti)

Zabbix procesiem mājas direktorijs nav nepieciešams, tāpēc tā izveide parasti nav ieteicama. Tomēr, ja jums ir nepieciešama funkcionalitāte, kurai vajadzīgs mājas direktorijs (piemēram, MySQL akreditācijas datu glabāšanai $HOME/.my.cnf), varat to izveidot, izmantojot tālāk norādītās komandas.

Uz RedHat bāzētām sistēmām izpildiet:

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

Uz Debian bāzētām sistēmām izpildiet:

mkdir -m u=rwx,g=rwx,o= -p /var/lib/zabbix
chown zabbix:zabbix /var/lib/zabbix
3 Izveidojiet Zabbix datubāzi

Zabbix serveris un starpniekserveris dēmoniem, kā arī Zabbix lietotāja saskarnei ir nepieciešama datubāze. Tā nav vajadzīga, lai darbinātu Zabbix aģents.

Ir pieejami SQL skripti datubāzes shēmas izveidei un datu kopas ievietošanai. Zabbix starpniekservera datubāzei ir nepieciešama tikai shēma, savukārt Zabbix servera datubāzei papildus shēmai ir nepieciešama arī datu kopa.

Pēc Zabbix datubāzes izveides pārejiet pie nākamajām Zabbix kompilēšanas darbībām.

4 Konfigurējiet avotus

Zabbix servera, Zabbix starpniekservera vai Zabbix aģenta izveidei ir nepieciešams C99 ar GNU paplašinājumiem. Šo versiju var skaidri norādīt, iestatot CFLAGS="-std=gnu99":

export CFLAGS="-std=gnu99"

Ja instalējat no Zabbix Git repozitorija, vispirms ir jāizpilda:

./bootstrap.sh

Konfigurējot Zabbix servera vai starpniekservera avotus, jānorāda izmantojamais datubāzes tips. Vienlaikus ar servera vai starpniekservera procesu var kompilēt tikai vienu datubāzes tipu.

Lai skatītu visas atbalstītās konfigurācijas opcijas, izvilktajā Zabbix avota direktorijā izpildiet:

./configure --help

Lai konfigurētu Zabbix servera un aģenta avotus, varat izpildīt, piemēram:

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

Lai konfigurētu Zabbix servera avotus (ar PostgreSQL u.c.), varat izpildīt:

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

Lai konfigurētu Zabbix starpniekservera avotus (ar SQLite u.c.), varat izpildīt:

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

Lai konfigurētu Zabbix aģenta avotus, varat izpildīt:

./configure --enable-agent

vai Zabbix aģentam 2:

./configure --enable-agent2

Lai izveidotu Zabbix aģentu 2, jābūt instalētai atbalstītai Go versijai.

Piezīmes par kompilēšanas opcijām:

  • --enable-agent - kompilē Zabbix aģentu, kā arī Zabbix get un Zabbix sender komandrindas utilītprogrammas.
  • --with-libcurl - nepieciešams virtuālo mašīnu uzraudzībai, SMTP autentifikācijai un web.page.* Zabbix aģenta vienumiem, kā arī telemetrijas vaicājuma vienumiem. Skatiet arī: Prasības (libcurl).
  • --with-libxml2 - nepieciešams virtuālo mašīnu uzraudzībai.
  • --with-libpcre2[=DIR] - Zabbix vienmēr tiek kompilēts ar PCRE2 bibliotēku; šī opcija ļauj tikai norādīt pielāgotu PCRE2 instalācijas ceļu.
  • --with-mysql=/path/to/mysql_config - norāda ceļu uz konkrētas MySQL klienta bibliotēkas konfigurāciju. Noderīgi, ja ir instalētas vairākas MySQL vai MariaDB versijas.
  • --enable-static - statiski sasaista bibliotēkas (netiek atbalstīts Solaris). Izmantojiet šo opciju, ja plānojat izplatīt kompilētos bināros failus sistēmās, kurās nav nepieciešamo bibliotēku. Veidojot Zabbix serveri, šī opcija nav ieteicama. Lai serveri izveidotu statiski, ir nepieciešama katras ārējās bibliotēkas statiskā versija. Konfigurēšanas skripts to automātiski nepārbauda.
  • --with-stacksize=<value> - iestata katra pavediena steka lielumu kilobaitos (piemēram, --with-stacksize=512). Šo vērtību var palielināt, ja Zabbix avārijas dēļ pārtrauc darbu vai sastingst steka pārpildes dēļ (piemēram, priekšapstrādes laikā sistēmās ar maziem noklusējuma pavedienu steka ierobežojumiem).
  • --with-apm (izmantojiet tikai kopā ar --enable-proxy) - nepieciešams lietojumprogrammu veiktspējas uzraudzībai (APM) Zabbix starpniekserverī. Skatiet arī: Prasības (g++, gRPC, protobuf, Abseil).

Ja ./configure neizdodas trūkstošu bibliotēku vai citu problēmu dēļ, detalizētu informāciju par kļūdu skatiet failā config.log.

Piemēram, ja trūkst libssl, tūlītējais kļūdas ziņojums var būt maldinošs:

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

Šajā gadījumā config.log atklāj faktisko cēloni:

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

Skatiet arī:

5 Izveidojiet un instalējiet visu

Ja instalējat no Zabbix Git repozitorija, vispirms ir jāizpilda:

$ make dbschema

make install

Šo soli jāizpilda lietotājam ar pietiekamām tiesībām (parasti root vai izmantojot sudo).

Palaižot make install, pēc noklusējuma tiks instalēti dēmona binārie faili (zabbix_server, zabbix_agentd, zabbix_proxy) mapē /usr/local/sbin un klienta binārie faili (zabbix_get, zabbix_sender) mapē /usr/local/bin.

Lai norādītu citu atrašanās vietu nekā /usr/local, iepriekšējā avotu konfigurēšanas solī izmantojiet --prefix atslēgu, piemēram, --prefix=/home/zabbix. Šādā gadījumā dēmona binārie faili tiks instalēti zem <prefix>/sbin, bet utilītas zem <prefix>/bin. Man lapas tiks instalētas zem <prefix>/share.

6 Konfigurācijas failu pārskatīšana un rediģēšana

Šis fails ir jākonfigurē katram hostam, kurā ir instalēts zabbix_agentd.

Failā jānorāda Zabbix servera IP adrese. Savienojumi no citiem hostiem tiks noraidīti.

Jānorāda datubāzes nosaukums, lietotājs un parole (ja tāda tiek izmantota).

Pārējie parametri ar noklusējuma vērtībām būs piemēroti, ja jums ir neliela instalācija (līdz desmit uzraudzītiem hostiem). Tomēr, ja vēlaties maksimāli uzlabot Zabbix servera (vai starpniekservera) veiktspēju, noklusējuma parametri ir jāmaina.

Jānorāda servera IP adrese un starpniekservera resursdatora nosaukums (serverim tam ir jābūt zināmam), kā arī datubāzes nosaukums, lietotājs un parole (ja tāda tiek izmantota).

Izmantojot SQLite, jānorāda pilns ceļš uz datubāzes failu; DB lietotājs un parole nav nepieciešami.

7 Palaidiet dēmonus

Palaidiet zabbix_server servera pusē.

zabbix_server

Pārliecinieties, ka jūsu sistēma ļauj piešķirt 36 MB (vai nedaudz vairāk) koplietojamās atmiņas, pretējā gadījumā serveris var nestartēties un jūs servera žurnālfailā redzēsiet "Cannot allocate shared memory for <type of cache>.". Tas var notikt FreeBSD, Solaris 8 sistēmās.

Palaidiet zabbix_agentd visās uzraugāmajās iekārtās.

zabbix_agentd

Pārliecinieties, ka jūsu sistēma ļauj piešķirt 2 MB koplietojamās atmiņas, pretējā gadījumā aģents var nestartēties un jūs aģenta žurnālfailā redzēsiet "Cannot allocate shared memory for collector.". Tas var notikt Solaris 8 sistēmās.

Ja esat instalējis Zabbix starpniekserveri, palaidiet zabbix_proxy.

zabbix_proxy

Zabbix tīmekļa lietotāja saskarnes instalēšana

PHP failu kopēšana

Zabbix lietotāja saskarne ir rakstīta PHP valodā, tāpēc tās palaišanai ir nepieciešams tīmekļa serveris ar PHP atbalstu. Instalēšana tiek veikta, vienkārši kopējot PHP failus no ui direktorijas uz tīmekļa servera HTML dokumentu direktoriju.

Biežāk sastopamās HTML dokumentu direktoriju atrašanās vietas Apache tīmekļa serveriem ir šādas:

  • /usr/local/apache2/htdocs (noklusējuma direktorija, instalējot Apache no avota koda)
  • /srv/www/htdocs (OpenSUSE, SLES)
  • /var/www/html (Debian, Ubuntu, Fedora, RHEL)

Ieteicams izmantot apakšdirektoriju, nevis HTML saknes direktoriju. Lai izveidotu apakšdirektoriju un tajā kopētu Zabbix lietotāja saskarnes failus, izpildiet šādas komandas, aizstājot <htdocs> ar faktisko direktoriju:

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

Ja plānojat izmantot citu valodu, nevis angļu, skatiet Papildu lietotāja saskarnes valodu instalēšana, lai iegūtu norādījumus.

Lietotāja saskarnes instalēšana

Lūdzu, skatiet lapu Tīmekļa saskarnes instalēšana, lai iegūtu informāciju par Zabbix lietotāja saskarnes instalēšanas vedni.

Zabbix aģents 2 ielādējamo spraudņu instalēšana

Zabbix aģents 2 ielādējamo spraudņu instalēšana ir nepieciešama tikai tad, ja vēlaties uzraudzīt mērķus, kurus neaptver iebūvētie spraudņi (piem., MongoDB serverus vai klasterus, PostgreSQL un tā atvasinājumus u. c.). Skatiet pilnu ielādējamo spraudņu un iebūvēto spraudņu sarakstu.

Pirms spraudņa instalēšanas, lūdzu, pārbaudiet tā README failu. Tajā var būt norādītas specifiskas prasības un instalēšanas instrukcijas.

Lai instalētu no avota kodiem, vispirms lejupielādējiet un izvelciet ielādējamā spraudņa avota arhīvu.

Lai kompilētu spraudni, pārejiet uz izvilkto spraudņa direktoriju un palaidiet make:

make

Lai izveidotu Zabbix aģents 2 ielādējamos spraudņus, ir jābūt instalētai atbalstītai Go versijai.

Spraudņa izpildāmo failu var novietot jebkurā vietā, ja vien Zabbix aģents 2 to var ielādēt. Norādiet spraudņa binārā faila ceļu spraudņa konfigurācijas failā, piemēram, postgresql.conf failā PostgreSQL spraudnim:

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

Spraudņa konfigurācijas faila ceļš ir jānorāda Zabbix aģents 2 konfigurācijas faila parametrā Include:

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

Lai iegūtu plašāku informāciju par spraudņu konfigurēšanu, pārejiet uz iestatīšanu.

Zabbix nodrošinātie ielādējamie spraudņi izmanto vienkāršus makefile failus ar šādiem būves mērķiem:

  • make - izveido spraudni
  • make clean - dzēš visus failus, kas izveidoti, būvējot spraudni
  • make check - palaiž pašpārbaudes (nepieciešams reāls uzraudzības mērķis, piemēram, PostgreSQL datubāze)
  • make style - pārbauda Go koda stilu ar golangci-lint
  • make format - formatē Go kodu ar go fmt
  • make dist - izveido avota arhīvu, iekļaujot visas atkarības

Java gateway instalēšana

Java gateway ir jāinstalē tikai tad, ja vēlaties uzraudzīt JMX lietojumprogrammas. Java gateway ir viegls un tam nav nepieciešama datubāze.

Lai instalētu no avotiem, vispirms lejupielādējiet un izsaiņojiet avotu arhīvu.

Lai kompilētu Java gateway, palaidiet ./configure skriptu ar --enable-java opciju. Ieteicams norādīt --prefix opciju, lai pieprasītu instalēšanas ceļu, kas atšķiras no noklusējuma /usr/local, jo Java gateway instalēšana izveidos visu direktoriju koku, nevis tikai vienu izpildāmo failu.

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

Lai kompilētu un iepakotu Java gateway JAR failā, palaidiet make. Ņemiet vērā, ka šim solim jūsu ceļā būs nepieciešami javac un jar izpildāmie faili.

make

Tagad jums ir zabbix-java-gateway-$VERSION.jar fails src/zabbix_java/bin. Ja jums ir ērti palaist Java gateway no src/zabbix_java izplatīšanas direktorijā, tad varat turpināt ar instrukcijām par Java gateway konfigurēšanu un palaišanu. Pretējā gadījumā pārliecinieties, ka jums ir pietiekamas tiesības, un palaidiet make install.

make install

Lai iegūtu sīkāku informāciju par Java gateway konfigurēšanu un palaišanu, pārejiet uz iestatīšanu.

Zabbix web service instalēšana

Zabbix web service instalēšana ir nepieciešama tikai tad, ja vēlaties izmantot ieplānotos pārskatus.

Lai instalētu no avotiem, vispirms lejupielādējiet un izsaiņojiet avotu arhīvu.

Lai kompilētu Zabbix web service, palaidiet ./configure skriptu ar --enable-webservice opciju.

Lai izveidotu Zabbix web service, ir jābūt instalētai atbalstītai Go versijai.

Palaidiet zabbix_web_service datorā, kur ir instalēts web service:

zabbix_web_service

Lai iegūtu plašāku informāciju par ieplānoto pārskatu ģenerēšanas konfigurēšanu, pārejiet uz iestatīšanu.

Zabbix MCP servera instalēšana

Lai instalētu no pirmkoda, vispirms lejupielādējiet un izsaiņojiet pirmkoda arhīvu.

Lai kompilētu Zabbix MCP serveri, MCP servera pirmkoda direktorijā izpildiet šo komandu:

make build

Lai izveidotu Zabbix MCP serveri, jābūt instalētai atbalstītai Go versijai.

Lai zabbix_mcp_server -V izvadē un Zabbix API pieprasījumu User-Agent norādītu konkrētu versiju, iestatiet mainīgo VERSION, piemēram, make build VERSION=8.0.0.

Lai instalētu bināro failu direktorijā /usr/local/sbin un konfigurācijas faila piemēru direktorijā /etc/zabbix, izpildiet:

sudo make install

Rediģējiet konfigurācijas failu /etc/zabbix/zabbix_mcp_server.conf un iestatiet vismaz šādus parametrus:

  • FrontendURL - Zabbix API URL, kas beidzas ar api_jsonrpc.php;
  • AllowedIP - to MCP klientu adreses, kuriem ir atļauts izveidot savienojumu.

Lai šifrētu savienojumus no MCP klientiem, iestatiet TLSAccept=cert un norādiet TLSCertFile un TLSKeyFile, vai palaidiet MCP serveri aiz uzticama reversā starpniekservera, kas apstrādā TLS.

Ja zabbix lietotājs nepastāv (piemēram, ja datorā ir instalēts tikai MCP serveris), izveidojiet to, kā aprakstīts sadaļā Lietotāja konta izveide.

Validējiet konfigurācijas failu un palaidiet zabbix_mcp_server:

zabbix_mcp_server -c /etc/zabbix/zabbix_mcp_server.conf -T
zabbix_mcp_server -c /etc/zabbix/zabbix_mcp_server.conf

Lai iegūtu papildinformāciju par servera konfigurēšanu un MCP klientu savienošanu, skatiet sadaļu MCP serveris.

Zabbix pirmkoda iegūšana

Ir vairāki veidi, kā iegūt Zabbix pirmkodu:

Lai klonētu repozitoriju, jābūt instalētam Git klientam. Oficiālās komandrindas Git klienta pakotnes nosaukums distribūcijās parasti ir git. Lai to instalētu, piemēram, Debian/Ubuntu sistēmā, izpildiet:

sudo apt-get update
sudo apt-get install git

Lai iegūtu visu Zabbix pirmkodu, pārejiet uz direktoriju, kurā vēlaties novietot kodu, un izpildiet:

git clone https://git.zabbix.com/scm/zbx/zabbix.git

Kompilēšanas problēmas

Šīs ir zināmās problēmas saistībā ar Zabbix kompilēšanu no pirmkoda. Visos pārējos gadījumos skatiet lapu Zināmās problēmas.

Bibliotēka nestandarta atrašanās vietā

Zabbix ļauj norādīt bibliotēku, kas atrodas nestandarta atrašanās vietā. Tālāk redzamajā piemērā Zabbix palaidīs curl-config no norādītās nestandarta atrašanās vietas un izmantos tā izvadi, lai noteiktu pareizo izmantojamo libcurl.

$ ./configure --enable-server --with-mysql --with-libcurl=/usr/local/bin/curl-config

Tas darbosies, ja tā būs vienīgā sistēmā instalētā libcurl, taču var nedarboties, ja standarta atrašanās vietā ir instalēta cita libcurl (piemēram, ar pakotņu pārvaldnieka palīdzību). Tā notiek gadījumos, kad Zabbix nepieciešama jaunāka bibliotēkas versija, bet citām lietotnēm — vecākā.

Tāpēc komponenta norādīšana nestandarta atrašanās vietā ne vienmēr darbosies, ja tas pats komponents pastāv arī standarta atrašanās vietā.

Piemēram, ja izmantojat jaunāku libcurl, kas instalēta /usr/local, kamēr libcurl pakotne joprojām ir instalēta, Zabbix var izvēlēties nepareizo versiju un kompilēšana neizdosies:

usr/bin/ld: ../../src/libs/zbxhttp/libzbxhttp.a(http.o): in function 'zbx_http_convert_to_utf8':
/tmp/zabbix-master/src/libs/zbxhttp/http.c:957: undefined reference to 'curl_easy_header'
collect2: error: ld returned 1 exit status

Šajā gadījumā funkcija curl_easy_header() nav pieejama vecākajā /usr/lib/x86_64-linux-gnu/libcurl.so, bet ir pieejama jaunākajā /usr/local/lib/libcurl.so.

Problēma ir saistīta ar linkera karogu secību, un viens no risinājumiem ir norādīt pilnu ceļu uz bibliotēku mainīgajā LDFLAGS:

$ LDFLAGS="-Wl,--no-as-needed /usr/local/lib/libcurl.so" ./configure --enable-server --with-mysql --with-libcurl=/usr/local/bin/curl-config

Ņemiet vērā opciju -Wl,--no-as-needed, kas dažās sistēmās var būt nepieciešama (skatiet arī: noklusējuma linkošanas opcijas Debian bāzētās sistēmās).

Steka izmērs dažās sistēmās ir pārāk mazs

Ja Zabbix avarē vai sasalst steka pārpildes dēļ, varat palielināt katra pavediena steka izmēru, konfigurējot avotus, izmantojot --with-stacksize opciju avotu konfigurēšanas laikā. Šī problēma var rasties sistēmās ar zemu noklusējuma pavedienu steka limitu, īpaši priekšapstrādes laikā, kad tiek izveidoti vairāki pavedieni.

Tālāk redzamais piemērs iestata steka izmēru uz 512 KB katram pavedienam:

./configure --enable-server --with-mysql --with-stacksize=512

Sistēmas pavedienu steka limitus izpildes laikā var pārbaudīt, Linux bāzētās sistēmās izmantojot komandu ulimit -s.