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 pirmkodu

Lai veidotu Zabbix serveri, Zabbix starpniekserveri vai Zabbix aģentu, 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āpalaiž:\

./bootstrap.sh

Konfigurējot pirmkodu Zabbix serverim vai starpniekserverim, jums ir jānorāda izmantojamais datubāzes tips. Vienlaikus ar servera vai starpniekservera procesu var tikt kompilēts tikai viens datubāzes tips.

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

./configure --help

Lai konfigurētu pirmkodu Zabbix serverim un aģentam, varat palaist kaut ko līdzīgu šim:

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

Lai konfigurētu pirmkodu Zabbix serverim (ar PostgreSQL u.c.), jūs varat palaist:

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

Lai konfigurētu pirmkodu Zabbix starpniekserverim (ar SQLite u.c.), jūs varat palaist:

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

Lai konfigurētu pirmkodu Zabbix aģentam, jūs varat palaist:

./configure --enable-agent

vai Zabbix aģentam 2:

./configure --enable-agent2

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

Piezīmes par kompilācijas opcijām:

  • --enable-agent - kompilē Zabbix aģentu, kā arī komandrindas utilītas Zabbix get un Zabbix sender.
  • --with-libcurl - nepieciešams virtuālo mašīnu uzraudzībai, SMTP autentifikācijai un web.page.* Zabbix aģenta 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 tikai ļauj 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 (nav atbalstīts Solaris). Izmantojiet šo opciju, ja plānojat izplatīt kompilētos bināros failus sistēmām bez nepieciešamajām bibliotēkām. Nav ieteicams, veidojot Zabbix serveri. Lai veidotu serveri statiski, ir nepieciešama katras ārējās bibliotēkas statiskā versija. Konfigurācijas skripts to automātiski nepārbauda.
  • --with-stacksize=<value> - iestata katra pavediena steka izmēru kilobaitos (piemēram, --with-stacksize=512). Varat palielināt šo vērtību, ja Zabbix avarē vai sastingst steka pārpildes dēļ (piemēram, priekšapstrādes laikā sistēmās ar zemu noklusējuma pavediena steka ierobežojumu).

Ja ./configure neizdodas trūkstošu bibliotēku vai citu problēmu dēļ, lūdzu, pārbaudiet failu config.log, lai iegūtu detalizētu informāciju par kļūdu.

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 patieso 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āpalaiž:\

$ make dbschema

make install

Šī darbība jāveic lietotājam ar pietiekamām atļaujā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, izmantojiet atslēgu --prefix iepriekšējā avotu konfigurēšanas darbībā, piemēram, --prefix=/home/zabbix. Šajā gadījumā dēmona binārie faili tiks instalēti mapē <prefix>/sbin, bet utilītas — mapē <prefix>/bin. Man lapas tiks instalētas mapē <prefix>/share.

6 Pārskatiet un rediģējiet konfigurācijas failus
  • rediģējiet Zabbix aģenta konfigurācijas failu /usr/local/etc/zabbix_agentd.conf

Š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 liegti.

  • rediģējiet Zabbix servera konfigurācijas failu /usr/local/etc/zabbix_server.conf

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 nelielai instalācijai (līdz desmit uzraudzītiem hostiem). Tomēr, ja vēlaties maksimāli palielināt Zabbix servera (vai starpniekservera) veiktspēju, noklusējuma parametrus ieteicams mainīt.

  • ja esat instalējis Zabbix starpniekserveri, rediģējiet starpniekservera konfigurācijas failu /usr/local/etc/zabbix_proxy.conf

Jānorāda servera IP adrese un starpniekservera hosta nosaukums (tam jābūt zināmam serverim), 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 36MB (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 un 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 2MB koplietojamās atmiņas, pretējā gadījumā aģents var nestartēties un jūs redzēsiet "aģents" žurnālfailā "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 darbināšanai ir nepieciešams PHP atbalstošs tīmekļa serveris. Instalēšana tiek veikta, vienkārši nokopējot PHP failus no ui direktorijas uz tīmekļa servera HTML dokumentu direktoriju.

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

  • /usr/local/apache2/htdocs (noklusējuma direktorija, instalējot Apache no pirmkoda)
  • /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ā nokopē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 kādu 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ēram, 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 ietvertas īpašas prasības un instalēšanas norādījumi.

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

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

make

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

Spraudņa izpildfailu var novietot jebkur, ja vien to var ielādēt Zabbix aģents 2. Norādiet ceļu uz spraudņa bināro failu spraudņa konfigurācijas failā, piemēram, PostgreSQL spraudņa gadījumā failā postgresql.conf:

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

Ceļš uz spraudņa konfigurācijas failu 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, turpiniet ar iestatīšanu.

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

  • make - izveidot spraudni
  • make clean - dzēst visus failus, kas izveidoti spraudņa būvēšanas laikā
  • make check - palaist pašpārbaudes (nepieciešams reāls uzraudzības mērķis, piemēram, PostgreSQL datubāze)
  • make style - pārbaudīt Go koda stilu ar golangci-lint
  • make format - formatēt Go kodu ar go fmt
  • make dist - izveidot pirmkoda 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 datu bāze.

Lai instalētu no pirmkoda, vispirms lejupielādējiet un izpakojiet pirmkoda 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 sapakotu 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 fails zabbix-java-gateway-$VERSION.jar direktorijā src/zabbix_java/bin. Ja jums ir pieņemami palaist Java gateway no src/zabbix_java izplatīšanas direktorijā, tad varat turpināt ar norādījumiem 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 tīmekļa pakalpojuma instalēšana

Zabbix tīmekļa pakalpojuma instalēšana ir nepieciešama tikai tad, ja vēlaties izmantot ieplānotās atskaites.

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

Lai kompilētu Zabbix tīmekļa pakalpojumu, palaidiet ./configure skriptu ar --enable-webservice opciju.

Lai izveidotu Zabbix tīmekļa pakalpojumu, jābūt instalētai atbalstītai Go versijai.

Palaidiet zabbix_web_service datorā, kurā ir instalēts tīmekļa pakalpojums:

zabbix_web_service

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

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

Pārāk mazs steka izmērs dažās sistēmās

Ja Zabbix avarē vai sastingst steka pārpildes dēļ, varat palielināt steka izmēru katram pavedienam, izmantojot opciju --with-stacksize, konfigurējot avota kodu. Šī problēma var rasties sistēmās ar zemu noklusējuma pavediena steka ierobežojumu, īpaši priekšapstrādes laikā, kad tiek izveidoti vairāki pavedieni.

Šajā piemērā steka izmērs tiek iestatīts uz 512 KB katram pavedienam:

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

Linux sistēmās sistēmas pavedienu steka ierobežojumus izpildlaikā var pārbaudīt, izmantojot komandu ulimit -s.