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 unweb.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
- rediģējiet Zabbix aģenta konfigurācijas failu (
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 noraidīti.
- rediģējiet Zabbix servera konfigurācijas failu (
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, 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.
- ja esat instalējis Zabbix starpniekserveri, rediģējiet starpniekservera konfigurācijas failu (
zabbix_proxy.conf).
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 spraudnimake clean- dzēš visus failus, kas izveidoti, būvējot spraudnimake 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 argolangci-lintmake format- formatē Go kodu argo fmtmake 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 arapi_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:
- Jūs varat lejupielādēt izlaistās stabilās versijas no oficiālās Zabbix tīmekļvietnes
- Jūs varat lejupielādēt nakts būvējumus no oficiālās Zabbix tīmekļvietnes izstrādātāju lapas
- Jūs varat iegūt jaunāko izstrādes versiju no Git pirmkoda repozitoriju
sistēmas:
- Pilnā repozitorija galvenā atrašanās vieta ir https://git.zabbix.com/scm/zbx/zabbix.git
- Master un atbalstītie laidieni tiek arī spoguļoti Github vietnē: https://github.com/zabbix/zabbix
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.